Тестер стратегий MetaTrader 5: ошибки, баги, предложения по улучшению работы - страница 75

 

В этих двух режимах отображения результатов Оптимизации

ничего полезного не сделать, т.к. отсутствуют всплывающие подсказки с результатом при наведении мыши на соответствующую ячейку/точку.


Просьба доделать эти два режима, как это реализовано в верхнем/дефолтном режиме "График с результатами".

 
Нарвался на ситуацию, когда выбранный локальный Агент (жирным шрифтом в списке агентов помечен) в состоянии disabled. При этом одиночный проход запустился на другом Агенте. Пока выполнялся одиночный проход, нельзя было упомянутый disabled-Агент включить - нажимал Включить, но ничего не происходило.
 
Наверное, Тестеру нет смысла создавать opt-файлы, у которых Header.passes_passed == 0.
 
Баг HistorySelect в Тестере.
#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006

#define Ask SymbolInfoDouble( _Symbol, SYMBOL_ASK )

void OnTick()
{
  if (!OrderSelect(0, SELECT_BY_POS))                                            // Если нет текущих ордеров,
          OrderSend( _Symbol, OP_BUYSTOP, 0.1, Ask * 2, 0, 0, 0);                // выставляем.
  else if ((TimeCurrent() - OrderOpenTime() > 60) && OrderDelete(OrderTicket())) // Если текущий ордер живет дольше минуты - удаляем.
  {
//    if (HistorySelect(OrderOpenTime() + 1, INT_MAX))
    if (HistorySelect(TimeCurrent() - 10, INT_MAX))  // После удаления отступаем 10 секунд от текущего времени и берем историю.
      Print(HistoryOrdersTotal());                   // Видим, что в истории удаленного ордера нет - 0.
            
    if (HistorySelect(OrderOpenTime(), INT_MAX))     // Теперь берем историю от времени постановки удаленного ордера.
      Print(HistoryOrdersTotal());                   // Видим, что в истории удаленный ордер есть - 1.

    ExpertRemove();                                  // Вышли.
  }
}

HistorySelect выбирает ордера не с даты их удаления/заливки, а с даты постановки. Что, конечно, неверно. В Терминале правильно отрабатывает. Неприятный баг.

Строка для поиска: Oshibka 008.

 
Этот советник не может Оптимизироваться в режиме по всем символам из Обзора рынка.
double OnTester() { return(0); }

Требует наличия input-параметров. Но для данного вида Оптимизации входные параметры не нужны. Просьба учесть.

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

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

уже несколько раз мой монитор чудом оставался жив, избежав моего праведного гнева. билд 2340.
Алгоритм генерации тиков в тестере стратегий терминала MetaTrader 5
Алгоритм генерации тиков в тестере стратегий терминала MetaTrader 5
  • www.mql5.com
В составе клиентского терминала MetaTrader 5 есть встроенная среда программирования для разработки полностью автоматических стратегий (торговых роботов), которые могут торговать без вмешательства человека.  Другое название торговых роботов - эксперты.  Эксперты и технические индикаторы для терминала MetaTrader 5 пишутся на языке MQL5, в котором...
 
Andrey Dik:
если в тестере в режиме реальных тиков тиковая история не синхронизирована, то тестер начинает работу в режиме сгенерированных тиков! просьба - останавливать прогон с ошибкой вместо этого.

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

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

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

Бета-версия платформы MetaTrader 5 build 2430: Сервис "Подписки", улучшения в интерфейсе и удобные функции в MetaEditor

fxsaber, 2020.05.17 00:38

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

Используйте всегда только кастомные. Проблемы не будет совсем. А так.

 
2470, при Оптимизации проскакивают такие сообщения.
2020.05.30 11:49:55.216 Core 2  genetic pass (15, 313) returned result 0 in 0:00:04.146
2020.05.30 11:49:55.575 Core 1  genetic pass (15, 283) returned result 0 in 0:00:04.907
2020.05.30 11:49:56.241 Core 3  genetic pass (15, 375) returned result 0 in 0:00:04.537
2020.05.30 11:49:56.269 Core 6  genetic pass (15, 495) returned result 0 in 0:00:04.413
2020.05.30 11:49:57.497 Core 4  genetic pass (15, 419) returned result 1908.000000 in 0:00:04.873
2020.05.30 11:49:58.528 Core 6  genetic pass (15, 497) returned result 0 in 0:00:00.135
2020.05.30 11:49:58.528 Core 6  genetic pass (15, 502) returned result 0 in 0:00:02.122
2020.05.30 11:49:58.824 Core 4  genetic pass (15, 428) returned result 0 in 0:00:00.291
2020.05.30 11:49:58.824 Core 4  genetic pass (15, 429) returned result 0 in 0:00:01.035
2020.05.30 11:49:59.178 Core 4  genetic pass (15, 433) returned result 0 in 0:00:00.352
2020.05.30 11:49:59.178 Core 2  2 rejected passes returned to queue
2020.05.30 11:49:59.178 Core 3  2 rejected passes returned to queue
2020.05.30 11:49:59.178 Core 4  genetic pass (15, 345, 1) started
2020.05.30 11:49:59.660 Core 2  genetic pass (15, 327) returned result 0 in 0:00:04.443
Что это обозначает? Свободной памяти много.
 

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

Из-за этого, в частности, невозможно провести оптимизацию в режиме по всем символам из Обзора рынка.

 

Просьба в эту строку добавить название сервера.


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