Эксперт не сделал на исторических данных то, что сделал в реальном режиме времени..

 

Забавно :)

У меня эксперт на демо-счете открыл позицию, к примеру 22.02.07… я решил запустить тестер и проверить, а будет ли эта самая позиция открыта экспертом на истории.. Оказалось, что нет. Эксперт на истории эту сделку не произвел. Никакие настройки не менялись.

Как так может быть? Реальные данные, которая на следующий день стали историей вовсе не вошли в эту историю. Получается разные данные? Если так, то что толку, что мы на истории тестируем и оптимизируем советники, в итого результаты оптимизации и выводы, которые мы делаем при тестирование будут не правдоподобны..

В чем тут дело?


 
Каков вопрос, таков и ответ. Почитай здесь же, скажем, в https://www.mql5.com/ru/articles/mt4/ , статьи об экспертах и тестировании торговых систем, и многое станет ясно. Здесь есть не одна причина, по которой так может быть. Есть настройки эксперта (какие точки тестируются, в каком режиме). Есть особенности таких "индикаторов" как ZigZag как их перерисовываемость. Есть просто нарушения в логике эксперта, которые не видны явно.
 
Бывает хуже, бывает лучше, бывает один в один. Все зависит от советника и методики его тестирования.

Есть инструмент. Например, топор. Мастер сможет с его помощью и карандаш очинить и изразцы вырезать. Обыватель-же - только покалечиться. :(

Тут головой думать надо...
 

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

Если только, как сказал Mathemat нужно поработать над настройками эксперта, который по разному может себя вести в реале и на итории... Кто-то занет, что это за настройки могут быть?





 
atser:

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

Если только, как сказал Mathemat нужно поработать над настройками эксперта, который по разному может себя вести в реале и на итории... Кто-то занет, что это за настройки могут быть?

Mathemat в принципе все уже объяснил, ошибка в коде эксперта, например используемый индикатор в эксперте может "заглядывать в будующее истории" , а в текущем времени "будущего еще нет", ну и такдалее, в общем нужно разбиратся с экспертом, а что-бы лучьше понимать процессы происходящие в момент тестирования, стоит почитать здесь 'Тестирование экспертов в клиентском терминале MetaTrader 4. Взгляд изнутри' и здесь 'Мой первый "грааль"' , 'Рекомендации по не использованию тестера стратегий MetaTrader 4'. В общем на эту тему уже очень много написано....
 
xeon:

Mathemat в принципе все уже объяснил, ошибка в коде эксперта, например используемый индикатор в эксперте может "заглядывать в будующее истории" , а в текущем времени "будущего еще нет", ну и такдалее, в общем нужно разбиратся с экспертом, а что-бы лучьше понимать процессы происходящие в момент тестирования, стоит почитать здесь 'Тестирование экспертов в клиентском терминале MetaTrader 4. Взгляд изнутри' и здесь 'Мой первый "грааль"' , 'Рекомендации по не использованию тестера стратегий MetaTrader 4'. В общем на эту тему уже очень много написано....
А Вы можете привести ссылку на MQL4 код индикатора, который заглядывает в будущее и позволяет использовать это в эксперте?
 
Renat писал (а):
xeon:

Mathemat в принципе все уже объяснил, ошибка в коде эксперта, например используемый индикатор в эксперте может "заглядывать в будующее истории" , а в текущем времени "будущего еще нет", ну и такдалее, в общем нужно разбиратся с экспертом, а что-бы лучьше понимать процессы происходящие в момент тестирования, стоит почитать здесь 'Тестирование экспертов в клиентском терминале MetaTrader 4. Взгляд изнутри' и здесь 'Мой первый "грааль"' , 'Рекомендации по не использованию тестера стратегий MetaTrader 4'. В общем на эту тему уже очень много написано....
А Вы можете привести ссылку на MQL4 код индикатора, который заглядывает в будущее и позволяет использовать это в эксперте?

у меня есть такой эксперт, могу выслать на емайл
 
Renat писал (а):
xeon:

Mathemat в принципе все уже объяснил, ошибка в коде эксперта, например используемый индикатор в эксперте может "заглядывать в будующее истории" , а в текущем времени "будущего еще нет", ну и такдалее, в общем нужно разбиратся с экспертом, а что-бы лучьше понимать процессы происходящие в момент тестирования, стоит почитать здесь 'Тестирование экспертов в клиентском терминале MetaTrader 4. Взгляд изнутри' и здесь 'Мой первый "грааль"' , 'Рекомендации по не использованию тестера стратегий MetaTrader 4'. В общем на эту тему уже очень много написано....
А Вы можете привести ссылку на MQL4 код индикатора, который заглядывает в будущее и позволяет использовать это в эксперте?


Если есть такая возможность то это хорошо :-)


Ренат а будет ли работать вот такой способ

допустим текущий бар 0-й D1 на 02.02.2006

в переменные datetime ltDatCurBeg, datetime ltDatCurEnd положит 03.02.2006 - 10.02.2006

// Получим по указанному диапазону HIG 
double PeriodBarsHIG( string sSYMBOL, datetime ltDatCurBeg, datetime ltDatCurEnd )
{
   int iBarsDayBeg = iBarShift(sSYMBOL, 0 , ltDatCurBeg,false );  // индекс первого  бара  
   int iBarsDayEnd = iBarShift(sSYMBOL, 0 , ltDatCurEnd,false );  // индекс последнего бара  
   int indxHIGDay  = iHighest( sSYMBOL, 0 , MODE_HIGH, (iBarsDayBeg - iBarsDayEnd) , iBarsDayEnd) ; // получаем индекс HIG бара  
   double HIGDay   = iHigh(sSYMBOL,0, indxHIGDay ); // Получим HIG максимального бара  
   return(HIGDay );
}
 
// Получим по указанному диапазону LOW
double PeriodBarsLOW( string sSYMBOL,datetime ltDatCurBeg, datetime ltDatCurEnd )
{
   int iBarsDayBeg = iBarShift(sSYMBOL, 0 , ltDatCurBeg,false );  // индекс первого  бара  
   int iBarsDayEnd = iBarShift(sSYMBOL, 0 , ltDatCurEnd,false );  // индекс последнего бара  
   int indxLowDay   = iLowest( sSYMBOL, 0 , MODE_LOW, (iBarsDayBeg - iBarsDayEnd) , iBarsDayEnd) ; // получаем индекс HIG бара  
   double LOWDay    = iLow(sSYMBOL,0, indxLowDay ); // Получим LOW  максимального бара  
   return(LOWDay );
}


если это не работает граальщикам и подгонщикам это отбивает охоту дурить народ


мне это надо было для одного эксперта которому фактически все равно - т е не подгонка а ускорение теста
одно дело 300 отложек другое 20 - 50 - 100
он просто лепит отложки - просто хотелось бы использовать этот вариант для ускорения тестирования
в настоящий момент приходится постоянно считать и выставлять слишком много отложек - потом удалять -
в общем время тестирования увеличивается
 
YuraZ:

Ренат а будет ли работать вот такой способ

допустим текущий бар 0-й D1 на 02.02.2006

в переменные datetime ltDatCurBeg, datetime ltDatCurEnd положит 03.02.2006 - 10.02.2006

Вы не можете запросить данные будущих периодов таким образом, так как тестер не позволит этого сделать. Вы можете обратиться к любому таймфрейму используемого символа и тестер абсолютно точно на 100% моделирует цены Open/High/Low/Close этих таймфреймов. Объем только примерно моделируется.

То есть, сидя на М5 можно запросить данные Daily и получить абсолютно верные значения бара OHLC на дейли. Вы не получите финальный High/Low/Close дня, пока не дойдете в моделировании до конца дня.

Есть конечно возможность заглянуть путем прямого чтения *.HST файлов, но это уже другая тема. Мы специально позаботились, чтобы штатным образом нельзя было заглянуть в будущее.
 
Об "индикаторах", заглядывающих в будущее. ZigZag ("стандартный" от MQ) на истории выглядит так, как он выглядел бы, если бы в момент формирования собственного излома наперед знал несколько баров в недалеком будущем. По-моему, об этом известно всем, кто хотя бы некоторое время наблюдал за его поведением он-лайн. Это и есть то же самое, что "перерисовываемость" этого "индикатора". nen на ониксе вроде бы писал о неперерисовываемом ZigZag'е, кстати, и на него было бы очень любопытно посмотреть.

Поэтому в тестере сигналы системы, делающей входы/выходы на изломах ZigZag'a, будут на истории великолепны, а он-лайн все будет не так. Правильное тестирование такой стратегии должно быть основано на полном пересчете этого "индикатора" с нуля для каждого заданного момента времени в прошлом, а не на статичных его значениях, полученных из функции iCustom(..., "ZigZag",...) . Ну, может, и не на полном, но все же существенном.

Renat писал (а):
Мы специально позаботились, чтобы штатным образом нельзя было заглянуть в будущее.


Вообще говоря, понятно, почему ZigZag включен в стандартную поставку только и именно как пользовательский "индикатор".
 
Mathemat:
Об "индикаторах", заглядывающих в будущее. ZigZag ("стандартный" от MQ) на истории выглядит так, как он выглядел бы, если бы в момент формирования собственного излома наперед знал бы несколько баров в недалеком будущем. По-моему, об этом известно всем, кто хотя бы некоторое время наблюдал за его поведением он-лайн. Это и есть то же самое, что "перерисовываемость" этого "индикатора".

Поэтому в тестере сигналы системы, делающей входы/выходы на изломах ZigZag'a, будут на истории великолепны, а он-лайн все будет не так. Правильное тестирование такой стратегии должно быть основано на полном пересчете этого "индикатора" с нуля для каждого заданного момента времени в прошлом, а не на статичных его значениях, полученных из функции iCustom(..., "ZigZag",...) . Ну, может, и не на полном, но все же существенном.

Renat писал (а):
Мы специально позаботились, чтобы штатным образом нельзя было заглянуть в будущее.


Вообще говоря, понятно, почему ZigZag включен в стандартную поставку только и именно как пользовательский "индикатор".

Вот тут я промолчать не могу . Все вопросы снимутся после прочтения этих тем:
Снова про индикаторы в Экспертах - вопрос к разработчикам
Когда на самом деле срабатывает эксперт?
Обратите внимание на дату топиков -больше года прошло, а мифы все еще живы.
Причина обращения: