Тестер стратегий жестко врет (пропускает добрую половину баров)

 

Написал простой советник для проверки своей теории:

void OnTick()
  {
   Print(TimeMinute(Time[0]));
  }

Запустил терминал МТ4, нажал F2 (закачал историю котировок), запустил в тестере стратегий советника на М5.

Ожидал увидеть след. последовательную картинку в журнале: 0 5 10 15 20 25 30 35 40 45 50 55 0, т.е. минуты открытия баров.

В итоге в журнале мог наблюдать следующее:

2016.03.27 11:11:16.215 2016.01.15 12:55  TestTick EURUSD,M5: 55

2016.03.27 11:11:15.951 2016.01.14 09:15  TestTick EURUSD,M5: 15

 Т.е. добрую половину баров за 14.01.2016 тестер пропустил и следующий тик был уже 15.01.2016 аж в 12:55 по времени.

Прокрутил это тестирование на периоде в 3 месяца везде одна и та же картина, тестер пропускает бары, например:

2016.03.27 11:11:24.530 2016.03.07 23:31  TestTick EURUSD,M5: 30

а следующий тик уже 2016.03.27 11:11:26.601 2016.03.23 23:56  TestTick EURUSD,M5: 55

куда он дел котировки в период с 08.03.2016 по 27.03.2016, тупо пропустил 19 дней что ли ??? 

Файлы:
test.png  15 kb
 
Сработала защита от ду неправильных действий пользователя, которые могут привести к непреднамеренному пожиранию свободного пространства жесткого диска.
 
Karputov Vladimir:
Сработала защита от ду неправильных действий пользователя, которые могут привести к непреднамеренному пожиранию свободного пространства жесткого диска.
Поясните пожалуйста. В чем проблема? Почему тестер стратегий делает пропуски???
 
ProDeveloper777:
Поясните пожалуйста. В чем проблема? Почему тестер стратегий делает пропуски???

Я же говорил: терминал защищается от Вас:

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

Тестер стратегий жестко врет (пропускает добрую половину баров)

Karputov Vladimir, 2016.03.27 10:30

Сработала защита от ду неправильных действий пользователя, которые могут привести к непреднамеренному пожиранию свободного пространства жесткого диска.
В реальных условиях торговли, представьте, какие размеры лог-файлов Вы сгенерируете, если будете применять такой подход в программировании?
 
Karputov Vladimir:

Я же говорил: терминал защищается от Вас:


Т.е. на самом деле внутри все нормально, просто он не все сообщения выводит в журнал???
 
ProDeveloper777:
Т.е. на самом деле внутри все нормально, просто он не все сообщения выводит в журнал???
Да, если пытаться насиловать терминал  - то есть пытаться на каждом тике принтовать.
 
Karputov Vladimir:
Да, если пытаться насиловать терминал  - то есть пытаться на каждом тике принтовать.
Я на каждом тике проверяю условие TimeHour(Time[0]) >= 10 && TimeHour(Time[0]) <= 23 , после того как его добавил , советник перестал открывать позиции, после чего я решил проверить через Print(TimeHour(Time[0])) что же там внутри на самом деле и обнаружил что половину баров тестер пропускает.

 
ProDeveloper777:
Я на каждом тике проверяю условие TimeHour(Time[0]) >= 10 && TimeHour(Time[0]) <= 23 , после того как его добавил , советник перестал открывать позиции, после чего я решил проверить через Print(TimeHour(Time[0])) что же там внутри на самом деле и обнаружил что половину баров тестер пропускает.

Это не условие. Поэтому и ошибка. Условие выглядит так:

void OnTick(void)
  {
   if(TimeHour(Time[0])>=10 && TimeHour(Time[0])<=23)
     {
      // I am here!
     }
  }
 
Karputov Vladimir:

Это не условие. Поэтому и ошибка. Условие выглядит так:

так и есть, просто само условие скинул
 
Вам нужно проводить отладку и контролировать действия своего советника. НО: пошаговая отладка и отладка на истории доступна только прогрессивным пользователям, которые используют MetaTrader 5. Вам же остаётся мучится с отладкой online.
 
Karputov Vladimir:
Вам нужно проводить отладку и контролировать действия своего советника. НО: пошаговая отладка и отладка на истории доступна только прогрессивным пользователям, которые используют MetaTrader 5. Вам же остаётся мучится с отладкой online.
Согласен удручает то, что в MT4 до сих пор нет отладки на истории.