ПРО-версия тестера с учетом особенностей биржевого рынка

 

Тема является продолжением темы "Нужна ли версия "PRO" тестера стратегий?", с акцентом на особенностях биржевого рынка.

Итак ниже основной список недостатков текущего тестера МТ5, который сформирован мной на основе 3х лет разработки роботов на МТ5 и платформах S#, TradeMatic, опыта как позитивного так и во многом негативного.

 

КРИТИЧЕСКИ НЕДОСТАКИ, которые должны быть устранены в ПРО-версии

1. "Граальность" генерации тиков / Отсутствие стаканогеренации

Суть недостатка в текущей версии: Генерация стаканов как таковая отсутствует, используется генерация тиков, по которым можно открыть позиций без ограничения учета ликвидности рынка. Т.е. тестер допускает полный набор позиции для любого экстремума цены, и т.о. советник набирает позиции, которые в реальной торговле не открылись вообще либо открылись бы по приведенной в отчете цене с гораздо меньшим объемом.

Последствия данного недостатка: полная непригодность тестера для HFT-роботов, и весьма ограниченная пригодность для всех торговых систем, работающих на ТФ ниже Н1. Форум полон воплей пользователей, которые посоздавали "граалей" и затем слили свои деньги.

Тут я не рассматривают вопрос тестирования на барах открытия – для HFT это вообще чушь, но и для свечных систем ограниченно пригодно, т.к. биржевой рынок в любом случае имеет ограничение на ликвидность  + в марабозах мы встречает тот же экстремум на открытиях, только несколько реже.

Что требуется в ПРО-версии тестера:

- хранение ордер-логов ключевых биржевых инструментов на сервере брокера,

- на каждом тике генерация стаканов 5х5 в обе стороны с заполнением согласно ОЛ,

- тестирование в режиме тайм-фрейм С1 (одна секудна).

Конкурентное преимущество для МТ5: высокое.  Обработка ордер-лога и стаканогенерация по ОЛ есть только у S#, однако там подразумевается что пользователь сам купил ОЛ, что весьма накладно с учетом стоимости как данных, как и их хранения. Поэтому ПРО-тетстер с оплатой за ордер-лог данные через брокера будет обладать недостижимым для иных систем преимуществом

Данная фича подразумевает, что оплата ПРО-версии должна быть в виде "подписки" на услугу у брокера, и MQ  будет получать свою часть прибыли от брокера.

2. Отсутствие функций запуска и управления тестированием из кода советника

Суть недостатка в текущей версии: тестирование запускается только через ручной запуск, либо через подкладку ини-файла в отдельную версию терминала; отсутствуют функции МКЛ5, позволяющие автоматизировать запуск тестирования/оптимизации на заданных из кода параметрах.

Последствия данного недостатка: алготрейдерам приходится  записывать промежуточные итоги в Excel, программировать на WinAPI для управления вторым терминалом, в общем страдать и изгаляться по-черному.

Что требуется в ПРО-версии тестера:

- специальные функции МКЛ5 для управления параметрами запуска тестирования и оптимизации советника из кода самого советника,

- простое программное сохранение набора лучших параметров в xml-файл и их загрузка для следующего этапа тестирования.

Конкурентное преимущество для МТ5:  по данному показателю МТ5 отстает от других платформ, так что это всего лишь устранение отставания от рынка.

 

СЕРЬЕЗНЫЕ НЕДОСТАКИ, которые должны быть устранены в ПРО-версии

3. Отсутствие Walk forward тестирования

Суть недостатка в текущей версии: реализовано простое forward тестирование, без возможности задания ролловера по периодам.

Последствия данного недостатка:  необходимость вручную прогонять множество forward тестов, сохраняя результаты в Excel.

Что требуется в ПРО-версии тестера:

-          полнофункциональное walk forward тестирование, с отбором наиболее устойчивых во времени наборов параметров,

-          задание длины базового периода, задание длины смещения от одного прогона к другому,

В целом тема достаточно много обсуждалась на форуме, так что можно не комментировать.

Конкурентное преимущество для МТ5:  высокое, в основном данный алгоритм многие программируют сами в иных платформах, и поэтому встроенный Walk forward будет существенным преимуществом на рынке.

4. Ограниченность истории для тестирования на М1

Суть недостатка в текущей версии: собственно наличие истории на сервере у брокера и простота ее закачки, является сейчас существенным технологическим преимуществом МТ5 перед многими платформами, где алготрейдеру еще нужно возиться с закачкой и обработкой сырых данных. Однако многие брокеры, в частности Открытие/БКС хранят историю по М1 только за последние два года, чем подрывают данное конкурентное преимущество МТ5.

Последствия данного недостатка:  недостаточная верификация устойчивости советникам к разным фазам рынка и экономическим ситуациям.

Что требуется в ПРО-версии тестера:

- обеспечить на стороне брокера наличие данных по М1 за последние 10 лет по наиболее ликвидным и торгуемым биржевым инструментам,

Конкурентное преимущество для МТ5: повышение реального удобства, приведение действительности к обещаниям рекламных слоганов.

5. Недостаточность итоговых параметров для мониторинга работы на реальном счете

Суть недостатка в текущей версии: нет автоматического расчета и вывода пользователю показателей, важных для последующего мониторинга работы советника на реальном счете, в частности:

- сопоставимая годовая доходность,

- средняя месячная доходность.

- средняя месячная просадка.

Последствия данного недостатка: необходимо выгружать все сделки в Excel и досчитывать данные показатели вручную, либо с применением Матлаб.

Что требуется в ПРО-версии тестера: по итогам тестирования автоматический расчет приведенных выше показателей работы советника.

Конкурентное преимущество для МТ5: существенно, так как на иных платформах чаще всего их тоже приходится кодить вручную.

6. Отсутствие показателя "Открытый интерес"

Суть недостатка в текущей версии: ОИ представлен только как описательный показатель фьючерсных инструментов.

Последствия данного недостатка: невозможность использовать данные ОИ в работе советника, невозможность построить индикаторы с использованием ОИ и пр.

Что требуется в ПРО-версии тестера:

- обеспечить на стороне брокера наличие данных по ОИ на уровне М1 и выше за последние 10 лет по наиболее ликвидным и торгуемым биржевым фьючерсам,

- обеспечить функции расчета индикаторов по ОИ в режиме реальный торгов, но и подгрузкой необходимой истории из файлов с историческими данными.

Конкурентное преимущество для МТ5: существенно, так как многие даже платные дата-фиды не дают эти данные в нормальном виде.

Конечно на Маркете есть пара софтин,  которые позволяют пользователя начать "записывать" ОИ и даже дописать файлы историческими значениями. Но все это очень громоздко и неуклюже, так как в реальности подключить такой исторический дата-фид для работы советника весьма проблематично и требует громадного объема доп. кодирования.

 

И наконец вкратце

ПОЛЕЗНЫЕ МОМЕНТЫ, которые хотелось бы видеть в ПРО-версии

7. Моделирование ГО по фьючерсам на основе алгоритма МОЕХ

8. Прокрутка "На дату" в Визуализаторе стратегий после завершения тестирования

9. Центральное хранение истории для локальных агентов

10. Возможность включить инструмент в качестве параметра для оптимизации.

Данные пункты кончено можно обойти с помощью "костыликов" лидо вовсе обойтись без них.

Но чем удобней тестер, тем приятней с ним работать.

 

Отчет по Волкин-Форварду должен содержать общую сумму форвардов данной серии.

Для волкнг-форварда должна быть возможность установки НАЧАЛЬНОГО сета. Чтобы стартовые условия были одинаковыми для всех волкинг-форвардов и начальный сет не затирался последующими результатами

Возможность  оптимизации параметров по очереди .

Возможность игнорирования нулевого результата. 

 

alk forward тестирование, с отбором наиболее устойчивых во времени наборов параметров,



А как вы себе это представляете? Чисто визуально - в каком виде? Таблица, график? И что значит ."наиболее устойчивые". Наиболее часто повторяемые? Или наиболее результативные? Результативные по какому критерию?

Не проще ли просто выдать результат промежуточных тестов волкинг-форварда в виде списка всех полученных в результате оптимизации параметров - а там уж пусть каждый пользователь сам решает, как их анализировать, поскольку наиболее часто повторяемые значения бэков не обязательно приводят к хорошим форвардам.

 

С начальным сетом или без него, это уже скажем так нюансы. Лучше конечно оба варианта))

Насчет "устойчивости" - для  себя я ее определяю как обеспечение прибыльности работы в заданном % количестве out-of-sample прогонов. Например задание 95% для walk forward тестирования с out-of-sample периодом равным 1 месяцу будет говорить о том, что вообще-то разработчик готов "пережить" 1 убыточный месяц за 2 года работы советника. Еще более правильно задавать двойную связку: прибыльность + ограничение по % просадки, но это понятно более ресурсоемко. 

 
Сергей Трейдер:

С начальным сетом или без него, это уже скажем так нюансы. Лучше конечно оба варианта))

Насчет "устойчивости" - для  себя я ее определяю как обеспечение прибыльности работы в заданном % количестве out-of-sample прогонов. Например задание 95% для walk forward тестирования с out-of-sample периодом равным 1 месяцу будет говорить о том, что вообще-то разработчик готов "пережить" 1 убыточный месяц за 2 года работы советника. Еще более правильно задавать двойную связку: прибыльность + ограничение по % просадки, но это понятно более ресурсоемко. 

Предположим, вы решили не учитывать один убыточный сет.  ОК 24-1 =23 Те. у вас остается 23 прибыльных сета . Я не представляю как вы будете из 23-х что-то там решать, а, главное, зачем. Да и ЛАДНО! Пусть они у вас будут! Но мне, как общему пользователю терминала  такая функция не нужна! У меня ведь волкин ПОСЛЕДОВАТЕЛЬНЫЙ, т.е. учитывающий инерционность системы и , естественно, я буду для работы брать последний, самый актуальный сет. Поэтому я и говорю - должна быть общая таблица-отчет, в том числе содержащая сохраненный сет для каждого бэка. А уж каждый потом может оттуда выдергивать в экселе, что ему понравится.

Что же до начального сета  -Это принципиально! Иначе как вы собираетесь сравнивать результаты волкин-форвардов между собой, если начальные условия будут разными?  Если не предусмотреть такую функцию, то вам придется ВРУЧНУЮ ставить один и тоТ же сет.

 

 

 

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

 
Тут не упомянули самое главное - в про версии должна быть возможность тестировать на свой истории, а откуда мы ее возмем уже наше дело. В этом случае будет увереность что мы тестируем на реальной истории, а не на сглаженных брокером данных, без шпилек и прочей лабуды которую они активно затирают. Тогда мы всегда сможем скачать или записать все тики за месяц, и спокойно тестировать, без сгенерированных тиков из МТ4.
 
Сергей Трейдер:

КРИТИЧЕСКИ НЕДОСТАКИ, которые должны быть устранены в ПРО-версии

1. "Граальность" генерации тиков / Отсутствие стаканогеренации

Суть недостатка в текущей версии: Генерация стаканов как таковая отсутствует, используется генерация тиков, по которым можно открыть позиций без ограничения учета ликвидности рынка. Т.е. тестер допускает полный набор позиции для любого экстремума цены, и т.о. советник набирает позиции, которые в реальной торговле не открылись вообще либо открылись бы по приведенной в отчете цене с гораздо меньшим объемом.

Последствия данного недостатка: полная непригодность тестера для HFT-роботов, и весьма ограниченная пригодность для всех торговых систем, работающих на ТФ ниже Н1. Форум полон воплей пользователей, которые посоздавали "граалей" и затем слили свои деньги.

Тут я не рассматривают вопрос тестирования на барах открытия – для HFT это вообще чушь, но и для свечных систем ограниченно пригодно, т.к. биржевой рынок в любом случае имеет ограничение на ликвидность  + в марабозах мы встречает тот же экстремум на открытиях, только несколько реже.

Что требуется в ПРО-версии тестера:

- хранение ордер-логов ключевых биржевых инструментов на сервере брокера,

- на каждом тике генерация стаканов 5х5 в обе стороны с заполнением согласно ОЛ,

- тестирование в режиме тайм-фрейм С1 (одна секудна).

Конкурентное преимущество для МТ5: высокое.  Обработка ордер-лога и стаканогенерация по ОЛ есть только у S#, однако там подразумевается что пользователь сам купил ОЛ, что весьма накладно с учетом стоимости как данных, как и их хранения. Поэтому ПРО-тетстер с оплатой за ордер-лог данные через брокера будет обладать недостижимым для иных систем преимуществом

Данная фича подразумевает, что оплата ПРО-версии должна быть в виде "подписки" на услугу у брокера, и MQ  будет получать свою часть прибыли от брокера.

2. Отсутствие функций запуска и управления тестированием из кода советника

Суть недостатка в текущей версии: тестирование запускается только через ручной запуск, либо через подкладку ини-файла в отдельную версию терминала; отсутствуют функции МКЛ5, позволяющие автоматизировать запуск тестирования/оптимизации на заданных из кода параметрах.

Последствия данного недостатка: алготрейдерам приходится  записывать промежуточные итоги в Excel, программировать на WinAPI для управления вторым терминалом, в общем страдать и изгаляться по-черному.

Что требуется в ПРО-версии тестера:

- специальные функции МКЛ5 для управления параметрами запуска тестирования и оптимизации советника из кода самого советника,

- простое программное сохранение набора лучших параметров в xml-файл и их загрузка для следующего этапа тестирования.

Конкурентное преимущество для МТ5:  по данному показателю МТ5 отстает от других платформ, так что это всего лишь устранение отставания от рынка.

Отличная статья, со всем согласен, только стакан бы добавил полноценный как в терминале, у меня например фильтр учитывает общий дисбаланс заявок
 

Сделать так чтобы новые версии поддерживали старый код. Просто самый большой риск - это реализовать проект на 50к-100к строк, а с новым билдом он просто не работает - в причину 3к ошибок. Ну или сделать возможность поддержки старых билдов без принудительного обновления при перезагрузке терминала.

 Начать хоть как то сжимать историю. На данный момент сжатия просто нету. Чувствуется при передачи локальным агентам.

Сделать так чтобы не висли  локальные агенты при обращении к ним в момент их занятости. - спасает только перезапуск агентов.

 

Вопрос к автору темы:  К примеру  Волкин-Форвард с множественным выбором инструментов  включая их синтез  (к примеру 10 прямых контрактов + месяца их и прочее) и множественного выбора промежуточных лучших проходов (штук 50) по заданному своему(своя оценка) критерию который собственно и оптимизируем. И ставим на все это небольшую 2х уровневую нейро сеть по историческому повторению. Внимание вопрос: сколько пройдет лет столетий прежде чем до тестирует какой-нибудь последний ксеон 32 ядра в 64 потока с эмм 128 Гигами оперативы (стоимость более 250 т.р.++). Тестируем по всем тикам. Или вопрос о тысячах лет? 

Причина обращения: