Блог им. elektroyar

Библиотека OpenBoApi для работы с лохотронами

Кто-то этого давно ждал, кто-то не ждал, кому-то вообще параллельно. Тем не менее, встречайте: библиотека для работы с брокерами бинарных опционов OpenBoApi. Не благодарите.

Библиотека OpenBoApi для работы с лохотронами

Либа написана на С++, почему? Потому что это не питон. Либа пока еще сырая, тем не менее я сам ее использую, тут я как сыроед, в кодинге, ну. Либа будет дальше там, ну, улучшаться, дополняться и т.д.

Лирическое отступление


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

Ближе к телу


OpenBoApi - это C++ header-only библиотека для работы с API брокеров бинарных опционов. С помощью этой библиотеки выполняется правило трех сигм, тфу, то есть, трех  'М' - Мы Можем Многое:

  • Открывать сделки (в перспективе — сразу на разных брокерах, пока только у двух можно, intrade.bar и olymptrade)
  • Получать котировки из разных источников
  • Фильтровать сигналы от новостей или использовать прогнозы новостей
  • Да в общем все, что угодно можно сделать на базе этой библиотеки
Проект пока еще находится в стадии разработки! Исходники могут измениться, а работоспособность программ не гарантирована! И вообще не торгуйте бинарками, есть куда надежнее способы заработать, ну там вклады в банках под 8% в год, акции, золото и все такое. Не пытайтесь просто так «поднять бабла», для этого нужны наукоемкие дела. 

Кому это может пригодиться?

Данная библиотека может быть полезна, если вы:

  • Умеете кодить на С++ и хотите сделать робота-грааль для торговли, заложив в него свою супер-стратегию
  • Умеете кодить на С++ и хотите сделать робота для продажи, так как это безопаснее, чем торговать самостоятельно
  • Умеете кодить на С++ и хотите сделать робота для продажи, так как ваши стратегии на самом деле не работают
  • Умеете кодить на С++ и хотите сделать робота с мартингейлом для заработка по партнерской программе
  • Умеете кодить на С++ и хотите сделать робота для копирования сигналов, чтобы вести ДУ
  • Умеете кодить на С++ и хотите сделать робота для копирования сигналов, чтобы зарабатывать по партнерской программе с оборота средств или со слива трейдеров
  • Не умеете кодить на С++, но собираетесь нанять фрилансера, который умеет в Си, чтобы сделать что-то из выше описанного на базе данной либы
  • Не умеете кодить на С++, но обращаетесь к автору библиотеки, который подумает, стоит ли с вами вообще связываться) Если что, пишите
Инструкция по установке

Данный проект поддерживает С++11 и был проверен на компиляторе x86_64-7.3.0-release-posix-seh-rt_v5-rev0. Проект имеет множество зависимостей, но большинство из зависимостей - header-only библиотеки. Все зависимости добавлены в папку lib как субмодули. Разработка библиотеки производилась в IDE Code::Blocks. Готовые примеры проектов можно найти в папке code_blocks.

Шаг №1

Загрузите репозиторий при помощи git сразу с субмодулями (библиотеками в папке lib). Для этого в командной строке выполните команду:

<code>git clone --recurse-submodules -j8 https://github.com/NewYaroslav/open-bo-api.git
</code>

Дождитесь завершения загрузки. Это будет не быстро.

Шаг №2

Распакуте в папке lib архивы boost_1_71_0.zip (библиотека boost с заголовками asio) и utf8_v2_3_4.zip (библиотека для работы с utf8). Без этих библиотек собрать проект не выйдет.

Шаг №3

Откройте проект code_blocks\trading_robot_template\trading_robot_template.cbp при помощи Code::Blocks. В проекте указан компилятор mingw_64_7_3_0, который в вашем Code::Blocks отсутствует. Вы можете добавить настройки компилятора с именем mingw_64_7_3_0 в Settings->Compiler или поменять компилятор проекта на стандартный GNU GCC Compiler. Проект точно должен работать с компилятором x86_64-7.3.0-release-posix-seh-rt_v5-rev0, но вы можете скачать последнюю версию тут Почитать про устанвоку компилятора можно в инструкции MINGW_INSTALL.md

Шаг №5

Внесите изменения в проект trading_robot_template, trading_robot_template_with_mt4trading_robot_template_with_mt4_2 и другие под ваши нужды. Библиотека xtechnical_analysis содержит индикаторы, корреляцию и статистические показатели. Конечно же можно использовать и другие библиотеки, такие как ta-lib

  • Проект trading_robot_template_with_mt4_2 использует поток котировок от MetaTrader4, остальные проекты используют поток котировок брокера.

  • Пример trading_robot_template_bb просто показывает, как можно обрабатывать сразу массив индикаторов.

  • Пример intradebar_olymptrade_template_rsi торгует по сигналам RSI сразу на двух брокерах, выбирая наилучшие условия

Шаг №6

Забыл удалить этот шаг. Удалил)

Возможности библиотеки
  • Можно работать с брокером intrade.bar (получать процент выплат, баланс депозита, открывать сделки) и olymptrade, остальные брокеры будут постепенно добавляться в библиотеку
  • Можно использовать поток котировок брокера intrade.bar
  • Можно перехватывать поток котировок из MetaTrader4 (библиотека mt-bridge)
  • Можно загружать экономические новости
  • Можно использовать индикаторы, корреляцию и статистические показатели из библиотеки xtechnical_analysis
  • Можно работать со временем при помощи библиотеки xtime_cpp
P.S. Нравится? Не благодарите. Не подписывайтесь на мой канал в телеге и всем успехов.

P.S. Не нравится? Ну извиняйте.
★8
Зачем uint32_t по конст-ссылке передаёшь? Если пишешь на плюсах, то юзай enum class, не засоряй код капсами енамов.
 static const std::map<std::string, uint32_t> intrade_bar_currency_pairs_index
Такие вещи всё-таки лучше через const char *делать, если постараться можно и как constexpr это оформить.
а почему там фотка мавроди?
сейчас всё в докерах надо, как микросервис, и без разницы на сях или на питонах он будет написан
avatar

akuloff

Как её состыковать с mql?
avatar

leonardo4

leonardo4, через DLL можно, например. 
avatar

elektroyar

elektroyar, а вы такое можете написать? я на mql пишу, библиотеки подключать умею.
avatar

leonardo4

leonardo4, но вообще я бы рекомендовал просто писать робота на С++ и не париться) 
avatar

elektroyar


....все тэги
2010-2020
UPDONW