Приветствую друзья! Перед начинающим алготрейдером всегда стоит вопрос: какую же из имеющихся платформу использовать для алгоритмической торговли? В данной статье хочу рассказать о нашем опыте использования софта для алготрейдинга, обозначить плюсы и минусы. Данный обзор основан исключительно на собственном опыте и охватывает самые популярные решения.
Все они соответствуют минимальному набору требований:
Для начала расскажу о способах создания торговых роботов, для себя мы выделяем 3 метода:
Первый способ позволяет собрать логику из блок-схем, здесь не требуется каких-либо навыков программирования, достаточно умений написания формул и условных конструкций. Плюсом данного подхода является возможность в кратчайшие сроки получить первые результаты. В среднем, в зависимости от упорства и бэкграунда трейдера, на освоение этого способа требуется времени от нескольких дней до недели. К сожалению, у данного подхода есть и минусы, которые могут оказаться критическими при определении с выбором. Основной минус – это отсутствие возможности создания сложных стратегий. С ростом сложности торгового алгоритма, кратно возрастает сложность схемы из кубиков. Она разрастается в запутанную паутину, в которой становится сложно ориентироваться. Частично эти проблемы решаются программированием собственных кубиков, но эта возможность требует от создателя навыков программирования.
Второй способ потребует гораздо больших усилий. Вам придется освоить скриптовый язык программирования, используемый в выбранной платформе. С его помощью вы сможете писать довольно сложные алгоритмы. Минус в том, что скриптовые языки используются в узком спектре направлений и имеют ограниченный набор возможностей по сравнению с языками высокого уровня.
Третий подход самый трудоемкий. На примере языка C#, вам потребуется не менее полугода, чтобы научиться писать торговых роботов. Это при условии, что вы будете уделять не менее 3-4 часов каждый день на его изучение. Но зато, после освоения языка, перед вами откроются практически безграничные возможности в написании торговых роботов. По мимо этого, свои навыки вы сможете применять и в других областях.
Существует не мало платформ для создания роботов. Следует заметить, что под «платформой» я подразумеваю как набор библиотек классов, так и готовые программы. Нас интересует только автоматизированная торговля, мы кратко пробежимся по самым популярным решениям, определим для себя плюсы и минусы. Подчеркну, что мы выделяем плюсы и минусы не в рамках сравнения продуктов друг с другом, а в рамках выбора оптимального решения для алгоритмической торговли.
Перечень платформ, о которых пойдет речь:
1. WealthLab 6
2. TSLab
3. OsEngine
4. StockSharp
WealthLab 6 – ветеран индустрии, программа, позволяющая создавать торговых роботов любым из трех способов. Тут тебе и визуальный конструктор, и собственный скриптовый язык, и API для языка C#. Доступен почти полный спектр возможностей для алгоритмической торговли на финансовых рынках. Использует векторную модель обработки данных. С одной стороны это дает прирост производительности при тестировании и оптимизации, с другой позволяет заглядывать в будущее или торговать в прошлом. Платная программа, распространяется по подписке.
Плюсы:
Минусы:
TSLab – российский продукт, многое перенявший у велслаба. Славится обширными возможностями своего визуального редактора. И вправду, конструктор стратегий имеет фактически не ограниченные возможности за счет программирования собственных блоков. Имеет тот же нюанс, что и велс – позволяет заглядывать в будущее. Условно бесплатный продукт.
Плюсы:
Минусы:
OsEngine – платформа с открытым исходным кодом от нашего соотечественника. В последнее время стремительно набирает популярность за счет абсолютно бесплатного доступа к исходникам. Архитектура программы строится на событийной модели программирования. Это исключает возможность заглядывать в будущее, но негативно сказывается на скорости тестирования и оптимизации. Из коробки доступно множество подключений, при необходимости можно разработать или заказать подключение к любому рынку.
Плюсы:
В первую очередь данный проект позиционируется как ПО для программистов, что накладывает некоторые ограничения на пользователей, не имеющих навыков программирования.
Минусы:
По мимо этих минусов есть еще ряд особенностей и «подводных камней» в работе с OsEngine. В отдельной статье мы структурируем их и разберем способы решения.
StockSharp – набор библиотек классов для алгоритмической торговли и комплект программ на их основе. С одной стороны код библиотек открыт и лежит на гитхабе, с другой стороны абсолютное большинство коннекторов к торговым площадкам распространяется на платной основе. StockSharp предоставляет весь перечень программ, необходимых алготрейдеру.
Плюсы:
Минусы:
Как мы видим ни один продукт не лишен недостатков, каждый из описанных имеет как свои плюсы, так и минусы. Но никто не ограничивает нас одной платформой, мы горазды выбирать то, что нам подходит больше всего, комбинировать варианты, брать только лучшее из предлагаемого. Для рисерча рынка, проверки идей, тестирования мы используем WealthLab и TSLab, в реальной торговле используем OsEngine. Почему такая комбинация? Процесс поиска и проверки идей занимает много времени. На этом этапе отсеивается подавляющее большинство алгоритмов. Чтобы минимизировать потраченное в пустую время, мы используем программы, позволяющие максимально быстро набросать алгоритм и проверить его на предмет пригодности. Как раз велс и тслаб дают такую возможность. Ввиду своих недостатков, для нас OsEngine пригоден только для реальной торговли, к тому же, из всех рассмотренных платформ, он является единственным полностью бесплатным решением. И, так вышло, что у нас большой опыт работы с этой программой. Ваш выбор будет зависеть от потребностей и умений. Если нет навыков в программировании, начните с кубиков TSLab, он закроет большинство задач. Если есть опыт в программировании на любом языке или сильное желание его приобрести, можете смело приступать к изучению OsEngine.
Выбор странный, на мой взгляд. Тем более что ТСЛаб, что StockSharp уже предлагают какие-то бесплатные опции. Там хотя бы есть команда, отвечающая за баг фикс.
Ой хлебнете горя.
NinjaTrader (C#)
MultiCharts.NET (C#)
Metatrader (С++ подобный язык, бесплатен)
TradingView (возможности скромные, но многим этого оказывается достаточно)
Или кодом это плюс?
Для Quik'а — с Lua. Если уже отработана стратегия для робота. Но отработка стратегии — о-о-чень долгий путь.
Так что начните с C#, чтобы поразвлечься с тестированием в WealthLab.
Или с Python — с прицелом на нейросети и Deep Learning.
В Питоне библиотеки numpy и Tensorflow используют все ядра ЦПУ и потоки графической карты NVidia.
В TSLab есть момент. Блоки кода(кубики) осваиваются за несколько дней. Написанный скрипт блоками после компиляции можно посмотреть как выглядит на C#, что пользователю позволяет очень быстро начать изучать C# при необходимости. На самом деле блоками в TSLab писать удобнее. Если чего-то не хватает, всегда можно добавить блок. Редактор сильно развит.
А где про StockSharp в посте?