ТЕСТЕР СТРАТЕГИЙ. Опять расхождение результатов тестирования и оптимизации.

 

Ранее я уже поднимал тему расхождения результатов тестирования и оптимизации - тогда вопрос был снят. Расхождения возникают, если в поле спред выбрать "текущий".
Сейчас спред установлен фиксированный 20 пунктов. Поэтому прошу знающий народ подсказать - где еще поискать причину расхождения.

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

Информация для размышления:

1) советник использует модель "по ценам открытия" - соответственно советник контролирует открытие баров;
2) при запуске советника установлен период M5 и спред 20;
3) советник использует сигналы от индикатора с более высокого периода H1;
4) индикатор встроен в советник как ресурс;

Я подозреваю, что причина расхождения кроется разных таймфреймах. Похоже, что во время оптимизации советник получает значения индикатора не с таймфрейма H1, а с M5, а при тестировании советник получает значения индикатора правильно с таймфрейма H1.

Вот фрагмент кода с описанием входных параметров и обращением к индикатору.

#define  CHANNEL_INDICATOR_NAME   "::Indicators\\TOOLKIT\\CHANNELS.ex4"

 sinput string                CHANNEL_TITLE           = "ПАРАМЕТРЫ КАНАЛЬНОГО ИНДИКАТОРА «CHANNELS»"; // .
  input ENUM_TIMEFRAMES       CHANNEL_TIMEFRAME       = PERIOD_H1;            // Таймфрейм. Период графика индикатора
  input int                   CHANNEL_MIN_LENGTH      =  100;                 // Минимальная длина канала [в барах]
  input double                CHANNEL_MIN_RANGE_ATR   =  1.0;                 // Минимальная  ширина канала [ATR]
  input double                CHANNEL_MAX_RANGE_ATR   = 10.0;                 // Максимальная ширина канала [ATR]
  input int                   CHANNEL_MIN_DISTANCE    =    1;                 // Минимальная дистанция между каналами [в барах]
  input int                   CHANNEL_ATR_PERIOD      =  100;                 // Период индикатора ATR
  input ENUM_PRICE2           CHANNEL_PRICE           = PRICE2_CLOSE_CLOSE;   // Использовать цену для расчетов каналов
  input bool                  CHANNEL_HORIZONTAL_ONLY = false;                // Строить только горизонтальные каналы


...


//+------------------------------------------------------------------+
//| Возвращает значение индикатора "CHANNELS"
//+------------------------------------------------------------------+
double iCustomChannel(int index)
{
// Получим значение пользовательского индикатора
   return(iCustom(_Symbol, 
      CHANNEL_TIMEFRAME       ,  // Таймфрейм. Период графика индикатора
      CHANNEL_INDICATOR_NAME  ,  // "::Indicators\\TOOLKIT\\CHANNELS.ex4"
      CHANNEL_MIN_LENGTH      ,  // Миним. длина канала (в барах)
      CHANNEL_MIN_RANGE_ATR   ,  // Минимальная  ширина канала (относ. ATR)
      CHANNEL_MAX_RANGE_ATR   ,  // Максимальная ширина канала (относ. ATR)
      CHANNEL_MIN_DISTANCE    ,  // Миним. расстояние между каналами (в барах)
      CHANNEL_ATR_PERIOD      ,  // Период индикатора ATR
      CHANNEL_PRICE           ,  // Использовать цены для расчетов каналов: [0]High/Low или [1]Close/Close 
      CHANNEL_HORIZONTAL_ONLY ,  // Строить только горизонтальные каналы
      index                   ,  // Индекс линии индикатора [0..1] 0-верхняя граница; 1-нижняя граница;
      1));                       // Индекс получаемого значения из индикаторного буфера 
}


Прошу ответить, спасибо заранее.
 
myzrov:

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

 Проиллюстрировать можете? 
 
taraПроиллюстрировать можете? 

Оказывается, я неточно обозначил проблему - на самом деле нет никакого расхождения между результатами тестирования и оптимизации. Проблема лежит в другой плоскости.
Просто параметры, полученные во время оптимизации не переносятся надежно (т.е. с первой попытки) во входные параметры для тестирования. Этого невозможно достичь ни при двойном клике мыши на выбранной строчке в таблице результатов оптимизации, ни через контекстное меню "Установить входные параметры". Вчера я был невнимателен и еще не знал, что тестер стратегий просто не всегда переносит выбранные параметры для тестирования, поэтому и результаты тестирования и оптимизации получались разные. Тестировались на самом деле другие параметры, а не те которые были получены во время оптимизации. И только сегодня, когда меня попросили проиллюстрировать непонятное поведение тестера стратегий, я обратил внимание на эту ошибку, которая повторяется надежно и в разных терминалах. Вот поэтому тему надо было бы назвать так: "ТЕСТЕР СТРАТЕГИЙ. Не переносит с первой попытки результаты оптимизации во входные параметры".

Сегодня установить входные параметры сразу после оптимизации мне удается только со второй попытки. Потом эта ошибка пропадает. Меня попросили проиллюстрировать, но не подсказали как. Наверное это можно сделать, если только записать видео, но уж больно не хочется на это отвлекаться, да и опыта нет. Может быть есть другой простой способ иллюстрации или все-таки поверите на слово?
 
myzrov:

Оказывается, я неточно обозначил проблему - на самом деле нет никакого расхождения между результатами тестирования и оптимизации. Проблема лежит в другой плоскости.
Просто параметры, полученные во время оптимизации не переносятся надежно (т.е. с первой попытки) во входные параметры для тестирования. Этого невозможно достичь ни при двойном клике мыши на выбранной строчке в таблице результатов оптимизации, ни через контекстное меню "Установить входные параметры". Вчера я был невнимателен и еще не знал, что тестер стратегий просто не всегда переносит выбранные параметры для тестирования, поэтому и результаты тестирования и оптимизации получались разные. Тестировались на самом деле другие параметры, а не те которые были получены во время оптимизации. И только сегодня, когда меня попросили проиллюстрировать непонятное поведение тестера стратегий, я обратил внимание на эту ошибку, которая повторяется надежно и в разных терминалах. Вот поэтому тему надо было бы назвать так: "ТЕСТЕР СТРАТЕГИЙ. Не переносит с первой попытки результаты оптимизации во входные параметры".

Сегодня установить входные параметры сразу после оптимизации мне удается только со второй попытки. Потом эта ошибка пропадает. Меня попросили проиллюстрировать, но не подсказали как. Наверное это можно сделать, если только записать видео, но уж больно не хочется на это отвлекаться, да и опыта нет. Может быть есть другой простой способ иллюстрации или все-таки поверите на слово?







Тоже самое с некоторого времени наблюдаю у себя. Данные из результатов оптимизации переносятся во внешние параметры эксперта со второй попытки.
 
khorosh:
Тоже самое с некоторого времени наблюдаю у себя. Данные из результатов оптимизации переносятся во внешние параметры эксперта со второй попытки.
Какой билд ?
 
alexloz: Какой билд ?
О программе...
 
alexloz:
Какой билд ?
840.
 
Проверим
 
Renat:
Проверим
Подтверждаю факт. У меня такое обычно происходит в том случае, когда прогон не дошел до конца, а остановлен пользователем кнопкой Стоп. При выборе новой строки с первого раза параметры не устанавливаются, требуется несколько повторов.
В случае прохода до конца повторить ситуацию мне не удалось. Даю прогону закончиться "естественным путем", и глюков не наблюдаю.
 
На 845 билде то же самое.
 
granit77:
У меня такое обычно происходит в том случае, когда прогон не дошел до конца, а остановлен пользователем кнопкой Стоп.

Ценное замечание.

Воспроизвели и исправили

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