Path: blob/master/ invest-robot-contest_investRobot-master/docs/stats.md
5925 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]
: словарь ключ-значение, содержащий краткую сводку.