Path: blob/master/ invest-robot-contest_investRobot-master/docs/stats.md
7763 views
Модуль stats
Содержит классы для ведения статистики торгового робота.
TradeStatisticsAnalyzer
Основной класс, используемый для записи, хранения и получения статистики, а также генерации отчетов и коротких сводок.
Класс предоставляет возможность преобразовать формат отчета, а также сгенерировать короткую сводку. Для этого необходимо реализовать классы, унаследованные от TradeStatisticsProcessorBase и TradeStatisticsCalculatorBase соответственно и передать объекты этих классов в параметры функции get_report. Подробнее см. примеры использования.
Методы
init
Входные данные:
| Field | Type | Description |
|---|---|---|
| positions | int | Значение |
| money | float | Значение nano (при использовании необходимо value типа int) |
| instrument_info | tinkoff.invest.Instrument | Информация об инструменте тоговли |
| logger | logging.Logger | Логгер |
Выходные данные: TradeStatisticsAnalyzer.
add_trade
Запись операции в статистику. Этот метод в основном используется роботом, не рекомендуется вызывать его самостоятельно.
Входные данные:
| Field | Type | Description |
|---|---|---|
| trade | tinkoff.invest.OrderState | Операция |
cancel_order
Отмена операции, удаление из статистики. Этот метод в основном используется роботом, не рекомендуется вызывать его самостоятельно.
Входные данные:
| Field | Type | Description |
|---|---|---|
| order_id | int | ID операции |
get_positions
Получение количества ценных бумаг на счету на текущий момент.
Выходные данные: int, количество бумаг.
get_money
Получение баланса на текущий момент.
Выходные данные: float, баланс.
get_pending_orders
Получение списка нереализованных торговых заявок.
Выходные данные: list[tinkoff.invest.OrderState], список заявок.
save_to_file
Сохранение статистики в файл.
Входные данные:
| Field | Type | Description |
|---|---|---|
| filename | str | Название файла |
load_from_file
Чтение статистики из файла.
Входные данные:
| Field | Type | Description |
|---|---|---|
| filename | str | Название файла |
Выходные данные: TradeStatisticsAnalyzer
add_backtest_trade
Запись в статистику операции из бэктеста.
Входные данные:
| Field | Type | Description |
|---|---|---|
| quantity | int | Количество лотов |
| price | Quotation | Цена лота |
| direction | tinkoff.invest.OrderDirection | Направление сделки |
get_report
Получение отчета о статистике.
Метод собирает датафрейм с полной статистикой об операциях, после чего последовательно запускает на нем пользовательские обработчики. Для получения краткого отчета запускаются пользовательские генераторы краткой сводки, и их результаты объединяются в один dict.
Входные данные:
| Field | Type | Description |
|---|---|---|
| processors | list[TradeStatisticsProcessorBase] | Обработчики статистики |
| calculators | list[TradeStatisticsCalculatorBase] | Генераторы краткой сводки |
Выходные данные: dict[str, any], pandas.DataFrame: словарь с краткой сводкой, полная статистика по операциям.
Примеры использования
Генерация отчета
TradeStatisticsProcessorBase
Интерфейс, который необходимо реализовать при необходимости преобразования отчета.
Методы
process
Преобразования отчета
Входные данные:
| Field | Type | Description |
|---|---|---|
| df | pandas.DataFrame | Полный отчет |
Выходные данные: pandas.DataFrame: преобразованный отчет.
TradeStatisticsCalculatorBase
Интерфейс, который необходимо реализовать для преобразования краткой сводки.
Методы
calculate
Входные данные:
| Field | Type | Description |
|---|---|---|
| df | pandas.DataFrame | Полный отчет |
Выходные данные: dict[str, any]: словарь ключ-значение, содержащий краткую сводку.