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

 

И ещё: Раз уж режим визуализации есть, так почему бы не обеспечить возможность накидывать на график индикаторы (главное - кастомные), пользоваться инструментами разметки и применять шаблоны?

После MT-4 график визуализации был для меня главным разочарованием. Нужны отображения отложенных ордеров как в МТ-4. Чтобы при трале стопа оставался след. Метки ордеров - потолще: на 4К мониторе их не видно (в настройках терминала 4к учтён).

 

Предложение.

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

Новая версия платформы MetaTrader 5 build 2085: Интеграция с Python и массовые улучшения в тестере стратегий

Alain Verleyen, 2019.09.12 17:09

Тестер стратегий, Визуальный режим. У меня есть советник с графическим интерфейсом (панель). Если вы нажмете «Перейти к», объекты на диаграмме все еще будут прорисованы / обновлены, что замедляет обработку и делает «Перейти к» практически бесполезным.

Если возможно добавить функцию MQLInfoInteger (MQL_VISUAL_SKIPMODE)

или автоматическое отключение обновления графического интерфейса при использовании «Перейти к».

Спасибо, чтобы рассмотреть это.


 
Slava:

Спасибо. Разберёмся.

Разобрались.

Спасибо за данные.

 

Это правильно, что на биржевых символах в Тестере TP акцептируется по last-цене, а исполняется по bid/ask?

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

В сабже отсутствует слово "Благодарности". Хочу сказать Спасибо за правильную реакцию Тестера на изменения свойств символа.

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

 
fxsaber:

Это правильно, что на биржевых символах в Тестере TP акцептируется по last-цене, а исполняется по bid/ask?

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

Чтобы не дать себя обманывать, написал такой OnInit

#define TOSTRING(A) #A + " = " + (string)(A)
#define TOSTRING2(A) #A + " = " + EnumToString(A)
 
int OnInit()
{
  const bool Res1 = SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL);
  const bool Res2 = (SymbolInfoInteger(_Symbol, SYMBOL_TRADE_MODE) == SYMBOL_TRADE_EXECUTION_EXCHANGE) &&
                    (AccountInfoInteger(ACCOUNT_MARGIN_MODE) != ACCOUNT_MARGIN_MODE_RETAIL_HEDGING);
    
  if (Res1 || Res2)  
  {
    if (Res1)
      Print(TOSTRING(SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL)));
      
    if (Res2)
      Print(TOSTRING2((ENUM_SYMBOL_TRADE_MODE)SymbolInfoInteger(_Symbol, SYMBOL_TRADE_MODE)) + "\n" +
            TOSTRING2((ENUM_ACCOUNT_MARGIN_MODE)AccountInfoInteger(ACCOUNT_MARGIN_MODE)));
  }

  return(Res1 || Res2 || OnInit2());
}

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

 

На скрине выделенный кусок соответствует одному дню. Если точнее, то нескольким минутам.

Возможно, стоит точки абсциссы закреплять не только за трейдами, но и за временем (по выбору)?

 

Когда кончается место на диске, Тестер в логах об этом ничего не сообщает.

Использую RAM-drive для Тестера, т.к. это много быстрее стандартного варианта. Когда делаешь много одиночных проходов, то логи забиваются мусором. Просьба не выводить мусор звучит время от времени на форуме.

Сейчас же просьба сделать галочку "Очистить логи перед запуском".

 

В режиме по пипсам неправильно вычисляется максимальная просадка по средствам.

На скрине видно, что MaxDDEquity < MaxDDBalance.


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

все показатели совпадают с режимом по пипсам, но MaxDDEquity показывает верное значение.

 
В режиме по пипсам можно нарваться на "not enough money". Этого не должно быть. "По пипсам" предполагает, что можно торговать хоть с отрицательным балансом.
Причина обращения: