Алексей Ван <o-s-a.net>
Алексей Ван <o-s-a.net> личный блог
15 декабря 2013, 15:32

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

 
За последние годы, из-за появления множества специализированных под автоматический трейдинг платформ и библиотек понятие «алготрейдер» растянулось на несколько разных областей знаний. Сегодня алготрейдер это и хардкор программист С++ и 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# то переучиться не получиться, это как наркотик...».
 
                                                                                            Зимаев И.   
                         
    О чем это он там намекает: Чем проще даётся создание законченной программы, тем сложнее морально потом переходить к каким-то  более сложным способам создания того же самого, пусть даже это будет перспективнее и технологичнее. Поэтому надо сразу выбирать технологичный и сложный путь, ориентируясь на лучших в своём деле. Тогда всё обязательно получиться!
 
39 Комментариев
  • Андрей Коган
    15 декабря 2013, 15:55
    «Высшая форма развития робота — полуавтоматический HFT. Т.е. платформа, в которую жестко забивается точка входа, точка выхода, и изредка переоптимизируясь всё это работает под чутким присмотром алготрейдера.»

    полуавтоматический HFT? как-то странно это
      • Андрей Коган
        15 декабря 2013, 16:06
        Tyam, но ведь HFT — high frequency.
        Нет связи между high frequency и какими-либо точками входа и выхода.
          • Андрей Коган
            15 декабря 2013, 16:18
            Tyam, насколько мне известно, нет
              • Андрей Коган
                15 декабря 2013, 17:03
                Tyam,
                Совершенно верно.

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

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

    А по поводу того, что олд скул никто не пиарит, это вопрос времени. Начнут. Сейчас уже все подряд пиарят. Дошло до того, что маркетмейкерские страты в массы толкают. Это вообще не нормально.
  • svanchik
    15 декабря 2013, 16:31
    а что тогда с лагами робота?.. как пример)) мне почти 1300 рублей обходится лаг квикордерса))хотя это не бот… и бывает не часто
  • xp-trade
    15 декабря 2013, 16:36
    Old school — это когда чистый Си :)
  • Prosto_tak
    15 декабря 2013, 16:38
    ИИ HFT — мой путь.
  • SECRET
    15 декабря 2013, 16:51
    Видимо по данной классификации я из old school algo :)
    • Lafert
      15 декабря 2013, 17:19
      SECRET, а ты уже С++ перешел? Если нет, то по этой классификации те, кто на делфи пишут, вообще не алготрейдеры)
  • ves2010
    15 декабря 2013, 17:38
    честно говоря поржал…
    1 самое главное не си, не с++, не с#, не индикаторы, не 1000 часов программирования, а идея и концепция бота, т.е. грааль… если она есть, то можно писать хоть на чем…
    2 скорость исполнения бота в тормознутом визуальном редакторе тслаба 2мсек легко… что в 100раз меньше скорости выставления заяв в 200мсек, а есть еще и задержка данных от биржи… т.е. повышать скорость бота смысла нет, все равно затык в скорости выставления заяв и лаге получения данных…
    3 у многих начинающих алготрейдеров неверный подход… типа выучу си и буду ботов клепать… однако знание си и умение программировать никак не связано со способностью торговать в профит
    4 чтоб написать действительно хорошего бота мне потребовалось 7 лет (и это имея большой опыт программирования мозгов для всяких приборов)… имхо проще руками научиться торговать… алготрейдинг писец какая непростая тема… только новичку кажется что все дело в умении программировать и в выборе платформы
      • ves2010
        15 декабря 2013, 18:56
        Tyam, вот тут ты попался ))) имхо хороший бот в оптимизации не нуждается… т.е не содержит параметров оптимизации… ну максимум 1 параметр, хотя по факту выходит 2 (период оптимизации это еще один параметр)… поэтому говорить про скорости оптимизации не имеет вообще смысла
          • Дмитрий Столетов
            15 декабря 2013, 23:05
            Tyam, вы сильно усложняете и отклоняетесь от главного — идеи робота.
            Чем больше элементов и параметров у системы тем она гибче, но при этом сложнее в управлении и слабее по стабильности(т.е. вероятность полного отказа или частичной поломки значительно возрастает).
            В плане оптимизации и настроек всё примерно так, как говорит ves2010.
              • Дмитрий Столетов
                16 декабря 2013, 05:06
                Tyam, по п.2 я совершенно не согласен с ves2010, потому как в управлении деньгами важнее всего стабильность и контроль процесса торговли.
                А для этого надо максимально хорошо владеть архитектурой.
                Лично я стремлюсь уменьшить количество лишних прослоек типа TsLAB(и упростить по возможности).
                По п.3 не согласен с вами.
                Этим путём шли многие и результат един: подгонка и переоптимизация.
  • Prosto_tak
    15 декабря 2013, 18:15
    Советую посмотреть вакансии у этой компании, там описано КТО ВОСТРЕБОВАН и с КАКИМИ знаниями
    www.sartregroup.com/
  • Savage
    15 декабря 2013, 21:55
    Отличная тема. Как раз работаю над HFT. Все эти новомодные средства разработки МТС типа TSLab — это для детей. Если всё-таки делать HFT по-взрослому, я бы посоветовал C++ или чистый C. Да, уйдет много времени, но это всё окупится. Вдобавок можно попытаться прикрутить OpenCL. Ну, и чтобы это всё работало на отказоустойчивом кластере.
  • Nemo_2000
    16 декабря 2013, 07:21
    Я не крутой гуру и не очень понимаю, зачем для програмирования нужно знать больше чем несколько условных операторов, цыкла, присваивания и функций…
    В общем, здесь важен правильный подход. Нахрена мне с++, если свои задачи я могу решать исользуя QPILE? Где то год я баловался с MQL, но сейчас мт4 при системной торговле не очень доверяю :) Поэтому переползаю на фортс. И никакой хайфрикуэнси мне не нужен. Предлагаю термин «алготрейдинг» к этому направлению не использовать. Это обман.
  • Ника Ника
    20 декабря 2013, 02:08
    :)
  • Алекс Майер
    19 сентября 2016, 20:20
    «а последние годы, из-за появления множества специализированных под автоматический трейдинг платформ и библиотек»

    Большой спектр платформ (в том числе и для подбора под алготрейдинг) можно взять здесь: http://getanyplatform.com
  • Replikant_mih
    16 февраля 2017, 21:07
    Алексей, статья старенькая. Что-то поменялось во взгляде на эту тему за это время?

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн