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:05
    Больше всего не хватает опционов, фьючей и акций на одной платформе в один счёт в одну копию терминала, а не вот это вот всё как в открывашке.
    Не хватает качественной истории котировок лет за 10-15 с CME, CBOE, CFE, ICE...
    Не хватает брокера, который возьмёт этот терминал как основной для клиентов на америке. Да хоть бы и на фортсе, но лишь бы объединить всё в одно.

    Не хватает мульти-инструментальности в средствах языка MQL5. Вроде можно на индюк накладывать котировки с разных инструментов, но делается это через Ж. Часто вылетают ошибки системы (не подгружены данные с сервера, когда они уже миллион раз подгружены =). Причём, это не косяки кодера, а косяк архитектуры изначальный. Запрос котировок предполагает, что они синхронно есть на все минуты, а совсем не факт, что для всех инструментов это так. Сделать можно, но очень коряво получается!
    Не хватает интеграции с адекватными современными средами разработки.
    С одной стороны хорошо, что всё в одном, а с другой стороны платформа MS для разрабов даёт уже совсем другой уровень комфорта, чем редактор кода MQL, он отстал от жизни лет на 10.
  • bstone
    11 октября 2019, 10:16
    Я прошел очень длинный путь от тестирования в МТ4, к расчетам в Матлабе. На данный момент Матлаб для меня является лучшим тестером. Но при этом работа там уже на другом уровне, грубо говоря — статистическом.

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

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

    Вот как только мы эту случайность обуздали, тогда уже можно прикидывать отклонения в реальной торговле, но опять же статистически, рассчитывая распределение накапливаемой ошибки. Это более надежно.
  • Дмитрий Овчинников
    11 октября 2019, 11:38
    Оперативная связь с разработчиками и адекватное взаимодействие. 
    Вот этот пункт лично у меня вызывает недоумение. 

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

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