За последние годы, из-за появления множества специализированных под автоматический трейдинг платформ и библиотек понятие «алготрейдер» растянулось на несколько разных областей знаний. Сегодня алготрейдер это и хардкор программист С++ и TSLab редактор и S# кодер.
Так все-таки, какие существуют способы создания торговых роботов? В чём профит и проблемы того или иного подхода.
Holy war inside...
С++ или C# + 10000 часов = злой HFT.
S#.API + 1000 часов = милый HFT или злой скальпер.
TSLab+ 50 часов = милый скальпер.
На сегодня популярны несколько способов создания торговых роботов. К сожалению, они не классифицированы и боясь, наткнутся на обвинения в том, что я science freak, всё же попробую разбить их на категории:
Категории алготрейдеров по способу создания МТС и краткий перечень их плюсов и минусов. Чем левее блок, тем более сложные алгоритмы можно создавать.
Visual School algo
— категория алготрейдеров которые пишут роботов в визуальных редакторах платформ для трейдинга.
Самый грубый и разрекламированный способ создания МТС.
Популярные редакторы:
- TSLab;
- WhelthLab;
- MetaTrader;
- S#.Studio;
- Multicharts;
- TradeStation;
- OECTrader.
До первого бэк теста необходимо уделить вопросу от 5 до 20 часов.
Идеально подходит трейдерам, которые не хотят быть программистами.
Высшая форма развития робота — набор роботов — скальперов (Что в некоторых ситуация вообще-то тоже не плохо).
Api School algo
— категория алготрейдеров которые используют встроенные в платформы для трейдинга языки программирования.
Популярные языки:
- QPILE — встроенный язык Quik.
- MQL — встроенный язык MetaTrader
- Easy Language — встроенныйязыкMulticharts, TradeStation, OEC Trader.
- C# — язык TsLab, WhelthLab и S#.Studio.
Данный способ создания МТС, несмотря на свою популярность, кажется лично мне попыткой прикрутить к трактору самолёт.
Как этим заболеть:
- Тратим 100 часов на визуальный редактор любой из платформ представленных выше.
- Понимаем, что это всё херня, что надо писать свои индикаторы и использовать нечто оригинальное.
- Учим один из встроенных языков (+ 200 — 500 часов).
- ...
- Профит.
Понимаю, что это вызовет срач однако высокую скорость исполнения
ни одной из перечисленных платформ не поставлю, хоть и большинство из них сам не юзал. А всё потому что все мои эксперименты с событийными и
MVC/
MVP архитектурами провалились. Полученные роботы работали медленнее Монолита без делегатов, событий и сложных взаимодействий объектов. Поэтому вероятность того, что роботы на базе даже того же
S#.
Studioбыстрее
C# оптимизированных (по скорости исполнения) роботов, ничтожно мала. А вот вероятность того, что они на несколько порядков медленнее, напротив, стремиться к единице.
В общем и целом не плохой выбор для начинающего алготрейдера. На первое время (а может и навсегда), функционала будет достаточно, кроме того, готовый каркас повысит безопасность программы.
Но здесь необходимо понимать, что драгоценное время будет упущено и потом, возможно, придётся долго и мучительно переучиваться писать самому.
Высшая форма развития робота — полуавтоматический
HFT. Т.е. платформа, в которую жестко забивается точка входа, точка выхода, и изредка переоптимизируясь всё это работает под чутким присмотром алготрейдера.
New School algo
— категория алготрейдеров которые создают МТС используя готовые библиотеки.
В России это
S#.API
S#.API это набор объектов и подпрограмм, которые
программист C# может использовать в своих МТС. Это не визуальный редактор и не готовая программа!
Разница с предыдущей категорией — скорость. За счёт того, что это библиотека, есть возможность не брать лишнего «в дорогу», из-за этого теоретически, должен быть качественный рывок по скорости исполнения. Хотя конечно надо это дело проверять...
Сами разработчики утверждают, что на обучение этой магии надо потратить около полу года. Если по 8 часов в день, то около 1500 часов, если по 5, то около 1000.
Как и в предыдущей категории, высшая форма развития робота — полуавтоматический
HFT.
Old School algo
— категория алготрейдеров которые сами создают свои библиотеки и платформы для торговли.
Плюсы такого способа создания роботов очевидны. Нет никакой привязки к архитектуре, отсюда возможность создавать самые быстрые МТС любой сложности.
Вся проблема заключается в том, что для того чтобы научится с нуля писать самых простейших роботов, надо потратить от 1500 до 2000 (двух тысяч) часов времени.
Ни в одном институте таких перцев не готовят.
На рынке труда также невероятно дорог, как и редок.
Высшая форма развития робота — ИИ
HFT. Т.е. платформа, которая в серии бэк-тестов, сама находит работающие на сегодняшний день паттерны, затем торгует их и управляет позицией.
Выбор способа создания МТС очень ответственный и сложный момент в жизни алготрейдера. От этого зависит вообще ВСЁ! И при этом есть ощущение, что у многих этот процесс происходит не осознанно. Про
OLDSCHOOL ALGO мало кто пишет, в то время как другие способы создания роботов преподносятся как «абсолют» и рекламируются на каждом шагу. Надо друзья это дело исправлять...
И ещё для тех, кто не решил по какому пути идти, уместно вспомнить одного моего преподавателя из института (цитата):
«Если хотите стать программистом, то начинайте учить С++, т.к. если начать с C# то переучиться не получиться, это как наркотик...».
Зимаев И.
О чем это он там намекает: Чем проще даётся создание законченной программы, тем сложнее морально потом переходить к каким-то более сложным способам создания того же самого, пусть даже это будет перспективнее и технологичнее. Поэтому надо сразу выбирать технологичный и сложный путь, ориентируясь на лучших в своём деле. Тогда всё обязательно получиться!
полуавтоматический HFT? как-то странно это
Нет связи между high frequency и какими-либо точками входа и выхода.
smart-lab.ru/finansoviy-slovar/HFT
а лучше вот здесь:
habrahabr.ru/post/163371/ — третий абзац
Совершенно верно.
Под термином HFT понимается набор техник при торговле акциями и деривативами, когда большой поток заявок отправляется на рынок с раунд-трипом меньше миллисекунды[1].
Раунд-трип имеет значение, а никак не точки входа.
И техники не есть стратегии.
А по поводу того, что олд скул никто не пиарит, это вопрос времени. Начнут. Сейчас уже все подряд пиарят. Дошло до того, что маркетмейкерские страты в массы толкают. Это вообще не нормально.
1 самое главное не си, не с++, не с#, не индикаторы, не 1000 часов программирования, а идея и концепция бота, т.е. грааль… если она есть, то можно писать хоть на чем…
2 скорость исполнения бота в тормознутом визуальном редакторе тслаба 2мсек легко… что в 100раз меньше скорости выставления заяв в 200мсек, а есть еще и задержка данных от биржи… т.е. повышать скорость бота смысла нет, все равно затык в скорости выставления заяв и лаге получения данных…
3 у многих начинающих алготрейдеров неверный подход… типа выучу си и буду ботов клепать… однако знание си и умение программировать никак не связано со способностью торговать в профит
4 чтоб написать действительно хорошего бота мне потребовалось 7 лет (и это имея большой опыт программирования мозгов для всяких приборов)… имхо проще руками научиться торговать… алготрейдинг писец какая непростая тема… только новичку кажется что все дело в умении программировать и в выборе платформы
1. Да. Концепции прибыльной торговли известны, как для TSLab так и для HFT. Пишите пробой канала из 18 условий и 44 кубиков, я не мешаю. Только у меня немного другая цель и я её себе ой как хорошо представляю.
2. Да. На конечную скорость доступа к бирже сложно повлиять программно. Вот только процесс оптимизации и тестирования визуальный редактор замедлит в сотни, а в некоторых случаях в тысячи раз. Что с этим делать? А я скажу — забыть про ИИ.
3. Знание Си и программирования повышает IQ и на прямую сказывается на результатах торговли, а вот приносит ли такой же профит изучение кубиков визуального редактора?
Вероятно всё это выглядит как ересь с точки зрения TSLab алготрейдера, но это так…
Чем больше элементов и параметров у системы тем она гибче, но при этом сложнее в управлении и слабее по стабильности(т.е. вероятность полного отказа или частичной поломки значительно возрастает).
В плане оптимизации и настроек всё примерно так, как говорит ves2010.
1. Прекрасно понимаю как составляется алгоритм торгового робота) и не против того что «идея робота» самое главное. На этом можно заработать. Речь ведь о том куда можно прийти отправившись по пути использования TSLab и C#, а вот тут наше мнение расходиться.
2. Я так понимаю и вы и ves2010 утверждаете, что существует лишь один способ создания системы и он упирается в единовременном прописывании всех условий на вход и выход ещё во время проектирования, а следовательно лучше TSLab может быть только WhelthLab. Но! Систему может сделать другая система, и мне кажется это перспективным.
3.Возможность использовать оптимизатор даёт возможность посмотреть рабочий диапазон настроек системы и сделать очень важные выводы. Как можно без этого обходиться, лично мне не понятно, а в визуальных редакторах это невероятная пытка. Как вариант: Все мои роботы работают с тиками, и я стараюсь чтобы количество сделок в бэк тестах было не меньше 200. При таком раскладе вероятность прибыльной сделки в большинстве случаев, без оптимизации и без учёта комисса стремиться к 0.5, а мат ожидание к 0.0. Приходиться попотеть… Однако чем меньше у системы сделок, к примеру 20 шт. тем удивительнее результаты можно получать, может это ваш случай? В таком случае советую пересмотреть своё отношении к тестированию и перечитать Кургузкина.
4. Есть множество хороших способов сделать любую систему стабильнее. Кроме опыта программирования тут никто никому не поможет.
А для этого надо максимально хорошо владеть архитектурой.
Лично я стремлюсь уменьшить количество лишних прослоек типа TsLAB(и упростить по возможности).
По п.3 не согласен с вами.
Этим путём шли многие и результат един: подгонка и переоптимизация.
www.sartregroup.com/
В общем, здесь важен правильный подход. Нахрена мне с++, если свои задачи я могу решать исользуя QPILE? Где то год я баловался с MQL, но сейчас мт4 при системной торговле не очень доверяю :) Поэтому переползаю на фортс. И никакой хайфрикуэнси мне не нужен. Предлагаю термин «алготрейдинг» к этому направлению не использовать. Это обман.
Большой спектр платформ (в том числе и для подбора под алготрейдинг) можно взять здесь: http://getanyplatform.com