Давайте посмотрим на наш торговый фреймворк – библиотеку BackTrader, с точки зрения ее устройства.
Но для начала посмотрим на общую схему организации торговли на бирже:
На первое место поставим нашу торговую стратегию, без этой логики наша торговля сведется просто к хаотичным покупкам
По результатам работы стратегии принимаем решение и отправляем соответствующие ордера брокеру. Сразу обратим внимание на важные атрибуты брокера, такие как комиссионные наценки, возможные проскальзывания, размер сделки и др.
Заявки брокера на бирже срабатывают и превращаются в наши позиции по ценным бумагам, между брокером и биржей идет постоянный обмен информацией.
По результатам всех сделок на бирже создается непрерывный поток данных. Мы получаем интересующую нас часть этих данных о текущей стоимости активов и вновь включаем логику торговой стратегии. Для анализа естественно используем какие-либо индикаторы: общеизвестные или собственные.
А теперь давайте посмотрим на архитектуру BackTrader:
Здесь:
DataFeeds – потоки данных.
Благодаря этому компоненты позволяет мы можем импортировать множество типов данных из разных источников – из файлов, базы данных, из таких сервисов, как Yahoo Finance, данные от брокеров.
Broker – брокер. Компонент, который отвечает за все что связано с размером сделки, маржой, комиссией и проскальзыванием. По сути это виртуальный торговый брокер.
Strategy – стратегия. Компонент нашей торговой стратегии. Это основа, с которой нам предстоит работать.
Indicators – индикаторы. Компонент содержит множество наиболее известных индикаторов. Также мы можем, используя этот компонент, создать свои собственные индикаторы.
Cerebro – мозг. По сути это движок платформы BackTrader, который управляет всеми процессами.
Analyzers – анализаторы. Этот компонент позволяет анализировать результаты нашей торговой деятельности.
Observers – наблюдатели. Этот компонент позволяет визуализировать то, что нам требуется. Например, может нарисовать график. Компонент собирает информацию, которая может быть использована в статистических целях. Отслеживает стоимость и доходность.
Давайте попробуем совместить две выше размещённые схемы:
все логично и схемы повторяют свою суть. Именно так и работает BackTrader.
И теперь на перспективу, что нам надо будет сделать, чтобы запустить свою роботизированную систему торговли на Python:
- Импортировать библиотеку BackTrader
- Создать экземпляр движка Cerebro
- Настроить поток данных
- Настроить условия тестирования и атрибуты брокера
- Написать торговую логику, запустить стратегию и получить результаты
И теперь у нас появился некий план на изучение компонентов библиотеки BackTrader.
- DataFeeds
- Indicators
- Strategy (+Orders)
- Broker и Sizers (отвечает за размер сделок)
- Analyzers
- Observers
Будем продвигаться.
P.S. Да, и не надо бояться Питона! :)) Самое сложное, что нам пригодится – ООП. Но на первом этапе нам понадобятся только самые базовые знания из серии “что это такое и в чем суть”, ну а изучать глубже будем только то, что потребуется и по ходу действий. Думаю по питону также появится небольшой материал на сайте.
Видео по теме: