Технологическая сингулярность MetaTrader 5

 

Собрался небольшой список пожеланий для MetaTrader 5. Решил открыть отдельную тему для этих предложений. Высказывайте своё мнение по каждому из этих пунктов и дополняйте своими идеями, как бы это могло быть и чего не хватает именно Вам для комфортной работы в среде торгового терминала MetaTrader 5. 


  1. Нужна возможность сохранять результаты оптимизации и возможность загружать их в тестер для последующего анализа. Например, произвели оптимизацию параметров в режиме Медленная (полный перебор параметров). Сохранили все интересные на свой взгляд сеты по указанным критериям. В любой момент этот набор можно загрузить для просмотра и анализа результатов в тестере. Интересна возможность загружать наборы сетов, а не по одному, как это сделано сейчас. 
  2. Оптимизация по сохранённым сетам в режиме Все символы, выбранные в окне Обзор рынка. Автоматически прогоняем все сохранённые и загруженные в тестер сеты по всем символам и в списке результатов этого типа оптимизации смотрим, с каким сетом получается лучший совокупный по всем символам результат. Для этого случая скорее всего нужно сделать список с разворачивающимися пунктами.
  3. Возможность управления графиком в тестере, как это реализовано на графиках цен в терминале. То есть иметь возможность увеличивать и уменьшать масштаб, а также скролить график по горизонтали, когда масштаб увеличен.
  4. Двойной щелчок по кривой баланса/средств отправляет на дату совершения сделки на графике цен, если он был до этого открыт из контекстного меню. Если график не был до этого открыт, то это действие его открывает.
  5. Нужен дополнительный график (подокно), на котором будут показаны все просадки, двумя кривыми типа Линия, относительно текущего баланса и начального баланса. 
  6. Очень полезным может быть такой показатель, когда показывается максимальная просадка относительно начального депозита за весь период теста. Так будет сразу понятно, что тест будет успешным для начального депозита не с любой даты начала теста. Именно этот показатель процентной просадки нужно показывать в одном из столбцов в результатах оптимизации.
  7. Гибридная ордерная система. Берём лучшие свойства от неттинга и хеджинга, и получаем гибрид. Сохраняется возможность открывать несколько независимых позиций, как в хедже. Но каждая позиция управляется также, как в неттинге. Это даёт некоторые преимущества:
    • Большую гибкость в управлении позициями под разными мэджиками. 
    • Алгоритмы станут проще в реализации, что увеличит скорость исполнения.
    • Иногда ставится ограничение на количество позиций. Такой подход уменьшает количество одновременно открытых позиций на одном символе.
  8. Оптимизация параметров эксперта на ядрах видеокарты.
  9. Во внешних параметрах приложений раскрывающиеся списки групп параметров с заголовками.
  10. На графике в тестере кроме общих кривых баланса и средств показывать также и по каждому символу отдельно. Также и в терминале, в окне Toolbox добавить ещё одну вкладку Graph, на которой будет график баланса и средств счёта.
  11. После теста при автоматическом открытии графика с метками сделок иметь программную возможность запуска MQL-приложений на этом графике. Сейчас такая возможность есть только в режиме оптимизации.
  12. Нужна возможность отправки пользовательского события графикам в терминале после окончания теста.
  13. При открытии графика с результатами теста иметь возможность указать, чтобы открылись графики с результатами по всем символам, которые участвовали в тесте.
  14. Предложение добавить модификатор памяти tinput = tester input (https://www.mql5.com/ru/forum/1111/page2096#comment_6112189). Такие переменные будут видны только в настройках советника в тестере, но не будут доступны в обычном окне настроек. Таким модификатором можно будет отмечать переменные, необходимые только для тестирования или оптимизации (например, свой критерий оптимизации или параметры волк-форварда), при этом не будут занимать место в обычном окне настроек.
  15. В списке позиций, если счёт в режиме хеджа, для каждого символа нужно сделать отдельный список в виде раскрывающегося пункта, в котором можно показывать совокупный объём всех открытых позиций, а также текущий результат (прибыль/убыток). Это упростит визуальный анализ текущей ситуации на счёте.
  16. Одиночный тест в многоядерном режиме. Если сделок очень много (десятки или даже сотни тысяч сделок), то можно было бы использовать все ядра процессора для ускорение тестирования. Результаты можно склеивать в один график в конце теста или показывать отдельными кривыми баланса и средств для каждой части теста. 
  17. Управление тестером из MQL (MQL-тестер). Таким образом можно было бы проводить виртуальную торговлю в режиме реального времени прямо в MQL-программах, что даст возможность сравнивать текущий реальный и виртуальный результат. 
 

Anatoli Kazharski:

Управление тестером из MQL (MQL-тестер). Таким образом можно было бы проводить виртуальную торговлю в режиме реального времени прямо в MQL-программах, что даст возможность сравнивать текущий реальный и виртуальный результат. 

Из всех вышеперечисленных пунктов выделил только этот.

Для кастомных символов есть возможность пробрасывать тики через CustomTicksAdd. Это очень удобная вещь! По аналогии хотелось бы видеть TesterTicksAdd, а также TesterCreate, TesterDestroy. Чтобы можно было пробросить свои тики в тестере и считать торговое окружение текущего состояния тестера.

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

 

Считаю полезным только 8 пункт - использование ядер видеокарт без необходимости специально приспосабливать эксперта к работе в OpenCL

Остальное - либо у меня так или иначе сделано (например, пункт 6), либо я не вижу необходимости в этом вобще (например, пункт 1).

 

 Доступ к событиям календаря из MQL.

 
Реter Konow:

 Доступ к событиям календаря из MQL.

Это уже ждём:

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Где берут или откуда парсят ?

Renat Fatkhullin, 2017.08.26 21:29

Уже скоро будет рилтаймовый календарь с историей будет в MQL5, включая тестер стратегий. Мы вовсю заняты реализацией.

Календарь у нас собственный, источники у каждого события указаны в описании.

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

А при чем тут сингулярность? Большинство пунктов уже предлагалось, некоторые - много лет назад. Пишите в СД, может быть когда-нибудь сделают, если будет слишком много запросов на одно и то же.

Некую сингулярность MetaQuotes могло бы обеспечить, если бы все заявки, которые мы пишем в СД, были бы публичными, и за те или иные фичи можно было бы голосовать. Такой подход используют многие известные конкуренты TeamWox (от MQ), в частности Atlassian. Это могло бы дать реальный эффект для принятия решений, расстановки приоритетов и оценки проделанной работы.

Пункт 16 - под вопросом. Распараллелить произвольную торговую стратегию нельзя. Для этого нужны новые языковые конструкции в языке, т.е. MQL-программист как минимум должен разрешить тестеру бить общий период не несколько и указывать параметры разбиения.

 
Anatoli Kazharski:

Это уже ждём:

Слышал. Будет здорово.

 
Stanislav Korotky:

...

Пишите в СД, может быть когда-нибудь сделают, если будет слишком много запросов на одно и то же.

...

Из кулуаров другим не видно. А так можно увидеть, какие-нибудь новые мысли, которые впоследствии могут быть тоже учтены. 
Stanislav Korotky:

...

Пункт 16 - под вопросом. Распараллелить произвольную торговую стратегию нельзя.

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

Да, должны быть какие-то дополнительные настройки, чтобы этим управлять. Если известно, что в одиночном тесте будет очень много сделок, а времени это занимает довольно много, то почему бы не начать тест сразу из нескольких мест всего тестируемого периода?
 
Anatoli Kazharski:
Да, должны быть какие-то дополнительные настройки, чтобы этим управлять. Если известно, что в одиночном тесте будет очень много сделок, а времени это занимает довольно много, то почему бы не начать тест сразу из нескольких мест всего тестируемого периода?

Это такая хотелка, которая ну никакого отношения к практике не имеет. Есть много ядер - хочу. И это при том, что задача не параллелится. То же самое и GPU.

Хотите ускорить тестер в десятки раз - рабочий рецепт есть уже сейчас. И никакого отношения не имеет к многоядерности. Кастомные символы называется.

 
fxsaber:

Это такая хотелка, которая ну никакого отношения к практике не имеет. Есть много ядер - хочу. И это при том, что задача не параллелится. То же самое и GPU.

Хотите ускорить тестер в десятки раз - рабочий рецепт есть уже сейчас. И никакого отношения не имеет к многоядерности. Кастомные символы называется.

Почему не параллелится? Потому что этого никто до этого никогда не делал?

Приведите пример, как вы ускоряетесь в десятки раз, проводя тест одновременно на множестве символах с сотнями тысяч сделок в режиме все тики. Сколько у вас занимает по времени тест с такими условиями до ускорения и после?

 
Anatoli Kazharski:

Почему не параллелится?

Сумма 10-ти тестов последовательных интервалов - это не то же самое, что один тест на полном интервале.

Приведите пример, как вы ускоряетесь в десятки раз, проводя тест одновременно на множестве символах с сотнями тысяч сделок в режиме все тики. Сколько у вас занимает по времени тест с такими условиями до ускорения и после?

С моей стороны будет болтологией, если не покажу метод с воспроизведением сказанного. Удивит, если буду первым. Как созрею, сделаю ветку.