Блог им. Proalgo

Наш выбор платформ для алгоритмической торговли

План

  1. Введение
  2. Способы создания торговых роботов
  3. Обзор платформ
  4. Вывод



Введение

     
      Приветствую друзья! Перед начинающим алготрейдером всегда стоит вопрос: какую же из имеющихся платформу использовать для алгоритмической торговли?  В данной статье хочу рассказать о нашем опыте использования софта для алготрейдинга, обозначить плюсы и минусы. Данный обзор основан исключительно на собственном опыте и охватывает самые популярные решения.

Все они соответствуют минимальному набору требований:

  • Возможность вести разработку на языке программирования C#
  • Тестирование на исторических данных
  • Реал тайм торговля 


Способы создания торговых роботов

     
      Для начала расскажу о способах создания торговых роботов, для себя мы выделяем 3 метода:

  1. Составление алгоритма в визуальном редакторе, так называемые «кубики»
  2. Создание алгоритма на встроенном скриптовом языке
  3. Написание логики на языке программирования
Способы создания торговых роботов

      Первый способ позволяет собрать логику из блок-схем, здесь не требуется каких-либо навыков программирования, достаточно умений написания формул и условных конструкций. Плюсом данного подхода является возможность в кратчайшие сроки получить первые результаты. В среднем, в зависимости от упорства и бэкграунда трейдера, на освоение этого способа требуется времени от нескольких дней до недели. К сожалению, у данного подхода есть и минусы, которые могут оказаться критическими при определении с выбором. Основной минус – это отсутствие возможности создания сложных стратегий. С ростом сложности торгового алгоритма, кратно возрастает сложность схемы из кубиков. Она разрастается в запутанную паутину, в которой становится сложно ориентироваться. Частично эти проблемы решаются программированием собственных кубиков, но эта возможность требует от создателя навыков программирования.

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

      Третий подход самый трудоемкий. На примере языка C#, вам потребуется не менее полугода, чтобы научиться писать торговых роботов. Это при условии, что вы будете уделять не менее 3-4 часов каждый день на его изучение. Но зато, после освоения языка, перед вами откроются практически безграничные возможности в написании торговых роботов. По мимо этого, свои навыки вы сможете применять и в других областях.


Обзор платформ

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

Перечень платформ, о которых пойдет речь:

1.       WealthLab 6

2.       TSLab

3.       OsEngine

4.       StockSharp


WealthLab 6

     
      WealthLab 6 – ветеран индустрии, программа, позволяющая создавать торговых роботов любым из трех способов. Тут тебе и визуальный конструктор, и собственный скриптовый язык, и API для языка C#. Доступен почти полный спектр возможностей для алгоритмической торговли на финансовых рынках. Использует векторную модель обработки данных. С одной стороны это дает прирост производительности при тестировании и оптимизации, с другой позволяет заглядывать в будущее или торговать в прошлом. Платная программа, распространяется по подписке.

Плюсы:

  • Возможность тестировать портфель инструментов
  • Возможность тестировать портфель стратегий
  • Наличие оптимизатора
  • Возможность использовать сторонние расширения, разрабатывать собственные
  • Большое комьюнити

Минусы:

  • Использование одного потока в работе, что сильно замедляет работу приложения, особенно сильно это сказывается на скорости тестирования и оптимизации
  • Отсутствие возможности торговать на российском рынке
  • Замечены случаи пропуска сигналов, там, где они должны быть. Не всегда верно работают алерты(сигналы), при подключении к данным получаемым в реальном времени


TSLab

      TSLab – российский продукт, многое перенявший у велслаба. Славится обширными возможностями своего визуального редактора. И вправду, конструктор стратегий имеет фактически не ограниченные возможности за счет программирования собственных блоков. Имеет тот же нюанс, что и велс – позволяет заглядывать в будущее. Условно бесплатный продукт.

Плюсы:

  • Доступен абсолютно бесплатно для разработки, тестирования и оптимизации стратегий
  • Удобный пользовательский интерфейс, возможность настройки рабочих областей по своему вкусу
  • Хороший визуальный конструктор торговых роботов
  • Наличие тестера, оптимизатора
  • Удобный API
  • Использует многопоточность в работе, что положительно сказывается на скорости тестирования и оптимизации
  • Большое комьюнити. Наличие большого количества обучающего материала, как платного, так и бесплатного
  • Удобство отладки скриптов, код можно изменять хоть из блокнота, изменения сразу же подхватываются после сохранения

 

Минусы:

  • Отсутствие возможности из пользовательского интерфейса тестировать портфель инструментов и/или стратегий
  • Довольно прожорливое ПО, при запуске скриптов в реал тайм торговлю потребляет много оперативной памяти. Может быть критично для работы на слабеньких серверах.
  • Замечены случаи пропуска сигналов, там, где они должны быть
  • Цена многим не по карману, плюс нужно оплачивать каждый коннектор в отдельности
  • Встречаются пропуски исполнения входов, выходов


OsEngine

     
      OsEngine – платформа с открытым исходным кодом от нашего соотечественника. В последнее время стремительно набирает популярность за счет абсолютно бесплатного доступа к исходникам. Архитектура программы строится на событийной модели программирования. Это исключает возможность заглядывать в будущее, но негативно сказывается на скорости тестирования и оптимизации. Из коробки доступно множество подключений, при необходимости можно разработать или заказать подключение к любому рынку.

Плюсы:

  • Распространяется абсолютно бесплатно, открытый исходный код
  • Предоставляет полный перечень программ для торговли, тестирования, оптимизации
  • Наличие функционала для скачивания исторических данных: свечей, истории сделок
  • Майнер ценовых паттернов, лично для себя мы не нашли плюсов в поиске и использовании таких стратегий, но кому-то эта программа позволит сэкономить кучу времени
  • В комплекте доступно более 30 различных роботов: реверсные, арбитражные, маркетмейкеры. С точки зрения заработка на финансовых рынках в этих роботах мало ценности, но они идеально подойдут новичку в качестве учебного пособия
  • Обилие комментариев в коде, что упрощает процесс знакомства
  • Возможность тестировать портфели бумаг и стратегий

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

Минусы:

  • Для работы придется либо нанимать разработчиков, либо самому осваивать C#
  • Отсутствие визуального конструктора
  • Плохая оптимизация кода, отвечающего за вывод графической информации
  • Не удобный графический интерфейс
  • Бизнес-логика платформы активно модернизируется и изменяется, поэтому мануалы и обучающие материалы устарели
  • Многие коннекторы не поддерживаются, в следствии чего умерли

 

      По мимо этих минусов есть еще ряд особенностей и «подводных камней» в работе с OsEngine. В отдельной статье мы структурируем их и разберем способы решения.


StockSharp

      StockSharp – набор библиотек классов для алгоритмической торговли и комплект программ на их основе. С одной стороны код библиотек открыт и лежит на гитхабе, с другой стороны абсолютное большинство коннекторов к торговым площадкам распространяется на платной основе. StockSharp предоставляет весь перечень программ, необходимых алготрейдеру.

Плюсы:

  • Наличие визуального конструктора, именуемого S# Designer
  • Возможность тестировать портфель инструментов
  • Доступен бесплатно для разработки, тестирования и оптимизации стратегий
  • Открытый исходный код бизнес-логики
  • Наличие функционала для скачивания исторических данных: свечей, истории сделок, ордер лога, стаканов
  • Качественный код с точки зрения построения архитектуры подобных программ
  • Наличие документации с примерами

 

Минусы:

  • Высокий порог входа, чтобы работать с API, нужен уровень не ниже среднего
  • Обилие синтаксического сахара и новомодных конструкций языка в коде, что накладывает дополнительную нагрузку на начинающих программистов
  • Давно устаревшее обучение
  • Платная поддержка
  • Отсутствие из коробки такой удобной сущности как «Позиция» со своими входом и выходом. Придется оперировать ордерами и сделками
  • Визуальный конструктор не получил признания в среде трейдеров, видимо на то есть свои причины



Выводы

      Как мы видим ни один продукт не лишен недостатков, каждый из описанных имеет как свои плюсы, так и минусы. Но никто не ограничивает нас одной платформой, мы горазды выбирать то, что нам подходит больше всего, комбинировать варианты, брать только лучшее из предлагаемого. Для рисерча рынка, проверки идей, тестирования мы используем WealthLab и TSLab, в реальной торговле используем OsEngine. Почему такая комбинация? Процесс поиска и проверки идей занимает много времени. На этом этапе отсеивается подавляющее большинство алгоритмов. Чтобы минимизировать потраченное в пустую время, мы используем программы, позволяющие максимально быстро набросать алгоритм и проверить его на предмет пригодности. Как раз велс и тслаб дают такую возможность. Ввиду своих недостатков, для нас OsEngine пригоден только для реальной торговли, к тому же, из всех рассмотренных платформ, он является единственным полностью бесплатным решением. И, так вышло, что у нас большой опыт работы с этой программой. Ваш выбор будет зависеть от потребностей и умений. Если нет навыков в программировании, начните с кубиков TSLab, он закроет большинство задач. Если есть опыт в программировании на любом языке или сильное желание его приобрести, можете смело приступать к изучению OsEngine.

★4
17 комментариев
По OsEngine, при первом же знакомстве многие отваливаются в виду не возможности в Квике сразу запустить нормально QuikSharp.lua без танцев с бубном. На танцы с бубном у многих не хватает знаний. А автор как то сознательно игнорирует этот вопрос, больше акцентирован на крипте.
avatar
Anest, Подключение осы к квику через QuikSharp это только цветочки, основные проблемы возникают на этапе эксплуатации, поэтому, возможно, оно и к лучшему, что происходит так, как вы описали.
avatar
Proalgo, бесконечное количество багов и откровенная сырость делает платформу полностью не пригодной для запуска на реальных торгах. Разве что ее постоянно править в одну калитку, что в итоге сделает ее из бесплатной в очень дорогую.

Выбор странный, на мой взгляд. Тем более что ТСЛаб, что StockSharp уже предлагают какие-то бесплатные опции. Там хотя бы есть команда, отвечающая за баг фикс.

Ой хлебнете горя.
avatar
Собственный опыт, это хорошо. Но обзор чудовищно неполон без упоминания таких топ-популярных платформ как:
NinjaTrader (C#)
MultiCharts.NET (C#)
Metatrader (С++ подобный язык, бесплатен)
TradingView (возможности скромные, но многим этого оказывается достаточно)
avatar
Jame Bonds, так это по сути и не обзор, описаны платформы, с которыми мы сами плотно работали. А так, конечно, список всех вариантов гораздо больше.
avatar
Redline, кто лидер по вашему?
avatar
разрастается в запутанную паутину,
в которой становится сложно ориентироваться.
Минус? А кодом такой же объём глазом лучше виден?
Или кодом это плюс? 
avatar
Х-м-м
Если нет навыков в программировании
не начинайтте «с кубиков TSLab». Начните с выработки навыков.
Для Quik'а — с Lua. Если уже отработана стратегия для робота. Но отработка стратегии — о-о-чень долгий путь.
Так что начните с C#, чтобы поразвлечься с тестированием в WealthLab.
Или с Python — с прицелом на нейросети и Deep Learning.
В Питоне библиотеки numpy и Tensorflow используют все ядра ЦПУ и потоки графической карты NVidia.
avatar

В TSLab есть момент. Блоки кода(кубики) осваиваются за несколько дней. Написанный скрипт блоками после компиляции можно посмотреть как выглядит на C#, что пользователю позволяет очень быстро начать изучать C# при необходимости. На самом деле блоками в TSLab писать удобнее. Если чего-то не хватает, всегда можно добавить блок. Редактор сильно развит.

с++ высокоуровневый яп? Ню ню
avatar
Daniil Lazarev, самый низкоуровневый из всех высокоуровневых )
avatar
Daniil Lazarev, палка о двух концах
avatar

Перечень платформ, о которых пойдет речь:
1.       WealthLab 6
2.       TSLab
3.       OsEngine
4.       StockSharp

 

А где про StockSharp в посте?

avatar
Sprite, добавил, спасибо что указали на проблему, редактор постов чудит похоже.
avatar
Redline, mt? )
avatar

теги блога Proalgo

....все тэги



UPDONW
Новый дизайн