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

 

Воспроизведение бага сброса входных настроек при компиляции.

Советник

input int inRange = 0;

void OnInit() {}

1. Выставить inRange = 25 и запустить одиночный проход

2. Сделать CTRL+V во вкладке Настройки Тестера следующей строки

inRange=123

3. Перекомпилировать советник.

4. Видим, что inRange сбросилось на 25. Должно было быть 123.

 
Slava:

В Тестере таймером или через Sleep сдвинулся на 0.5 секунды. Как идентифицировать произошедшее? TimeTradeServer не показывает данные меньше секунды.

 
fxsaber:

Воспроизведение бага сброса входных настроек при компиляции.

Советник

1. Выставить inRange = 25 и запустить одиночный проход

2. Сделать CTRL+V во вкладке Настройки Тестера следующей строки

3. Перекомпилировать советник.

4. Видим, что inRange сбросилось на 25. Должно было быть 123.

Это не баг.

As designed. Пока не нажмёшь кнопку тестирования, текущие параметры не запишутся в текущий сет <expert_name>.set

При перекомпиляции, если состав параметров не менялся, то их значения восстанавливаются из текущего сета

 
Slava:

Это не баг.

As designed. Пока не нажмёшь кнопку тестирования, текущие параметры не запишутся в текущий сет <expert_name>.set

При перекомпиляции, если состав параметров не менялся, то их значения восстанавливаются из текущего сета

Это не так. Если руками прописать 123, то компиляция не изменит значение.

 
Что слетают настройки, уже тоже писал на эту тему но ответа не было. По сути становится невозможно отлаживать с кастомными параметрами. Ибо отладка каждый раз пересобирает, даже если ничего не менялось. А пересборка сбрасывает параметры. Приходится извращаться, изменяя советник и прибивая параметры гвоздями, что не очень удобно.
Новая версия платформы MetaTrader 5 build 2190
Новая версия платформы MetaTrader 5 build 2190
  • 2019.11.25
  • www.mql5.com
В пятницу 18 октября 2019 года будет выпущена обновленная версия платформы MetaTrader 5...
 
Andrey Khatimlianskii:

Что-то вы переоптимизировали с iTime:


Работа на М5:


Это - давнишний баг.

Проявился именно на реальных тиках EURUSD именно в данном диапазоне тестирования

Исправлено.

 
traveller00:
Что слетают настройки, уже тоже писал на эту тему но ответа не было. По сути становится невозможно отлаживать с кастомными параметрами. Ибо отладка каждый раз пересобирает, даже если ничего не менялось. А пересборка сбрасывает параметры. Приходится извращаться, изменяя советник и прибивая параметры гвоздями, что не очень удобно.

Вы ничего не рассказали про шаги воспроизведения описываемой проблемы.

Лично я не смог воспроизвести.

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

 
fxsaber:

Цены в истории Терминала не нормализованы!

C 12.12.2019 на MQ-Demo и MQ-Beta цены нормализованы.

 

Используется билд 2280. Берётся символ и период, когда котировок на нём не было. В данном случае это биржа, брокер Открытие, символ UCAD-12.19, период 01.09.2019-03.09.2019. Запускается простой советник (ниже). Если его гонять проходами по одному, всё в порядке, просто скажет, что нету истории, 0 баров и 0 тиков. Если запустить оптимизацию, неважно генетик или полную, в лог посыпятся кучей ошибки

genetic pass (0, 504) tested with error "critical runtime error 517 in OnInit function (module Experts\test.ex5 exception 0xc0000005)" in 0:00:00.041
input int test=1;

double OnTester()
{
  return 0;
}

void Test(const MqlTick &Tick)
{
}

void OnInit()
{
  MqlTick OldTicks[];
  int OldTicksCount=CopyTicks(_Symbol,OldTicks,COPY_TICKS_ALL);
  while(OldTicksCount>=1000)
    OldTicksCount=CopyTicks(_Symbol,OldTicks,COPY_TICKS_ALL,OldTicks[OldTicksCount-500].time_msc);
  for(int i=0;i!=ArraySize(OldTicks);++i)
    Test(OldTicks[i]);
}

Похоже, что реакция на доступ к массиву OldTicks, но неизвестно, почему. Заменять результат возврата функции на размер массива не помогает. Что с этим делать, неизвестно.

 

Билд 2280. Почему когда запускаешь оптимизацию, например генетическую, все поля на вкладке Настройки становятся серыми, и менять их нельзя, а поле, по которому оптимизируется (типа Максимум пользовательского критерия) остаётся активным? Критерий можно менять посреди оптимизации или баг?

P.S. Хм, похоже, повторяется не всегда.

P.P.S. Понял, как повторить. Изначально после запуска тестирования кнопка действительно уходит в дисаблед состояние. Но у меня по высоте немного сжато нижнее окно с настройками, в итоге там вертикальный скролл. Если промотать вверх, что критерий перестаёт быть виден, а потом прокрутить обратно вниз, можно обнаружить его снова енабленым.
Оптимизация стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
Оптимизация стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
Причина обращения: