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

 
2314. Комиссия в режиме percents per trade не вычисляется правильно. + не задать через GUI (через файл можно) дальше второго знака после запятой.
 

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

Советники: Validate

fxsaber, 2020.02.06 17:20

ЗЫ К сожалению, сам MT5-Тестер не позволяет прописывать кастомный критерий Оптимизации (не выбора) вне исходного кода советников. Хотя нет никаких архитектурных препятствий для этого.

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

Но невозможно задать свой критерий Оптимизации, если есть только EX5. С моей точки зрения, такой критерий Оптимизации можно было бы задавать в виде советника, где доступна только OnTester и данные функции TesterStatistics. Скорее всего, такого в планах нет у разработчиков. Поэтому только озвучивание.

 

Sorry about this being machine translated to Russion from English, but I only found this thread, to report bugs.

Похоже, что существует проблема Проблема с платформой Metatrader 5 при запуске отладочного визуального тестирования в редакторе и достижении точки останова и нажатии сочетания клавиш Ctrl + F.

Индикаторы (все, даже включенные) перерисовывают / сдвигают 1 бар при нажатии ctrl + f во время отладки исторических данных)

Воспроизвести:

  1. Открытый метатрейдер 5
  2. Добавить EMA 5 и EMA 10 (встроенный)
  3. Установите для Strategytester значение Ежедневно, Моделирование: тики или Реальные тики (оба вызывают одну и ту же проблему)
  4. Открыть редактор метатрейдер 5
  5. Откройте включенный ExpertMACD.mqh
  6. Установите точку останова на линии 651 в Expert.mqh
  7. Начните с CTRL + F5 для запуска на исторических данных
  8. Наведите курсор на полностью закрытую свечу (минимум на 1-2 дня назад)
  9. При достижении точки останова активируйте визуальный тестер и нажмите Ctrl + F
  10. Все индикаторы сдвигаются на 1 полосу влево, как только вы нажмете CTRL + F в окне визуального тестирования и получите перекрестие.
  11. Продолжайте с точки останова, и все индикаторы сместятся на 1 бар вправо.
  12. Шаги с 8 по 11 могут повторяться и всегда делать то же самое.

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

Это не проблема с индикаторами, как это бывает даже со встроенными примерами советников, а также со встроенными индикаторами.


Это видео на YouTube демонстрирует проблему примерно в 0:25, нажмите Ctrl + F.

https://youtu.be/_fyCv3Zla9A

 
fxsaber:

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

Но невозможно задать свой критерий Оптимизации, если есть только EX5. С моей точки зрения, такой критерий Оптимизации можно было бы задавать в виде советника, где доступна только OnTester и данные функции TesterStatistics. Скорее всего, такого в планах нет у разработчиков. Поэтому только озвучивание.

Вы это поняли только сейчас?  Если у вас плохая модель торговой стратегии, то никакая оптимизация не помогает.

Т.е. математическое моделирование или машинное обучение не в силе решать эту задачу. Надо четко знать, что в черном ящике.

 
Petros Shatakhtsyan:

Вы это поняли только сейчас?

Не понимаю, какова схема возникновения столь алогичных вопросов.

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

Конечно, если кому-то плохо, то ему не хорошо. Именно так и звучит предложение выше.

Т.е. математическое моделирование или машинное обучение не в силе решать эту задачу. Надо четко знать, что в черном ящике.

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

 
fxsaber:

Нет граалей.

Есть. 

 
Алексей Тарабанов:

Есть. 

Утверждение о граальности (до исправления режима Тестера) было подтверждено кодом.

 

В каком-то из последних билдов импортирование tst-файла стала не полноценным - вкладка Настройки не обновляется на ту, что в tst прописана.

Раньше импортируешь и в Настройках сразу видишь, при каких значениях был получен результат. Сейчас - нет. Возможно ли вернуть обратно?

 
Долго искал причину странного поведения Тестера по реальным тикам. Нашел.
const bool Init = EventSetTimer(1);

void Func()
{
  static datetime PrevTime = 0;
  
  const datetime time = TimeTradeServer();
  
  if (time < PrevTime)
    DebugBreak(); // Срабатывает
  
  PrevTime = time;
}

void OnTick()
{
  Func();
}

void OnTimer()
{
  Func();
}

Время сервера убегает вперед, а потом возвращается. Такое происходит на реальном торговом сервере, но удалось создать воспроизведение на кастомном символе.


Запускаем

sinput datetime inDateFrom = D'2020.01.01';

void OnStart()
{
  const string Name = "TEMP12345";                                                           // Имя кастомного символа
  const string SymbOrig = "EURUSD";                                                          // Имя оригинального символа

  MqlTick Ticks[];
  
  const int Size = CopyTicksRange(SymbOrig, Ticks, COPY_TICKS_ALL, (long)inDateFrom * 1000); // Считали EURUSD-тики.
    
  if ((Size > 0) && CustomSymbolCreate(Name, NULL, SymbOrig) && SymbolSelect(Name, true))    // Создали символ на основе EURUSD.
  {
    CustomTicksReplace(Name, 0, LONG_MAX, Ticks);                                            // Поместили в него историю EURUSD.        
    
    CustomRatesDelete(Name, D'2020.01.03 23:00', D'2020.01.04 00:00');                       // Удалили несколько баров.
  }
}


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

[Tester]
Symbol=TEMP12345
Period=M1
Optimization=0
Model=4
FromDate=2020.01.01
ToDate=2020.01.08
ForwardMode=0
Deposit=100000
Currency=USD
ProfitInPips=1
Leverage=100
ExecutionMode=0
OptimizationCriterion=6


Остановка.

Видно, что время пошло по второму кругу.

 
fxsaber:

В каком-то из последних билдов импортирование tst-файла стала не полноценным - вкладка Настройки не обновляется на ту, что в tst прописана.

Раньше импортируешь и в Настройках сразу видишь, при каких значениях был получен результат. Сейчас - нет. Возможно ли вернуть обратно?

Да, поправим
Причина обращения: