fxsaber
fxsaber личный блог
11 октября 2019, 02:47

Крутой исследовательский инструмент будней алготрейдинга

В предыдущих записях было показано (в статье), как использовался MT5-Тестер для нахождения рыночных закономерностей. Но совсем упущено описание исследовательской работы при написании ТС.


Будни алготрейдера

Как правило, пишется несколько экспериментальных ТС, которые сами по себе являются своего рода исследованиями. Они могут отличаться какими-то блоками друг от друга. Чаще всего, это не сами торговые блоки, а алгоритмы формирования торговых сигналов. Т.е. изменения содержатся в небольших, но определяющих частях.

Таких ТС при должном усердии может накопиться приличное количество. И исследование рынка начинает сводиться к анализу того, насколько хорошо готовые алгоритмы могут выжимать прибыль из заданного интервала торговли.

MT5-Тестер многоядерный (и облачный) и обладает хорошей встроенной реализацией генетического алгоритма, позволяющей даже новичку проводить на огромном (могут быть циклопические размеры) пространстве входных параметров эффективные и быстрые вычисления. И когда возникает задача сравнения ТС, то она сводится к сравнению результатов Оптимизации каждой из ТС.

Делать это вручную крайне утомительно даже в столь простом и мощном инструменте, как MT5-Тестер. Особенно тяжко, когда нужно это делать часто. А в алготрейдинге это может требоваться хотя бы раз в неделю или чаще, что зависит только от степени лени автора ТС. Хотя с такой задачей могут столкнуться не только авторы ТС, но и обычные пользователи. Например, при желании сравнить несколько готовых советников из Маркета.

У MT5-Тестера есть встроенные механизмы автоматизации, но они требуют хорошей квалификации. Поэтому на помощь может прийти зарекомендовавшая себя с наилучшей стороны в статье (фактически, главный виновник ее написания) надстройка над MT5-Тестером. Она очень простая и почти не требует изучения. Только указываете советники, которые нужно сравнить, настраиваете диапазоны входных параметров и запускаете. На выходе имеете соответствующие кеши Оптимизации. Результаты из которых и сравниваете. Это колоссально помогает при исследованиях, избавляя от рутины и высвобождая время и силы на другие дела.

 

Почему именно MT5-Тестер?

Что удерживает от переезда на другой Тестер (включая написание своего).

  • Крутой агентный Оптимизатор. На 99% надежный.
  • Отличная генетика.
  • Малое потребление ресурсов.
  • Кеши оптимизатора и одиночных проходов.
  • Точная мультивалютность.
  • Возможность легкой автоматизации (пусть и через WinAPI).
  • Исторический дебагер с визуализацией.
  • Оперативная связь с разработчиками и адекватное взаимодействие. Русский язык для общения.
  • Огромная армия пользователей, которые находят баги. А разработчики их правят.
  • Надежность — не падает, даже когда упираешься в потолок по памяти.
  • Встроенная история.
  • Великолепная портативность и элементарная «установка» с нуля.
  • Дружба со всеми x64 ОС.
  • Шустрый GUI.
  • Возможность воспроизвести действия другого человека.

Заметьте, это не все плюсы, а только те, которые держат.

 

Кеш Тестера


Ну и пример потенциальной возможности только одной из фишек MT5-Тестера — кеш одиночных прогонов ТС.

Можно написать Маркет-комбайн, который показывает все доступные в кеше одиночные проходы.

  • Выбираешь мышкой нужные — он показывает объединенную статистику.
  • Чистит кеш от ненужных проходов.
  • Вычисляет из проходов оптимальный портфель с соответствующими весовыми коэффициентами.
  • Показывает наилучшие интервалы торговли для каждого из проходов.
  • Предлагает свою интерактивную визуализацию статистики, включая фильтры.
  • Вычисляет оптимальный ММ.
  • Для каждой hedge-позиции в истории показывает OrderOpenPriceBest (лучшая цена открытия за время жизни позиции), OrderClosePriceBest (аналогично), OrderOpenPriceLength (сколько времени цена была не хуже OrderOpenPrice за время жизни позиции), OrderClosePriceLength(аналогично), OrderProfitBest(наибольший возможный профит аналогичной позиции на интервале жизни позиции-оригинала).
  • Показывает КПД каждой hedge-позиции.
  • Вычисляет результат при включении latency.
  • Вычисляет результат при разных настройках исполнения ордеров (скользят ли и т.д.) и комиссии.
  • Показывает результат ТС на другой тиковой истории.
  • ...

Для реализации каждого пункта не нужно запускать Тестер повторно. Все это делается почти мгновенно.

Столь глубокие исследования ТС можно проводить бесплатно даже для платных роботов из Маркета. Исходники не требуются.

Альтернатива


Было бы замечательно, если бы читатели поделились замечаниями в адрес других Тестеров. Не обязательно публичных или бесплатных. Можно раскрыть некоторые фишки своих самописных исследовательских инструментариев. Сделать краткий сравнительный анализ. Рассказать, чего не хватает.

52 Комментария
  • Антон Денисков (Fry)
    11 октября 2019, 02:55
    Когда нельзя было подгружать свою историю инструментов — шлак. Ибо для биржевика все эти форексовые пары нафиг не сдались. Нужны адекватные котировки со склеек фьючей. Нужны акции. Нужны арбитражные возможности.
    Сейчас хоть и через жопу что-то уже можно делать. Но всё ещё через такую жопу, что даже лень глубоко заморачиваться.
    Удивляет упёртость разрабов по вопросу: нет! котировки будут только с сервера! Свои инструменты в тестер добавлять низя! И эта хрень продолжалась 10 лет! =)
      • Антон Денисков (Fry)
        11 октября 2019, 03:09
        fxsaber, какая разница??? =) Это шпилька разрабам, а то по вашему тексту судя они прям такие пушистые и сразу реагируют на запросы.
        Знаете, я оформил баг-запрос на форуме и ДВА ГОДА ЖДАЛ! ДВА ГОДА, КАРЛ!
        А баг был фатальный! Нервы сдали и я плюнул. А потом они пришли на смартлаб и стоила мне тут написать один комент — тут же исправили этот супер-баг. Но я-то уже задолбался! Я и на форум исал несколько тем и в личку стучал и запрос оформил по всем правилам — ноль внимания!
        Здесь в архивах есть подтверждение этой ситуации.
        Так что знаете… Разница есть!
          • Антон Денисков (Fry)
            11 октября 2019, 03:28
            fxsaber, да, по форексу они быстро баги фиксят. Мой баг был чисто по биржевому исполнению. Тут они считают, что это второстепенное направление (так было).
              • Антон Денисков (Fry)
                11 октября 2019, 03:36
                fxsaber, можете удалить все мои каменты если они не несут ценности и засоряют ветку. Я не обижусь. Почитаю с радостью далее «качественные ответы» =)

                  • Антон Денисков (Fry)
                    11 октября 2019, 03:42
                    fxsaber, а потому что всё очень заманчиво выглядит пока не начинаешь кодить что-то серьёзное для биржи. Вот тут и появляется негатив, то чувство когда тебя обманули. Ты вложился в изучение, потратил силы, время, ресурсы, а система оказалась непригодной на годы. Ждите развития...
                    Ждали и плюнули! Так понятно?
                      • Антон Денисков (Fry)
                        11 октября 2019, 04:00
                        fxsaber, вся прелесть MT5 в том, что в ней не просто исследование проводится в тестере, а достигнута полная интеграция бот-платформа-исследование!
                        Это же такая шикарная идея! Мы можем написать код тестового бота, затем логику из него перенести в боевого бота с обвязкой всяких защит от внештатных ситуаций, затем ещё раз всё это протестить, запустить на демке, запустить на реале и всё в одном месте на одном языке без всяких коннекторов и гемора. Гениально!
                        Выделять отдельно тестер, а потом переносить логику бота на другую API — вот это дурдом, но так часто бывает. Но это очень плохо.

                        В чём практическая ценность исследовательских возможностей тестера, если бот для него написанный с огромной вероятностью будет косячить в боевых условиях? Качественно и быстро выполнять подгонку на истории, чтобы втюхивать чудо-грааль за бабки через магазин приложений? Ну да, это крутая тема для разработчиков. Только ведь дело-то это гнилое =).
                          • Антон Денисков (Fry)
                            11 октября 2019, 04:13
                            fxsaber, ничего не имею против R и Python. Кванты говорят, что очень быстро решаются задачи обработки биг-дата и поиск всего на свете. Круто! Появилась идея — быстро проверил.
                            Здесь, извините, другая ситуация.
                            Быстро проверять тут уже неудобно. Дэшбордов больно мала для анализа (визуализация так себе). Сама система кодирования настроена на другое. На интеграцию всего в одном месте!

                            ЗЫ Если нет аналогов, что мы тогда обсуждаем? =)
  • Антон Денисков (Fry)
    11 октября 2019, 03:05
    Больше всего не хватает опционов, фьючей и акций на одной платформе в один счёт в одну копию терминала, а не вот это вот всё как в открывашке.
    Не хватает качественной истории котировок лет за 10-15 с CME, CBOE, CFE, ICE...
    Не хватает брокера, который возьмёт этот терминал как основной для клиентов на америке. Да хоть бы и на фортсе, но лишь бы объединить всё в одно.

    Не хватает мульти-инструментальности в средствах языка MQL5. Вроде можно на индюк накладывать котировки с разных инструментов, но делается это через Ж. Часто вылетают ошибки системы (не подгружены данные с сервера, когда они уже миллион раз подгружены =). Причём, это не косяки кодера, а косяк архитектуры изначальный. Запрос котировок предполагает, что они синхронно есть на все минуты, а совсем не факт, что для всех инструментов это так. Сделать можно, но очень коряво получается!
    Не хватает интеграции с адекватными современными средами разработки.
    С одной стороны хорошо, что всё в одном, а с другой стороны платформа MS для разрабов даёт уже совсем другой уровень комфорта, чем редактор кода MQL, он отстал от жизни лет на 10.
      • Антон Денисков (Fry)
        11 октября 2019, 03:24
        fxsaber, вообще-то я очень узко сократил круг обсуждения. Я ничего не говорю о торговой платформе в целом (дебильную мультимониторность, которая только появилась, уродский стакан цен, адские цветовые решения по умолчанию и т.п. — всё это мы не обсуждаем!).
        То что я написал напрямую касается исследований и тестера.
        Ещё раз: как подгружать свою историю? Как готовить её для загрузки? Это появилось только что и всё очень топорно.

        Про моё отношение к MT5 — это отдельная тема. Я не хейтер MT5, я хейтер долбаного квика! Всегда говорил, что в один прекрасный день квик умрёт и поглотит его именно MT5 (может быть уже MT6). Но вот квик точно маст дай! =)
        Интеграции с C# нет. Это всё костыли странные. Сравните с каким-нибудь нинзя-трейдер — вот там интеграция с шарпом, это да.

        Безусловно всё можно выкручивать самому как-нибудь через одно место, но если уж платформа претендует завоёвывать рынок и расширяться — пусть будет сделано так же качественно, как и её сильные стороны (оптимизация, скорость и всё что отмечено в тексте топика).
  • bstone
    11 октября 2019, 10:16
    Я прошел очень длинный путь от тестирования в МТ4, к расчетам в Матлабе. На данный момент Матлаб для меня является лучшим тестером. Но при этом работа там уже на другом уровне, грубо говоря — статистическом.

    Речи о 100% соответствии между тестами и реальной торговлей как таковой уже не идет. Дело в том, что случайность результата первична и борьба у меня идет именно за контроль этой случайности, чего можно добиться, торгуя опционы.

    Как вы уже заметили в своей статье, ТС, которые оптимизируются в МТ5-тестере, рано или поздно начинают сливать. И чаще они начинают сливать довольно быстро, если не практически сразу. Поэтому я не вижу смысла биться за соответствие результатов в тестере реальным, если они изначально настолько случайные.

    Вот как только мы эту случайность обуздали, тогда уже можно прикидывать отклонения в реальной торговле, но опять же статистически, рассчитывая распределение накапливаемой ошибки. Это более надежно.
      • bstone
        11 октября 2019, 12:23
        fxsaber, либо я не точно высказался, либо вы меня не поняли. Я не говорю, что добиться довольно точного соответствия между результатами тестера и реальной торговлей не возможно. Я делал это еще в эпоху МТ4 и, кстати, без виртуализации торговли. Проблема этого подхода в том, что прогоните вы хоть десять триллионов тиков, вы так и не сможете ответить на единственный простой вопрос: «Сколько дней ТС, показывающая в тестере хороший результат, будет показывать его на реальном счете?» Это может быть месяц, а может быть и пол дня. Достоверные проскальзывания в тестере этого никак не изменят.
          • bstone
            11 октября 2019, 12:49
            fxsaber, т.е. вы не согласны с моим утверждением и с легкостью можете сказать, сколько дней реальная торговля будет иметь такую же доходность как и в тестере до ввода в эксплуатацию? Вряд ли. Тут похоже, что вы не внимательно читали мои комментарии :)
              • bstone
                11 октября 2019, 13:00
                fxsaber, да все нормально с эксплуатацией. Просто вы воспринимаете мои комментарии как упреки или нападки. Я не понял почему, но не суть. Вы сами спросили про альтернативы и я написал, что когда и если вы перейдете на другой уровень и ответите на вопрос, на который не ответит ни один мат. пакет, то вам уже не нужна будет такая точность тестера и анализ триллионов тиков. Может вы к тому времени найдете еще какую-то вундервафлю, а моя альтернатива сейчас — Матлаб. Вот и все.
              • bstone
                11 октября 2019, 13:07
                fxsaber, P.S. Я вообще-то ответил вам изначально из-за того, что мог по достоинству оценить объем проделанной вами работы, т.к. сам носил эту шкуру. Я почитал пару последних статей — они очень толковые, многие могли бы почерпнуть там немало ценнейшей информации, если бы захотели. Так что не думайте, что все здесь сидят с окровавленными ножами и ждут момента, чтобы всадить их вам в спину, пока вы делитесь тут своим опытом. Расслабьтесь и получайте удовольствие от общения с людьми, которые понимают, о чем вы пишите. Вы найдете их даже среди ненавистников поддержки МTQ :)
  • Дмитрий Овчинников
    11 октября 2019, 11:38
    Оперативная связь с разработчиками и адекватное взаимодействие. 
    Вот этот пункт лично у меня вызывает недоумение. 
      • Дмитрий Овчинников
        11 октября 2019, 11:52
        fxsaber, 
        если MetaQuotes Software удаляет любые неудобные вопросы к своим постам здесь, на СмартЛабе, а на своем форуме просто тупо банит тех, кто задает такие вопросы, тогда да, остается «оперативно и адекватно взаимодействовать» с теми, кто таких вопросов не задает.
        Доказывать вам или кому-либо еще, что Земля круглая, я не собираюсь, дискуссия на эту тему мне не интересна, извините.

          • Дмитрий Овчинников
            11 октября 2019, 12:07
            fxsaber, 
            выдыхайте!
            Я ничего плохого (или хорошего) про MT5 не говорил. Перечитайте мое исходное сообщение.

            Я говорю о том, что поддержка в MetaQuotes Software редкостные засранцы и удивляюсь тому, что вы характеризуете их иначе.
            Теперь же вы пишете:
            Меня многократно банили MQ. 
            Каким образом тогда получается?
            Оперативная связь с разработчиками и адекватное взаимодействие. 

            Т.е., если вы недоговариваете в этом пункте, то как вам доверять в остальных?

            P.S.
            Сам тестирую и торгую на FORTS через MT5, так что «устриц ел».
              • Антон Денисков (Fry)
                11 октября 2019, 12:29
                fxsaber, сколько лет ушло на этот «итог»? Когда ты два года ждёшь исправление одного бага из-за которого вообще биржевое исполнение с синхронными функциями не пригодно (работает через раз). То есть фактически весь терминал для тебя всё это время бесполезен. И вот ждёшь-ждёшь и думаешь. ОК, этот баг они исправили через два года. А теперь представим ситуацию: ты уже на них положился. Всё подстроил, но вдруг появился новый баг и снова на два года. Нормально? Можно в такой среде существовать эффективно??? =)
                Не надо врать про то, что у них нет багов! Каждая обнова «радовала» меня когда я этой фигнёй страдал (3 года назад). Сомневаюсь, что сейчас стало вдруг совсем не так.
                  • Антон Денисков (Fry)
                    11 октября 2019, 12:53
                    fxsaber, давайте попробую ещё раз сформулировать суть проблемы.
                    Если сказать коротко — разработчик не вызывает доверие.
                    А если развёрнуто: тестер работает сегодня, но не работал вчера. И со следующим обновлением может быть закрыто что-то ключевое и все пользователи будут благополучно посланы нафиг. А старую версию тестера будет запустить невозможно.
                    Вот примерно такие ощущения от этого продукта у меня.
                    Фотошоп можно купить и юзать хоть в полной изоляции от всего. У меня в издательстве на третьем фотошопе 15 лет бизнес был построен и всё работало ожидаемо понятно! Все реакции программы были предсказуемы годами! А тут болото обещаний, ожиданий и по факту работает всё через жопу.
                    Это притензия к тестеру. Не к фирме, не к терминалу. А к тому, что продукт вечно сырой! Вы же тестируете стратегию в прошлом? Докажите мне обратное на «бэктесте» 5 лет для этого продукта (тестера) и я скажу — да, он хорош. Но отматывая его историю я понимаю, что впереди только грабли!
                      • Антон Денисков (Fry)
                        11 октября 2019, 13:04
                        fxsaber, увидимся через 2 года… Хотя не думаю.
                        Всегда удивляют люди, которые не очень вдумываются в суть проблемы, но вместо того чтобы разобраться переходят на личности. Типа:
                        — нет доверия продукту, плохая поддержка, плохая история развития.
                        — а у тебя ноги кривые! Это всё твои фобии, иди лечись!
                        =)
                      • Антон Денисков (Fry)
                        11 октября 2019, 13:15
                        fxsaber, MT5-тестер не самостоятельный продукт. Он интегрирован в терминал. Обновится терминал и всё пойдёт лесом. 3 exe-файла не помогут.
                          • Антон Денисков (Fry)
                            11 октября 2019, 13:36
                            fxsaber, для дела по сути никаким сегодня. Разочаровался в MT5. ТС-лаб с января-февраля буду юзать на опционах. Я бы с радостью ещё раз попробовал MT5 для этого. Но ведь нет. Опционы — ждите...
                            МТ5 использую по накатаной. Какие-то мелкие идейки там оттестить. Ничего такого типа тиковой истории. Всё банально. Сезонность, корреляции на днёвках и т.п. Но «бизнес» на этом строить не рискну.

                            То что я торгую сейчас автоматизировать страшно! У меня на глазах столько косяков с внешними данными проходит, что просто представить не могу такого бота, который бы разобрался где правда, а где лажа идёт от биржи-брокера-клиринга и т.п. Делать на своей стороне собственный клиринг, собственный учёт позиций, всю бухгалтерию меня как-то ломает, а без этого ничего работать не будет (на моих биржах). Слишком много ошибок в отчётах по клирингам как минимум.
                  • Дмитрий Овчинников
                    11 октября 2019, 22:22
                    fxsaber, 
                    Fry (Антон), вы дурачек?
                    Судя по стилю общения, вы напрямую аффилированы с  MetaQuotes Software.
            • Антон Денисков (Fry)
              11 октября 2019, 12:24
              Дмитрий Овчинников, полностью подтверждаю! Техподдержка MQ мерзопакостная! Так же как и у квика.
              А причина проста: модель распространения продукта не зависит от конечных пользователей клиентской части терминала. Мы — пользователи не покупаем продукт на прямую. Продукт оплачивает брокер, он и музыку заказывает. Ему (брокеру) на нас в общем-то наплевать! Брокеру важно самому денег не спустить, вот на что заточена вся техподдержка и работа таких систем типа квик или MT5.
              Другое дело когда терминал платный для клиента. Там и подход совсем другой!
  • Kapeks
    11 октября 2019, 12:06
    Лям баксов хотя бы сделал на маркете этими генетическими алгоритмами с облаками?
  • robomakerr
    11 октября 2019, 14:09
    Открыл тестер МТ5, а он за сегодняшние сутки не тестирует. Закрыл, и больше нет желания им пользоваться. Причем это не баг, это фича.

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

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