После решения стать алготрейдером возникает огромное число вопросов. Самый судьбоносный звучит примерно так: "Какую технологию выбрать для создания робота и чем же они отличаются?".
На этот вопрос мы и попытаемся дать ответ.
ВНЕЗАПНО! Эта статья претендует на правду. Она написана коллективом программистов Old School Algo, и мы придерживаемся разных взглядов на ситуацию. Мы пытались быть откровенны. Ссорились и боролись за каждый абзац. Наслаждайтесь.
Введение
Эта статья о том как выбрать технологию для создания своего робота. В первую очередь она полезна начинающим алготрейдерам и тем кто только думает о переходе в алго.
В статье будут рассмотрены доступные техники создания ботов в разрезе плюсов и минусов относительно друг друга.
Как и любая не сектантская литература, статья требует ещё бОльшего мнения профессионалов. И конечно же она может быть опровергнута аргументами и фактами.
План статьи:
- 1.Характеристики технологий;
- 2.Quik Lua;
- 3.ТсЛаб;
- 4.ВелсЛаб;
- 5.Язык программирования R;
- 6.СтокШарп;
- 7.Своя библиотека;
- 8.Заключение.
В конце у нас должна получится сводная таблица с характеристиками разных технологий. Можно начать с неё. Она будет в Заключении.
Характеристики технологий
Для начала следует определить базовые характеристики, по которым будем сравнивать технологии создания роботов.
Вот они:
- 1.Скорость изучения. Сколько часов надо потратить на запуск первого бота, созданного по своему ТЗ.
- 2.Стоимость использования.
- 3.Поддержка. Количество и качество форумов на которых можно подсмотреть или попросить информацию.
- 4.Возможные алгоритмы
- a.основанные на свечах;
- b.основанные на тиках;
- c.основанные на стакане;
- d.основанные на опционах;
- e.основанные на ордер логе.
- 5.Возможности тестирования
- a.основанные на свечах;
- b.основанные на тиках;
- c.основанные на стакане;
- d.основанные на опционах;
- e.основанные на ордер логе.
- f.оптимизация
- g.машинное обучение
- 6.Стабильность. При взгляде со стороны, этот пункт описывает количество внезапных падений программы при казалось бы стандартном её использовании. Для программистов занимающихся проектом он означает степень покрытости кода тестами, общую безопасность применяемых конструкций и прозрачность изначальной архитектуры.
- 7.Кол-во возможных транзакций в секунду:
- a.менее 10
- b.более 10 и менее 50
- c.50 и более
- 8.Кол-во одновременно запущенных ботов. По чему можно определить качество инфраструктуры.
- a.менее 10
- b.более 10 и менее 50
- c.50 и более
- 9.Универсальность подключения к бирже. На сколько просто будет переподключить готового робота к другому терминалу/бирже.
Quik Lua
Quik - самый популярный терминал для доступа к бирже в России. Все мы с него начинали и он не нуждается в дополнительных представлениях. В рамках Quik развёрнут интерпретатор языка Lua, на котором можно писать роботов.
- 1.Скорость изучения. Как и у любого другого скриптового языка, от 100 до 500 часов. В зависимости от первоначального качества серого вещества.
- 2.Стоимость использования. Бесплатно.
- 3.Поддержка. Отличная поддержка на форуме Quik и в интернете.
- 4.Возможные алгоритмы.
- a.основанные на свечах; ДА
- b.основанные на тиках; ДА
- c.основанные на стакане; ДА
- d.основанные на опционах; ДА
- e.основанные на ордер логе. НЕТ
- 5.Возможности тестирования. Тут с оговоркой. В рамках Quik Lua не существует готовой инфраструктуры для тестирования стратегий на исторических данных. Можно создать самому какие-то костыли и попытаться оттестировать стратегию на них. Но для этого нужны совсем другие скилы и это совсем другая история...
- a.основанные на свечах; НЕТ
- b.основанные на тиках; НЕТ
- c.основанные на стакане; НЕТ
- d.основанные на опционах; НЕТ
- e.основанные на ордер логе; НЕТ
- f.оптимизация; НЕТ
- g.машинное обучение; НЕТ
- 6.Стабильность. Прекрасная, стабильная связка. Quik - стабильнейшая программа. Без единого нарицания. Интерпретатор Lua в ней - столь же крепок. При нахождении каких либо багов программистs Arqa оперативно исправляют ситуацию.
- 7.Кол-во возможных транзакций в секунду:
- менее 10. В противном случае транзакции начинают просто исчезать.
- 8.Кол-во одновременно запущенных ботов.
- Одновременно можно использовать до 200 стаканов в алгоритмах роботов для получения данных.
- 9.Универсальность подключения к бирже.
- Отсутствует.
ТсЛаб
ТсЛаб - "платформа для создания и запуска механических торговых систем". Популярнейшая программа для создания ботов. Завоевала свой кусок благодаря кубикам которые позволяют приобщиться к алготрейдингу за пару дней. В отличие от своих прямых конкурентов вроде Wealfh-Lab и Metastock, как и догоняющих Jatotrader и SoftAlgoTrade - является БЕСПЛАТНЫМ на этапе тестирования стратегий.
- 1.Скорость изучения. От 30 до 1000 часов. Подобный разброс вызван наличием в программе нескольких способов создания ботов. При помощи Api и при помощи "кубиков". Кубики заманивают людей, а потом уже выясняется что надо учить Си Шарп до уровня Junior.
- 2.Стоимость использования. От 1400 в месяц в режиме торговли. И бесплатно в режиме тестирования стратегий. Что, в общем, вполне себе бюджетно.
- 3.Поддержка. Из-за существования сервисов по платной поддержке, сервис по поддержке обычных пользователей по умолчанию ущербен.
- 4.Возможные алгоритмы.
- a.основанные на свечах; ДА
- b.основанные на тиках; ДА
- c.основанные на стакане; ДА
- d.основанные на опционах; ДА
- e.основанные на ордер логе. НЕТ
- 5.Возможности тестирования.
- a.основанные на свечах; ДА
- b.основанные на тиках; ДА
- c.основанные на стакане; ДА
- d.основанные на опционах; ДА
- e.основанные на ордер логе; НЕТ
- f.оптимизация; ДА
- g.машинное обучение; НЕТ
- 6.Стабильность. Хорошая. Ещё свежи раны от проблем с исполнением заявок и слежением за позицией. Но последнее время всё хорошо.
- 7.Кол-во возможных транзакций в секунду:
- зависит от точки подключения к бирже и количества запущенных ботов.
- 8.Кол-во одновременно запущенных ботов.
- от 10 до 50. Если запускать больше будут проблемы со скоростью работы.
- 9.Универсальность подключения к бирже.
- Имеется. Охвачены терминалы и шлюзы СНГ + Interactiv Brokers.
ВелсЛаб
ВелсЛаб - платформа для тестирования торговых систем. Для подключения к торговым системам российских брокеров существуют ряд костылей, разворачивающих определение до "платформа для тестирования и запуска механических торговых систем"
- 1.Скорость изучения. От 30 до 1000 часов. Как и в ТсЛаб, здесь существуют несколько режимов создания ботов. Кубики и интерпретатор языка СиШарп.
- 2.Стоимость использования. 800 ДОЛЛАРОВ!!! Помолимся небесам, за то, что мы в России.
- 3.Поддержка. Многое на английских форумах. Но они есть и доступны.
- 4.Возможные алгоритмы.
- a.основанные на свечах; ДА
- b.основанные на тиках; ДА
- c.основанные на стакане; НЕТ
- d.основанные на опционах; ДА
- e.основанные на ордер логе. НЕТ
- 5.Возможности тестирования.
- a.основанные на свечах; ДА
- b.основанные на тиках; ДА
- c.основанные на стакане; ДА
- d.основанные на опционах; НЕТ
- e.основанные на ордер логе; НЕТ
- f.оптимизация; ДА
- g.машинное обучение; ДА
- 6.Стабильность. Прекрасная
- 7.Кол-во возможных транзакций в секунду:
- зависит от точки подключения к бирже. Тут основным ограничением будет конкретный костыль для подключения к бирже.
- 8.Кол-во одновременно запущенных ботов.
- 50 и более.
- 9.Универсальность подключения к бирже.
- Отсутствует вообще. Придётся изрядно попотеть с подключением. Есть вариант подключиться к Квик через транзакции из файла. Это лучше всего. Про остальное лучше вообще умолчать, не надо.
Язык программирования "R"
R — язык программирования для статистической обработки данных и работы с графикой, а также свободная программная среда вычислений с открытым исходным кодом в рамках проекта GNU.
Используется в алготрейдинге для статистического анализа данных. Сложных вычислений. Оптимизации и обучения торговых алгоритмов.
- 1.Скорость изучения. От 1000 часов. Это всё не просто.
- 2.Стоимость использования. Бесплатно
- 3.Поддержка. Скромная. Почти всё на английском.
- 4.Возможные алгоритмы.
- a.основанные на свечах; ДА
- b.основанные на тиках; ДА
- c.основанные на стакане; ДА
- d.основанные на опционах; ДА
- e.основанные на ордер логе. ДА
- 5.Возможности тестирования.
- a.основанные на свечах; ДА
- b.основанные на тиках; ДА
- c.основанные на стакане; ДА
- d.основанные на опционах; ДА
- e.основанные на ордер логе; ДА
- f.оптимизация; ДА
- g.машинное обучение; ДА
- 6.Стабильность. Прекрасная
- 7.Кол-во возможных транзакций в секунду:
- 0
- 8.Кол-во одновременно запущенных ботов.
- 0
- 9.Универсальность подключения к бирже.
- Отсутствует как категория за бессмысленностью. Язык используется для тестов.
СтокШарп
S#.Api - платформа для создания торговых роботов.
Хорошо:
Множество разнообразных коннекторов.
Исчерпывающая инфраструктура. Вот всё что может пригодиться в алготрейдинге здесь есть.
Плохо:
Позиционируется как "мы библиотека, а не терминал". Из чего вытекает проблема отсутствия поддерживаемого интерфейса. Из чего выпрыгивает, как двух этажный слон, уже проблема со стабильностью.
"мы библиотека, а не терминал", также активно применяется при троллинге обезумевших от повсеместных багов юзеров. Поддержка отсутствует, т.к. на любой вопрос товарищи с форума резонно отправляют на платное обучение или платную поддержку.
Дикая стоимость HFT коннекторов. от 90 тыр.
- 1.Скорость изучения. От 4000 часов. Чтобы править баги в библиотеке придётся выучить Си Шарп на уровне архитектора. Понимать какие данные куда идут. Паттерны проектирования. Разобрать паутины путей данных, которые идут через ссылки Все на всех.
- 2.Стоимость использования. все быстрые коннекторы - от 90 тыс. руб.
- 3.Поддержка. Есть. Хоть и частенько посылают в кассу. Надо признать всё же, что поддержка есть.
- 4.Возможные алгоритмы.
- a.основанные на свечах; ДА
- b.основанные на тиках; ДА
- c.основанные на стакане; ДА
- d.основанные на опционах; ДА
- e.основанные на ордер логе. ДА
- 5.Возможности тестирования.
- a.основанные на свечах; ДА
- b.основанные на тиках; ДА
- c.основанные на стакане; ДА
- d.основанные на опционах; ДА
- e.основанные на ордер логе; ДА
- f.оптимизация; ДА
- g.машинное обучение; ДА
- 6.Стабильность. До недавних пор была ужасной. Но последний год парни так расстарались, что в последних версиях тяжело найти ошибку. А учитывая открытый код - стало возможным на лету самому поставить заплатку.
- 7.Кол-во возможных транзакций в секунду:
- ограничено подключением.
- 8.Кол-во одновременно запущенных ботов.
- 50 и более.
- 9.Универсальность подключения к бирже.
- Присутствует.
Своя разработка
Имеется ввиду разработка своей библиотеки, на одном из языков программирования. C#, Java, Delphi, C++ и т.д. Именно так побеждают на ЛЧИ. Никаких других вариантов нет.
Хорошо:
1) Ну вообще всё хорошо. Можно сделать все, что душе угодно. Бесплатно. Никаких падающих библиотек и тормозящих прослоек.
Плохо:
2) Гигантские временные издержки на создание.
Описывать преимущества и недостатки по пунктам не стану. И так всё понятно. Если Вы крутой программист на уровне Архитектора или хотите им стать, то надо писать свою библиотеку. Через пару лет у Вас будет возможность делать всё что душе угодно. И никакие ТсЛабы со СтокШарпами Вас не догонят.
Заключение
Какие выводы можно сделать из итоговой таблицы?
Для тех кто хочет учить сам:
1) Технологии для лентяев. Первые три. ВНЕЗАПНО! Почти по всем показателям держат удар хорошо.
2) Сумасшедшим, которые хотят победить в ЛЧИ. Лучше выбрать R для тестирования и самописную библиотеку для реализации.
Для тех кто хочет заказать бота:
1) смотрим графу стоимость (постоянные расходы), кол-ва подключений (универсальность), кол-ва возможных алгоритмов (скорость платформы). И делаем выбор сами.
В этой статье мы рассмотрели популярные в СНГ способы создания роботов для трейдинга. Коллектив Old School Algo надеется что она была полезна.
Удачных алгоритмов!
P.S.
Обсуждаем в телеграмме: https://t.me/o_s_a_chat
Канал проекта: https://t.me/bad_quant
1 комментарий
Не смотря на простоту языка и то что он морально устарел с появлением quik lua, если нет требований по быстродействию(работа с часовым графиком и выше) то вполне актуальный язык для начинающего алготрейдера.
1.Скорость изучения. От 100 до 500 часов.
2.Стоимость использования. Бесплатно.
3.Поддержка. Поддержка на форуме Quik и в интернете.
4.Возможные алгоритмы.
a.основанные на свечах; ДА
b.основанные на тиках; НЕТ
c.основанные на стакане; хотя и доступ к стакану есть, но учитывая период пересчета портфеля, данные могут быть уже не актуальны, так что скорее НЕТ чем ДА
d.основанные на опционах; ДА
e.основанные на ордер логе. НЕТ
5.Возможности тестирования. НЕТ
a.основанные на свечах; НЕТ
b.основанные на тиках; НЕТ
c.основанные на стакане; НЕТ
d.основанные на опционах; НЕТ
e.основанные на ордер логе; НЕТ
f.оптимизация; НЕТ
g.машинное обучение; НЕТ
6.Вполне стабильно
7.Кол-во возможных транзакций в секунду: менее 1
8.Кол-во одновременно запущенных ботов. В зависимости от таймфрейма, на часовом вполне работает 5-10 ботов, соответственно с понижением таймфрейм количество ботов резко падает
9.Универсальность подключения к бирже.Отсутствует.