Модуль robot
Содержит классы, непосредственно связанные с торговым роботом:
- TradingRobot - торговый робот;
- TradingRobotFactory - фабрика торговых роботов, позволяет просто создавать робота.
Внимание! Рекомендуется не создавать робота вручную, а использовать для этого фабрику, так как фабрика умеет получать сведения об аккаунте и инструменте непосредственно из API, и не требует передачи этих данных в конструктор. При необходимости точечной настройки робота (например, ограничение баланса, доступного для траты) возможно отредактировать параметры робота после его создания.
На текущий момент один робот ограничен одним аккаунтом и одним видом ценных бумаг. При желании настроить торговлю одновременно несколькими бумагами и / или с нескольких аккаунтов, рекомендуется создать и параллельно запустить нескольких роботов.
TradingRobot
Основной класс, торговый робот. Содержит в себе всю логику взаимодействия с API: создание и отмена торговых поручений, подписка на обновления и тд.
Методы
init
Входные данные:
Field | Type | Description |
---|---|---|
token | str | Токен API Тинькофф Инвестиций |
account_id | str | ID аккаунта, с которого будет вестись торговля. |
sandbox_mode | bool | True для запуска робота в песочнице, False для "боевого" режима |
trade_strategy | TradeStrategyBase | Стратегия торгового робота |
trade_statistics | TradeStatisticsAnalyzer | Анализатор статистики робота |
instrument_info | tinkoff.invest.Instrument | Информация о торгуемых ценных бумагах |
logger | loggig.Logger | Логгер |
Выходные данные: TradingRobot
.
trade
Запуск торгового алгоритма.
Метод загружает в стратегию исторические данные и подписывается на необходимые обновления биржевых данных. При получении обновления, передает его стретагии и действует согласно ее распоряжению.
Выходные данные: TradeStatisticsAnalyzer
- статистика робота.
backtest
Тестирование торговой стратегии на исторических данных.
Метод получает из API данные за два последовательных периода длиной train_duration
и test_duration
.
Обучающие данные загружает в робота в качестве исторических данных, после чего последовательно передает ему
тестовые данные в качестве текущих биржевых данных. Все торговые поручения стратегии записывает в статистику,
предоставляемую на выходе для анализа.
Входные данные:
Field | Type | Description |
---|---|---|
initial_params | TradeStrategyParams | Изначальные параметры торговой стратегии |
test_duration | datetime.timedelta | Длительность тестового периода |
train_duration | datetime.timedelta | Длительность обучающего периода |
Выходные данные: TradeStatisticsAnalyzer
- статистика робота.
to_money_value
Преобразовывает значение в MoneyValue.
Входные данные:
Field | Type | Description |
---|---|---|
currency | str | Валюта, в которой необходимо вернуть MoneyValue |
Выходные данные: MoneyValue.
TradingRobotFactory
Фабрика торговых роботов.
Методы
init
Во входных данных обязательно должны быть представлены либо figi
, либо ticker
и class_code
.
Входные данные:
Field | Type | Description |
---|---|---|
token | str | Токен API Тинькофф Инвестиций |
account_id | str | ID аккаунта, с которого будет вестись торговля. |
figi | Optional[str] | FIGI торгового инструмента |
ticker | Optional[str] | Тикер торгового инструмента |
class_code | Optional[str] | class_code торгового инструмента |
logger_level | Optional[str] | Уровень логирования. По умолчанию INFO |
Выходные данные: TradingRobotFactory
.
setup_logger
Настройка логгера.
Входные данные:
Field | Type | Description |
---|---|---|
logger_level | str | Уровень логирования |
Выходные данные: logging.Logger
.
create_robot
Создание торгового робота для инструмента, указанного в параметрах фабрики.
Входные данные:
Field | Type | Description |
---|---|---|
trade_strategy | TradeStrategyBase | Торговая стратегия |
sandbox_mode | bool | Режим торговли (True - песочница, False - "боевой") |
Выходные данные: TradingRobot
.
Примеры использования
См. файл main.py.