Интеграция Oanda и CCXT
Это четвертая история из серии Создание торгового бота. Вам нужно знать Backtrader, чтобы понять эту историю. Если вы не знаете, что такое Backtrader, или хотите найти другие истории из этой серии, вам следует проверить следующую историю:
Для этой серии я сделал репозиторий на GitHub. Если вы хотите использовать его, чтобы следовать коду, вы можете найти его здесь: Серия торговых ботов.
Как правило, конечной целью торгового бота является обеспечение автоматической и реальной торговли. Пока что мы реализовали только функционал тестирования на истории. Пришло время реализовать возможности торговли в реальном времени для нашего бота.
Можно сделать торгового бота совместимым с любым брокером, которого вы хотите. Однако наш бот работает с Backtrader, а брокеров, совместимых с Backtrader, не так много. Один из них — Оанда. Есть также Interactive Brokers и Visual Charts. Существует также интеграция Backtrader CCXT, позволяющая нам торговать в режиме реального времени на большинстве криптовалютных бирж (Binance, Coinbase и т. д.).
Конечно, можно разработать собственную интеграцию, совместимую с Backtrader и вашим брокером, но это выходит за рамки этой серии статей.
Я начну с объяснения различий между реальной торговлей и тестированием на исторических данных.
Живая торговля
В целом, все функции Backtrader остались прежними. То есть заказы обрабатываются одинаково, ваша стратегия работает одинаково и т.д.
За живой торговлей стоит понятие «Магазин». Магазин является шлюзом между Backtrader и вашим брокером. Он предоставляет данные и брокера Backtrader.
Итак, при реальной торговле вам придется настроить магазин. Вот пример реальной торговли на Binance:
Все магазины работают практически одинаково, поэтому их конфигурация должна выглядеть примерно одинаково. В большинстве случаев вам нужно передать в качестве параметров хотя бы ключ API и имя учетной записи или секрет. Остальные параметры зависят от магазина.
Некоторые параметры, используемые в приведенном выше примере:
- биржа: Binance, Coinbase и т. д.
- currency: валюта котировки.
- nonce: параметр, используемый для шифрования запросов.
- enableRateLimit: чтобы бот не рассылал спам-запросы.
- песочница: для торговли бумагой.
Затем вы можете получить фид данных из магазина, используя store.getdata()
. Вы также можете получить брокера, используя store.getbroker()
.
Одна вещь, которую нужно знать об этих двух объектах, это то, что они получают данные в режиме реального времени, поэтому данные иногда могут быть устаревшими или неточными. Вот почему могут быть различия в производительности при тестировании стратегии и при торговле с ней на бумаге.
Кроме того, данные, которые вы получаете, иногда представляют собой задержанные данные, потому что это могут быть данные, необходимые Backtrader для выполнения расчетов. Например, если вы используете EMA 200, Backtrader нужны исторические данные для расчета этой скользящей средней.
При изменении статуса данных Церебро отправляет уведомление в стратегию через notify_data
. Итак, давайте реализуем это в нашей базовой стратегии:
Теперь мы можем добавить к нашему боту метод для реализации живой торговли, используя все вышеперечисленное. Метод будет очень похож на тот, который использовался для тестирования на истории. Чтобы избежать повторения кода, я немного рефакторил его, используя статический метод.
Живой сценарий
Теперь все, что нам нужно сделать, это создать скрипт, чтобы упростить торговлю в реальном времени. Но сначала мы должны установить некоторые зависимости.
Первый oandapy
. Если вы попытаетесь установить oandapy
, используя только pip install oandapy
, это не сработает, вместо этого сделайте это следующим образом:
pip install git+https://github.com/oanda/oandapy.git
Затем есть ccxt
:
pip install ccxt
Наконец, есть ccxt-bt
:
pip install git+https://github.com/Dave-Vallance/bt-ccxt-store.git
Теперь давайте создадим наш небольшой скрипт:
Вы должны все понять. Как видите, магазин Oanda и магазин CCXT не сильно отличаются.
Если у вас есть ключи API, чтобы попробовать код, он должен работать. Если вы этого не сделаете, вы можете создать API на веб-сайте вашего брокера.
Заключительное примечание
Если вы не используете Oanda или криптовалютные биржи, извините, я не буду реализовывать других брокеров через эту серию. Но если у вас есть вопросы и вы хотите использовать этого торгового бота со своим брокером, не стесняйтесь оставить комментарий или связаться со мной, и я постараюсь решить ваши проблемы.
Вы также можете попробовать создать свои собственные магазины или свои собственные потоки данных и брокеров.
Я думаю, что эта история является последней из серии. У меня есть идеи, что можно реализовать в боте, но это больше связано с алгоритмической торговлей, чем с торговыми ботами.
Я надеюсь, что вы нашли эту серию полезной. Существует множество способов создания торговых ботов, и я предлагаю вам попробовать создать свой собственный способ, отличный от того, который сделал я, потому что это полезно для практики.
Чтобы найти другие истории из этой серии и больше о совмещении трейдинга и Python, прочтите эту статью: Улучшите свою торговлю с помощью Python
Чтобы узнать больше о моих рассказах о Python, нажмите здесь!
Если вам понравилась история, не забудьте похлопать и, возможно, подпишитесь на меня, если хотите узнать больше о моем содержании :)
Вы также можете подписаться на меня по электронной почте, чтобы получать уведомления каждый раз, когда я публикую новую историю, просто нажмите здесь!
Если вы еще не подписаны на Medium и хотите поддержать меня или получить доступ ко всем моим историям, вы можете использовать мою ссылку:
Сообщение от InsiderFinance
Спасибо, что являетесь частью нашего сообщества! Перед тем, как ты уйдешь:
- 👏 Хлопайте за историю и подписывайтесь на автора 👉
- 📰 Смотрите больше контента в InsiderFinance Wire
- 📚 Пройдите наш БЕСПЛАТНЫЙ мастер-класс
- 📈 Откройте для себя Мощные торговые инструменты