<HELP> for explanation

Блог им. Tyam

ПРАВИЛЬНО выбираем школу алготрейдинга

 
За последние годы, из-за появления множества специализированных под автоматический трейдинг платформ и библиотек понятие «алготрейдер» растянулось на несколько разных областей знаний. Сегодня алготрейдер это и хардкор программист С++ и TSLab редактор и S# кодер.
 
    Так все-таки, какие существуют способы создания торговых роботов? В чём профит и проблемы того или иного подхода.
 
   Holy war inside...

OLD SCHOOL ALGO
С++ или C# + 10000 часов = злой HFT.
 
NEW SCHOOL ALGO 

S#.API + 1000 часов = милый HFT или злой скальпер.

VISUAL SCHOOL ALGO
TSLab+ 50 часов = милый скальпер.
 
    На сегодня популярны несколько способов создания торговых роботов. К сожалению, они не классифицированы и боясь, наткнутся на обвинения в том, что я science freak, всё же попробую разбить их на категории:
 
SortAlgoTrader
Категории алготрейдеров по способу создания МТС и краткий перечень их плюсов и минусов. Чем левее блок, тем более сложные алгоритмы можно создавать.
 
        
 
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.
      Данный способ создания МТС, несмотря на свою популярность, кажется лично мне попыткой прикрутить к трактору самолёт.
 
     Как этим заболеть:
  1.    Тратим 100 часов на визуальный редактор любой из платформ представленных выше.
  2.    Понимаем, что это всё херня, что надо писать свои индикаторы и использовать нечто оригинальное.
  3.    Учим один из встроенных языков (+ 200 — 500 часов).
  4.    ...
  5.     Профит.
 
   Понимаю, что это вызовет срач однако высокую скорость исполнения  ни одной из перечисленных платформ не поставлю, хоть и большинство из них сам не юзал. А всё потому что все мои эксперименты с событийными и 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. Т.е. платформа, в которую жестко забивается точка входа, точка выхода, и изредка переоптимизируясь всё это работает под чутким присмотром алготрейдера.»

полуавтоматический HFT? как-то странно это
Андрей Коган, имеется ввиду сам момент поиска и оптимизации стратегии. Естественно в процессе торговли, руками никто в терминал не лезит.
Tyam, но ведь HFT — high frequency.
Нет связи между high frequency и какими-либо точками входа и выхода.
Андрей Коган, )) То есть за счёт своей скорости у HFT робота по-вашему вообще не должно быть стратегии))
Tyam, насколько мне известно, нет
Андрей Коган, а по какому признаку он входит в позицию и выходит из неё в таком случае?)
Андрей Коган, мне весело конечно, но пока это не зашло слишком далеко, вот:
smart-lab.ru/finansoviy-slovar/HFT
а лучше вот здесь:
habrahabr.ru/post/163371/ — третий абзац
Tyam,
Совершенно верно.

Под термином HFT понимается набор техник при торговле акциями и деривативами, когда большой поток заявок отправляется на рынок с раунд-трипом меньше миллисекунды[1].

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

А по поводу того, что олд скул никто не пиарит, это вопрос времени. Начнут. Сейчас уже все подряд пиарят. Дошло до того, что маркетмейкерские страты в массы толкают. Это вообще не нормально.
avatar

Lafert

Stas Ivanov, да я и сам собственно на C# роботов пишу. И считаю, что в данный момент этот язык более перспективный чем С++. Однако весь банковский и брокерский сектор считает иначе.)) А цитата здесь не столько для рекламы С++, сколько для мотивации людей к более обдуманному подходу при выборе пути в алготрейдинге. Надо ж понимать что простые вещи несут в себе опасность топтания на месте. И чтобы чего-то добиться, надо сначала потрудиться.
Tyam, банк сектор давно уже формочки на C# делает. А расчет на ява и экселе. Где вы банк нашли с С++. Даже интересно стало, где такие еще остались.
Евгений, всё возможно, но мне кажется всё не так плохо как вы думаете, и банки могут себе позволить делать торговых роботов не в EXCEL.
Stas Ivanov, не думаю, что дойче-основной враг. Даже если они поставят самого быстрого бота на фортс, не окупят проект. Есть команды по 10-25 человек, которые очень скорость любят. Их надо бояться.
а что тогда с лагами робота?.. как пример)) мне почти 1300 рублей обходится лаг квикордерса))хотя это не бот… и бывает не часто
avatar

svanchik

Old school — это когда чистый Си :)
avatar

xp-trade

ИИ HFT — мой путь.
avatar

BuldozerM

Видимо по данной классификации я из old school algo :)
avatar

SECRET

SECRET, а ты уже С++ перешел? Если нет, то по этой классификации те, кто на делфи пишут, вообще не алготрейдеры)
честно говоря поржал…
1 самое главное не си, не с++, не с#, не индикаторы, не 1000 часов программирования, а идея и концепция бота, т.е. грааль… если она есть, то можно писать хоть на чем…
2 скорость исполнения бота в тормознутом визуальном редакторе тслаба 2мсек легко… что в 100раз меньше скорости выставления заяв в 200мсек, а есть еще и задержка данных от биржи… т.е. повышать скорость бота смысла нет, все равно затык в скорости выставления заяв и лаге получения данных…
3 у многих начинающих алготрейдеров неверный подход… типа выучу си и буду ботов клепать… однако знание си и умение программировать никак не связано со способностью торговать в профит
4 чтоб написать действительно хорошего бота мне потребовалось 7 лет (и это имея большой опыт программирования мозгов для всяких приборов)… имхо проще руками научиться торговать… алготрейдинг писец какая непростая тема… только новичку кажется что все дело в умении программировать и в выборе платформы
avatar

ves2010

ves2010, началось))
ves2010,
1. Да. Концепции прибыльной торговли известны, как для TSLab так и для HFT. Пишите пробой канала из 18 условий и 44 кубиков, я не мешаю. Только у меня немного другая цель и я её себе ой как хорошо представляю.
2. Да. На конечную скорость доступа к бирже сложно повлиять программно. Вот только процесс оптимизации и тестирования визуальный редактор замедлит в сотни, а в некоторых случаях в тысячи раз. Что с этим делать? А я скажу — забыть про ИИ.
3. Знание Си и программирования повышает IQ и на прямую сказывается на результатах торговли, а вот приносит ли такой же профит изучение кубиков визуального редактора?
Tyam, вот тут ты попался ))) имхо хороший бот в оптимизации не нуждается… т.е не содержит параметров оптимизации… ну максимум 1 параметр, хотя по факту выходит 2 (период оптимизации это еще один параметр)… поэтому говорить про скорости оптимизации не имеет вообще смысла
ves2010, это ваше мнение, имеете право.
ves2010, А вот моё имхо. «Хороший бот» может вовсе не нуждаться в наличии жестко прописанных точек входа и выхода, Т.е. тех самых кубиков Visual School Algo. Все это он сам должен найти, «оптимизировать» ВООБЩЕ ВСЁ и моя задача как программиста научить его как можно объективнее видеть часть рынка (в моём случае тики) неким универсальным способом, шаблонами, узнаваемыми, масштабируемыми и применимыми в качестве точек входа и выхода, на основе и после процесса «обучения». Хотя допускаю что в полной мере такой красоты не получиться. Тем не менее, говорить про скорость оптимизации в моём случае это очень и очень важно.
Вероятно всё это выглядит как ересь с точки зрения TSLab алготрейдера, но это так…
Tyam, вы сильно усложняете и отклоняетесь от главного — идеи робота.
Чем больше элементов и параметров у системы тем она гибче, но при этом сложнее в управлении и слабее по стабильности(т.е. вероятность полного отказа или частичной поломки значительно возрастает).
В плане оптимизации и настроек всё примерно так, как говорит ves2010.
Иван Правдин,
1. Прекрасно понимаю как составляется алгоритм торгового робота) и не против того что «идея робота» самое главное. На этом можно заработать. Речь ведь о том куда можно прийти отправившись по пути использования TSLab и C#, а вот тут наше мнение расходиться.
2. Я так понимаю и вы и ves2010 утверждаете, что существует лишь один способ создания системы и он упирается в единовременном прописывании всех условий на вход и выход ещё во время проектирования, а следовательно лучше TSLab может быть только WhelthLab. Но! Систему может сделать другая система, и мне кажется это перспективным.
3.Возможность использовать оптимизатор даёт возможность посмотреть рабочий диапазон настроек системы и сделать очень важные выводы. Как можно без этого обходиться, лично мне не понятно, а в визуальных редакторах это невероятная пытка. Как вариант: Все мои роботы работают с тиками, и я стараюсь чтобы количество сделок в бэк тестах было не меньше 200. При таком раскладе вероятность прибыльной сделки в большинстве случаев, без оптимизации и без учёта комисса стремиться к 0.5, а мат ожидание к 0.0. Приходиться попотеть… Однако чем меньше у системы сделок, к примеру 20 шт. тем удивительнее результаты можно получать, может это ваш случай? В таком случае советую пересмотреть своё отношении к тестированию и перечитать Кургузкина.
4. Есть множество хороших способов сделать любую систему стабильнее. Кроме опыта программирования тут никто никому не поможет.
Tyam, по п.2 я совершенно не согласен с ves2010, потому как в управлении деньгами важнее всего стабильность и контроль процесса торговли.
А для этого надо максимально хорошо владеть архитектурой.
Лично я стремлюсь уменьшить количество лишних прослоек типа TsLAB(и упростить по возможности).
По п.3 не согласен с вами.
Этим путём шли многие и результат един: подгонка и переоптимизация.
Советую посмотреть вакансии у этой компании, там описано КТО ВОСТРЕБОВАН и с КАКИМИ знаниями
www.sartregroup.com/
avatar

BuldozerM

Northid, не плохо.
Отличная тема. Как раз работаю над HFT. Все эти новомодные средства разработки МТС типа TSLab — это для детей. Если всё-таки делать HFT по-взрослому, я бы посоветовал C++ или чистый C. Да, уйдет много времени, но это всё окупится. Вдобавок можно попытаться прикрутить OpenCL. Ну, и чтобы это всё работало на отказоустойчивом кластере.
avatar

Savage

Я не крутой гуру и не очень понимаю, зачем для програмирования нужно знать больше чем несколько условных операторов, цыкла, присваивания и функций…
В общем, здесь важен правильный подход. Нахрена мне с++, если свои задачи я могу решать исользуя QPILE? Где то год я баловался с MQL, но сейчас мт4 при системной торговле не очень доверяю :) Поэтому переползаю на фортс. И никакой хайфрикуэнси мне не нужен. Предлагаю термин «алготрейдинг» к этому направлению не использовать. Это обман.
avatar

Nemo_2000

«а последние годы, из-за появления множества специализированных под автоматический трейдинг платформ и библиотек»

Большой спектр платформ (в том числе и для подбора под алготрейдинг) можно взять здесь: http://getanyplatform.com

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.

Залогиниться

Зарегистрироваться
....все тэги
Регистрация
UP