Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
wiseplat
GitHub Repository: wiseplat/python-code
Path: blob/master/ invest-robot-contest_investRobot-master/docs/robot.md
5925 views

Модуль robot

Содержит классы, непосредственно связанные с торговым роботом:

  • TradingRobot - торговый робот;

  • TradingRobotFactory - фабрика торговых роботов, позволяет просто создавать робота.

Внимание! Рекомендуется не создавать робота вручную, а использовать для этого фабрику, так как фабрика умеет получать сведения об аккаунте и инструменте непосредственно из API, и не требует передачи этих данных в конструктор. При необходимости точечной настройки робота (например, ограничение баланса, доступного для траты) возможно отредактировать параметры робота после его создания.

На текущий момент один робот ограничен одним аккаунтом и одним видом ценных бумаг. При желании настроить торговлю одновременно несколькими бумагами и / или с нескольких аккаунтов, рекомендуется создать и параллельно запустить нескольких роботов.

TradingRobot

Основной класс, торговый робот. Содержит в себе всю логику взаимодействия с API: создание и отмена торговых поручений, подписка на обновления и тд.

Методы

init

Входные данные:

FieldTypeDescription
tokenstrТокен API Тинькофф Инвестиций
account_idstrID аккаунта, с которого будет вестись торговля.
sandbox_modeboolTrue для запуска робота в песочнице, False для "боевого" режима
trade_strategyTradeStrategyBaseСтратегия торгового робота
trade_statisticsTradeStatisticsAnalyzerАнализатор статистики робота
instrument_infotinkoff.invest.InstrumentИнформация о торгуемых ценных бумагах
loggerloggig.LoggerЛоггер

Выходные данные: TradingRobot.

trade

Запуск торгового алгоритма.

Метод загружает в стратегию исторические данные и подписывается на необходимые обновления биржевых данных. При получении обновления, передает его стретагии и действует согласно ее распоряжению.

Выходные данные: TradeStatisticsAnalyzer - статистика робота.

backtest

Тестирование торговой стратегии на исторических данных.

Метод получает из API данные за два последовательных периода длиной train_duration и test_duration. Обучающие данные загружает в робота в качестве исторических данных, после чего последовательно передает ему тестовые данные в качестве текущих биржевых данных. Все торговые поручения стратегии записывает в статистику, предоставляемую на выходе для анализа.

Входные данные:

FieldTypeDescription
initial_paramsTradeStrategyParamsИзначальные параметры торговой стратегии
test_durationdatetime.timedeltaДлительность тестового периода
train_durationdatetime.timedeltaДлительность обучающего периода

Выходные данные: TradeStatisticsAnalyzer - статистика робота.

to_money_value

Преобразовывает значение в MoneyValue.

Входные данные:

FieldTypeDescription
currencystrВалюта, в которой необходимо вернуть MoneyValue

Выходные данные: MoneyValue.

TradingRobotFactory

Фабрика торговых роботов.

Методы

init

Во входных данных обязательно должны быть представлены либо figi, либо ticker и class_code.

Входные данные:

FieldTypeDescription
tokenstrТокен API Тинькофф Инвестиций
account_idstrID аккаунта, с которого будет вестись торговля.
figiOptional[str]FIGI торгового инструмента
tickerOptional[str]Тикер торгового инструмента
class_codeOptional[str]class_code торгового инструмента
logger_levelOptional[str]Уровень логирования. По умолчанию INFO

Выходные данные: TradingRobotFactory.

setup_logger

Настройка логгера.

Входные данные:

FieldTypeDescription
logger_levelstrУровень логирования

Выходные данные: logging.Logger.

create_robot

Создание торгового робота для инструмента, указанного в параметрах фабрики.

Входные данные:

FieldTypeDescription
trade_strategyTradeStrategyBaseТорговая стратегия
sandbox_modeboolРежим торговли (True - песочница, False - "боевой")

Выходные данные: TradingRobot.

Примеры использования

См. файл main.py.