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

 

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

Я думаю, это шаг в новую эру алготрейдинга.

(Также, сервисы будут новым типом программ в маркете, которые будут востребованы всеми).

 

Есть три маленькие хотелки: 

1) Расширить перечень параметров, которые можно просматривать в таблице после выполнения оптимизации. К примеру, кроме "Просадка", "Прибыльность", "Матожидание выигрыша" "Коэфф. Шарпа" и т.д. было бы неплохо также получить информацию относительно соотношения прибыльных и убыточных сделок.

2) Обеспечить возможность задавать спред, как это было в Мql4. Поскольку история котировок содержит информацию по спреду только с июня 2017, то приходится выкручиваться путем создания кастомных инструментов, что очень неудобно.

3) Кроме графиков "Прибыль и убытки" по часам, дням недели, месяцам, где прибыли и убытки распределены по времени выхода из сделки, также выводить графики распределения прибылей/убытков по моменту входа в сделку. Т.е., если я зашел в сделку в 12:30, а вышел в 15:20, то результат сделки относить к интервалу 12:00-13:00, а не 15:00-16:00.

   

 
Alexander Zhogolko:

Есть три маленькие хотелки: 

1) Расширить перечень параметров, которые можно просматривать в таблице после выполнения оптимизации. К примеру, кроме "Просадка", "Прибыльность", "Матожидание выигрыша" "Коэфф. Шарпа" и т.д. было бы неплохо также получить информацию относительно соотношения прибыльных и убыточных сделок.

2) Обеспечить возможность задавать спред, как это было в Мql4. Поскольку история котировок содержит информацию по спреду только с июня 2017, то приходится выкручиваться путем создания кастомных инструментов, что очень неудобно.

3) Кроме графиков "Прибыль и убытки" по часам, дням недели, месяцам, где прибыли и убытки распределены по времени выхода из сделки, также выводить графики распределения прибылей/убытков по моменту входа в сделку. Т.е., если я зашел в сделку в 12:30, а вышел в 15:20, то результат сделки относить к интервалу 12:00-13:00, а не 15:00-16:00.

Пункты 1 и 3 скорее всего будут отданы фирмой MQ на откуп MQL-разработчикам (по крайней мере раньше с подобными задачами так выходило). Слишком много разных параметров и аналитических разбивок можно сделать (на всех не угодишь, а если делать каждую фичу под десяток человек - у MQ нет ресурсов так распыляться). Многие здешние завсегдатаи такие вещи пишут, в том числе и я предлагал в блоге (на английском) аналитический движок, который пункт 3 позволяет сделать: нужно выбрать SELECTOR_WEEKDAY/SELECTOR_DAYHOUR и пр. по желанию, а поле сделки FIELD_DATETIME1  (вход) или FIELD_DATETIME2 (выход). Но там много всего наворочено - не для конечных пользователей получается.

Я все же считаю, что все такие хотелки лучше писать в СД. Практика показывает: это более прямой канал и там нет троллей.

 

Тестирование

добавить учет торговых условий у брокера на счете и символе:

Учет изменяющихся маржинальных требований по дням недели, часы после открытия, перед закрытием, диапазоны дат с особыми условиями, зависимость от размера текущего баланса, перерасчет маржи открытых позиций при открытии новой позиции менее чем за Х часов/минут до закрытия рынка в пятницу и другие условия. Некая заполняемая матрица коэффициентов к AccountLeverage() (SymbolInfoMarginRate) с общим разделом и по символу.

Другими словами сейчас в спецификации к символу указывается статический процент маржи по отношению к плечу счета. А надо его сделать динамическим с настраиваемыми параметрами, которые тестер учитывает и выдает программе корректное значение при проверке торгового запроса

- добавить возможность штатного смещения часовых поясов баров при тестировании (с учетом переходов на летнее/зимнее время). Младшие ТФ сдвигать, верхние пересчитывать.

 
Хотелось бы иметь возможность подкрашивать программно вкладку графика с названием инструмента. Особенно полезно было бы в полуавтоматических системах. Тогда при определенных событиях можно было бы видеть, что где произошло взглянув на цветовую гамму ярлыков.
 
Anatoli Kazharski:

Собрался небольшой список пожеланий для 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-программах, что даст возможность сравнивать текущий реальный и виртуальный результат. 

Я за пункт 17.

Нужны будут стандартные функции\процедуры или даже классы запуска и управление тестером и оптимизации, а так же анализа результатов тестирования и оптимизации.

Было бы не плохо как нибудь прикрутить новости в тестер\оптимизатор стандартными функциями\процедурами\классом.

Это изменит подход к написанию советников. Это будет новый этап развития алготрейдинга.

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

 
megam0zg:

Было бы не плохо как нибудь прикрутить новости в тестер\оптимизатор стандартными функциями\процедурами\классом.

Это изменит подход к написанию советников. Это будет новый этап развития алготрейдинга.

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

Это уже анонсировали.

 

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

Например,

  • Открыли счета у интересующих брокеров.
  • Загрузили данные по символу EURUSD для всех этих брокеров.
  • В мультисимвольном эксперте выбрали в настройках символы EURUSD от этих брокеров.
  • Эксперт в тестере заключает сделки на указанном символе сразу по всем выбранным брокерам с их условиями (размер спредов, стоп/лимит уровни).

При оптимизации параметров находятся такие комбинации, которые будут максимально устойчивыми при разных условиях. Актуально для внутридневной торговли.

 
Anatoli Kazharski:

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

Это давно уже есть - кастомные символы.

 
fxsaber:

Это давно уже есть - кастомные символы.

Всё никак не доберусь до них. Обязательно попробую. Есть необходимость изменять спред и стоп/лимит уровни на истории случайным образом. Своего рода имитация "палок в колёса".

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