Разработчикам. Ошибка работы тестера или действительно результаты тестирования по контрольным точкам нельзя воспринимать серьезно!

 

Не срабатывает тейк профит. Хронология ниже:

Прошу обратить внимание на тот момент, что бар, на котором должен был сработать tp: 1.9730, уже давно закончился!

2008.09.15 02:06:08 2007.01.03 06:00 z_0011 GBPUSD,H1: Время открытия бара = 2007.01.03 06:00:00
2008.09.15 02:06:03 2007.01.03 05:00 z_0011 GBPUSD,H1: Время открытия бара = 2007.01.03 05:00:00
2008.09.15 02:06:01 2007.01.03 04:50 Tester: order #2, sell 1.00 GBPUSD is opened at 1.9750
2008.09.15 02:05:55 2007.01.03 04:00 z_0011 GBPUSD,H1: Время открытия бара = 2007.01.03 04:00:00
2008.09.15 02:05:47 2007.01.03 03:00 z_0011 GBPUSD,H1: Время открытия бара = 2007.01.03 03:00:00
2008.09.15 02:05:40 2007.01.03 02:00 z_0011 GBPUSD,H1: Время открытия бара = 2007.01.03 02:00:00
2008.09.15 02:05:32 2007.01.03 01:00 z_0011 GBPUSD,H1: Время открытия бара = 2007.01.03 01:00:00
2008.09.15 02:05:30 2007.01.03 00:45 z_0011 GBPUSD,H1: modify #2 sell limit 1.00 GBPUSD at 1.9750 sl: 1.9800 tp: 1.9730 ok

P.S. Тестирование проводилось на котировках History Center.

 
Тестрирование по контрольным точкам нельзя воспринимать всерьез и следует применять только для отладки советников.
 

Тестирование по контрольным точкам нужно позарез!

Нужно прежде всего мне для приблизительной оценки качества идеи заложенной в советник.

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

Пошел дальше искать где собака порылась и вот что нашел:

После того бара, где должен был закрыться ордер(2008.09.15 02:06:03 2007.01.03 05:00 z_0011 GBPUSD,H1: Время открытия бара = 2007.01.03 05:00:00) стал редактировать последующие бары, чтобы не дать ему возможность закрыться. И вот что получилось:

Этот ордер закрылся ажно в:

2008.09.15 03:45:05 2007.01.03 12:00 Tester: take profit #2 at 1.9730 (1.9626 / 1.9629) то есть в 12 часов вместо 5.

Вывод: закрытие ордера в тестере в режиме по котрольным точкам НЕ РАБОТАЕТ корректно и зависит последуещей истории!

 

А я тестил по ценам открытия))


Разработчики обратите внимание на эту ошибку при тестировании на контрольных точках.

 
VBAG:

Прошу обратить внимание на тот момент, что бар, на котором должен был сработать tp: 1.9730, уже давно закончился!

2008.09.15 02:06:08 2007.01.03 06:00 z_0011 GBPUSD,H1: Время открытия бара = 2007.01.03 06:00:00
2008.09.15 02:06:03 2007.01.03 05:00 z_0011 GBPUSD,H1: Время открытия бара = 2007.01.03 05:00:00
2008.09.15 02:06:01 2007.01.03 04:50 Tester: order #2, sell 1.00 GBPUSD is opened at 1.9750
2008.09.15 02:05:55 2007.01.03 04:00 z_0011 GBPUSD,H1: Время открытия бара = 2007.01.03 04:00:00
2008.09.15 02:05:47 2007.01.03 03:00 z_0011 GBPUSD,H1: Время открытия бара = 2007.01.03 03:00:00
2008.09.15 02:05:40 2007.01.03 02:00 z_0011 GBPUSD,H1: Время открытия бара = 2007.01.03 02:00:00
2008.09.15 02:05:32 2007.01.03 01:00 z_0011 GBPUSD,H1: Время открытия бара = 2007.01.03 01:00:00
2008.09.15 02:05:30 2007.01.03 00:45 z_0011 GBPUSD,H1: modify #2 sell limit 1.00 GBPUSD at 1.9750 sl: 1.9800 tp: 1.9730 ok

P.S. Тестирование проводилось на котировках History Center.

Для проверки Вашего сообщения был написан простой эксперт:


//+------------------------------------------------------------------+
//|                                       ChecktakeProfitTrigger.mq4 |
//|                      Copyright © 2008, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net/"
 
extern datetime startDate = D'2007.01.03 00:00';
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   if (Symbol()!="GBPUSD") Print("GBPUSD need for checking!");
   if (Period()!= PERIOD_H1) Print("Change Timeframe!");
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
  static int ord = 0;
//----
   if (TimeCurrent() < startDate) return;
   if (ord ==0)
      {
      int ticket = OrderSend(Symbol(),OP_SELLLIMIT,0.1,1.9750, 3, 1.9800, 1.9730,"selllimit" );
      if (ticket > 0) ord++;
      }
      
//----
   return(0);
  }
//+------------------------------------------------------------------+

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




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

 

Добился того, что у меня в советнике стало работать нормально(ну в смысле давно смирился с тем, что на следующем баре срабатывает).
Просто удалил все результаты предыдущих тестов и пересчитал заново все hst, хотя все это делал буквально за несколько часв до глюка.(но потом правда коннектился к серверу MQ)

Спасибо, Rosh за участие и совет. Но причина такого поведения осталась мне так и не ясна, чтобы гарантировано её избежать в будущем.

 
VBAG писал (а) >>

Добился того, что у меня в советнике стало работать нормально(ну в смысле давно смирился с тем, что на следующем баре срабатывает).
Просто удалил все результаты предыдущих тестов и пересчитал заново все hst, хотя все это делал буквально за несколько часв до глюка.(но потом правда коннектился к серверу MQ)

Спасибо, Rosh за участие и совет. Но причина такого поведения осталась мне так и не ясна, чтобы гарантировано её избежать в будущем.

Причина в расхождении истории на разных таймфреймах. Обязательно работайте с абсолютно точно синхронизированной историей.

 
Renat писал (а) >>

Причина в расхождении истории на разных таймфреймах. Обязательно работайте с абсолютно точно синхронизированной историей.

Это очень обнадеживает, что несмотря на большую занятость(подготовка к чемпионату, работа на новой платформрй)вы находите время заниматься поддержкой MT4.

Хочу лишь сообщить, что после публикации Rosh-ем проверочного советника, я сразу же прогнал его ничего не меняя в дирректории MT и обнаружил отсутствие этого "эффекта". Это свидетельствует о том, что расхождение истории на разных таймфреймах не может быть тому причиной. Воспроизвести это явление больше не удалось, да и желания особого нет. Мне очевидно, что это происходит по причине не совсем корректной деятельности тестера по контрольным точкам. Думаю, что разработчики понимают в чем суть проблемы - это смое главное.

 
VBAG писал (а) >>

Это очень обнадеживает, что несмотря на большую занятость(подготовка к чемпионату, работа на новой платформрй)вы находите время заниматься поддержкой MT4.

Хочу лишь сообщить, что после публикации Rosh-ем проверочного советника, я сразу же прогнал его ничего не меняя в дирректории MT и обнаружил отсутствие этого "эффекта". Это свидетельствует о том, что расхождение истории на разных таймфреймах не может быть тому причиной. Воспроизвести это явление больше не удалось, да и желания особого нет. Мне очевидно, что это происходит по причине не совсем корректной деятельности тестера по контрольным точкам. Думаю, что разработчики понимают в чем суть проблемы - это смое главное.

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

Потом вдруг эффект "сам по себе пропадает"...


ps: запустили бы тот же самый тест на полных тиках и сразу бы увидели десятки тысяч расхождений в генерации тиковых последовательностей

 
Renat писал (а) >>

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

Потом вдруг эффект "сам по себе пропадает"...

ps: запустили бы тот же самый тест на полных тиках и сразу бы увидели десятки тысяч расхождений в генерации тиковых последовательностей

Уважамый, Ренат!

Совершенно не собирался спорить. Расхождений в данных не было(выше я упоминал как все делал). У меня их в принципе не бывает, я специально за этим слежу!

Моя цель была обратить внимание на возможность появления такого факта как показано на картинке:

А если такое возможно(я ведь это не сам руками нарисовал) - значит очевидно, что идеология тестера по контрольным точкам имеет явный прокол.

Об этом так же свидетельствует факт запаздывания срабатывания прорисовок стрелок и их датирование. (Ну, это старая проблема, но корни у неё те же)

 
Renat писал (а) >>

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

Потом вдруг эффект "сам по себе пропадает"...

ps: запустили бы тот же самый тест на полных тиках и сразу бы увидели десятки тысяч расхождений в генерации тиковых последовательностей

Уважаемый Ренат,

.

я открывал похожую тему - TakeProfit / StopLoss срабатывает на следующем баре.

Тема 'Неточность в работе тестера в режиме [по ценам открытия]'. Ответа не было.

.

Зачастую, к сожалению, пишешь всякую фигню из-за собственных ошибок...

Но в тесте по ценам открытия было что-то нечисто...

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