Перестали работать нативные функции на недельном ТФ в МТ4 тестере стратегий. Билд 1350

 

Не работает только W1 - недельный таймфрейм и только в тестере стратегий. Тестовый код для воспроизведения проблемы:

#property strict

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit() {

   int bars=iBars(NULL,PERIOD_W1);
   double op=iCustom(NULL,PERIOD_W1,"Heiken Ashi",2,1);
   Print("   ***   bars = "+(string)bars+", op="+DoubleToStr(op,_Digits));
   
   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason) {
   
}
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick() {
   
   if (!IsNewBar()) return;
   int tf[9]={PERIOD_MN1,PERIOD_W1,PERIOD_D1,PERIOD_H4,PERIOD_H1,PERIOD_M30,PERIOD_M15,PERIOD_M5,PERIOD_M1};
   
   for (int i=0; i<9; i++) {
      int bars=iBars(NULL,tf[i]);
      double op=iCustom(NULL,tf[i],"Heiken Ashi",2,1);
      Print("   ***   bars = "+(string)bars+", op="+DoubleToStr(op,_Digits)+", TF="+(string)tf[i]);
   }
   
}
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//| Bar refreshing function                                          |
//| true - new bar opened, false - not opened                        |
//+------------------------------------------------------------------+
bool IsNewBar() {

static datetime SavedTime=iTime(NULL,PERIOD_M1,0);
       datetime curTime  =iTime(NULL,PERIOD_M1,0);

   if (curTime>SavedTime) {
         SavedTime=curTime;
         return(true);
   }
   else return(false);
}
//+------------------------------------------------------------------+

Результат:


 
Alexander Sevastyanov:

Не работает только W1 - недельный таймфрейм и только в тестере стратегий. Тестовый код для воспроизведения проблемы:

Результат:

Что Вы называете термином

нативные функции ?


Где об этом почитать в документации MQL ?

 
zvezdocheet #:
Что Вы называете термином

нативные функции ?


Где об этом почитать в документации MQL ?

Нативные - родные, встроенные в МТ4.

По сути это технические индикаторы.

Технические индикаторы - Справочник MQL4
Технические индикаторы - Справочник MQL4
  • docs.mql4.com
Технические индикаторы - Справочник MQL4
 

Действительно, воспроизводится. Если добавить вывод кода ошибки:

   for (int i=0; i<9; i++) 
   {
ResetLastError();   
      int bars=iBars(NULL,tf[i]);
Print("error: ", GetLastError());   
      
      double op=iCustom(NULL,tf[i],"Heiken Ashi",2,1);
      Print("   ***   bars = "+(string)bars+", op="+DoubleToStr(op,_Digits)+", TF="+(string)tf[i]);
   }

то получим:

2021.11.07 18:45:25.274 2021.11.01 00:06:00  Test_Expert AUDUSD,H1:    ***   bars = 1001, op=0.75106, TF=1440
2021.11.07 18:45:25.252 2021.11.01 00:06:00  Test_Expert AUDUSD,H1: error: 4066
2021.11.07 18:45:23.251 2021.11.01 00:06:00  Test_Expert AUDUSD,H1:    ***   bars = 0, op=0.00000, TF=10080
2021.11.07 18:45:23.240 2021.11.01 00:06:00  Test_Expert AUDUSD,H1: error: 4074
2021.11.07 18:45:23.240 2021.11.01 00:06:00  Test_Expert AUDUSD,H1:    ***   bars = 274, op=0.73586, TF=43200
2021.11.07 18:45:23.218 2021.11.01 00:06:00  Test_Expert AUDUSD,H1: error: 4066

То есть месячный и часовой ТФ, хоть и выдают правильные показания, но все равно "в состоянии обновления", а вот для недельного почему то "не хватает памяти".

 
Ihor Herasko #:

Действительно, воспроизводится. 

Игорь, как думаете, долго ждать пока пофиксят? Предыдущего билда у меня нет, откатиться некуда, а функционал нужен.

Надо было в эту тему написать, быстрее бы внимание обратили.

Новая версия платформы MetaTrader 4 build 1350
Новая версия платформы MetaTrader 4 build 1350
  • 2021.10.12
  • www.mql5.com
В четверг 14 октября 2021 года будет выпущено обновление MetaTrader 4. В нем исправлен ряд ошибок и повышена стабильность работы платформы...
 
Alexander Sevastyanov #:

Игорь, как думаете, долго ждать пока пофиксят? Предыдущего билда у меня нет, откатиться некуда, а функционал нужен.

Надо было в эту тему написать, быстрее бы внимание обратили.

Вообще не берусь прогнозировать. С форексом в этом плане полегче. )) 

 

Прочитайте статью "Особенности и ограничения тестирования торговых стратегий в MetaTrader 4"

Там явно написано

Если активно используются другие символы и периоды, то желательно их предварительно закачать на всю доступную глубину

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

Вот часть моего лога

2021.11.10 07:24:45.955 2018.10.03 02:53:00  TestBars GBPUSD,M1:    ***   bars = 153, op=1.29929, TF=1
2021.11.10 07:24:45.955 2018.10.03 02:53:00  TestBars GBPUSD,M1:    ***   bars = 0, op=0.00000, TF=5
2021.11.10 07:24:45.955 2018.10.03 02:53:00  TestBars GBPUSD,M1:    ***   bars = 0, op=0.00000, TF=15
2021.11.10 07:24:45.955 2018.10.03 02:53:00  TestBars GBPUSD,M1:    ***   bars = 0, op=0.00000, TF=30
2021.11.10 07:24:45.955 2018.10.03 02:53:00  TestBars GBPUSD,M1:    ***   bars = 0, op=0.00000, TF=60
2021.11.10 07:24:45.955 2018.10.03 02:53:00  TestBars GBPUSD,M1:    ***   bars = 13600, op=1.29818, TF=240
2021.11.10 07:24:45.955 2018.10.03 02:53:00  TestBars GBPUSD,M1:    ***   bars = 1244, op=1.30727, TF=1440
2021.11.10 07:24:45.955 2018.10.03 02:53:00  TestBars GBPUSD,M1:    ***   bars = 913, op=1.30385, TF=10080
2021.11.10 07:24:45.955 2018.10.03 02:53:00  TestBars GBPUSD,M1:    ***   bars = 219, op=1.31460, TF=43200

Как видите, недельки и месяцовки нормально обрабатываются.

Особенности и ограничения тестирования торговых стратегий в MetaTrader 4
Особенности и ограничения тестирования торговых стратегий в MetaTrader 4
  • www.mql5.com
Эта статья поможет больше узнать об особенностях и ограничениях тестера торговых стратегий в MetaTrader 4...
 
Slava #:

Прочитайте статью "Особенности и ограничения тестирования торговых стратегий в MetaTrader 4"

Там явно написано

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

Вот часть моего лога

Как видите, недельки и месяцовки нормально обрабатываются.

Да, о закачке всегда помню. Но вот не помогает. 

Здесь видно, что все ТФ отдают данные. Все, кроме W1. Причем W1 - текущий открытый график.

Код:

#property strict

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit() 
{

   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason) {
   
}
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick() 
{
   int tf[9]={PERIOD_MN1,PERIOD_W1,PERIOD_D1,PERIOD_H4,PERIOD_H1,PERIOD_M30,PERIOD_M15,PERIOD_M5,PERIOD_M1};
   
   for (int i=0; i<9; i++) 
   {
ResetLastError();   
      int bars=iBars(NULL,tf[i]);
Print("error: ", GetLastError());   
      
      Print("   ***   bars = "+(string)bars+", TF="+(string)tf[i]);
   }
   
   ExpertRemove();
}

Полный лог:

0       08:46:49.273    Tester: template 'D:\ForexDC\AlpariDemo\templates\tester.tpl' applied
0       08:46:51.293    TestGenerator: current spread 29 used
2       08:46:51.313    2021.11.01 00:00:00  Test_Expert test started
0       08:46:51.313    2021.11.01 00:05:00  Test_Expert GBPUSD,M1: error: 0
0       08:46:51.313    2021.11.01 00:05:00  Test_Expert GBPUSD,M1:    ***   bars = 274, TF=43200
0       08:46:51.313    2021.11.01 00:05:00  Test_Expert GBPUSD,M1: error: 4074
0       08:46:51.313    2021.11.01 00:05:00  Test_Expert GBPUSD,M1:    ***   bars = 0, TF=10080
0       08:46:51.313    2021.11.01 00:05:00  Test_Expert GBPUSD,M1: error: 0
0       08:46:51.313    2021.11.01 00:05:00  Test_Expert GBPUSD,M1:    ***   bars = 1001, TF=1440
0       08:46:51.313    2021.11.01 00:05:00  Test_Expert GBPUSD,M1: error: 0
0       08:46:51.313    2021.11.01 00:05:00  Test_Expert GBPUSD,M1:    ***   bars = 1001, TF=240
0       08:46:51.313    2021.11.01 00:05:00  Test_Expert GBPUSD,M1: error: 0
0       08:46:51.313    2021.11.01 00:05:00  Test_Expert GBPUSD,M1:    ***   bars = 1001, TF=60
0       08:46:51.313    2021.11.01 00:05:00  Test_Expert GBPUSD,M1: error: 0
0       08:46:51.313    2021.11.01 00:05:00  Test_Expert GBPUSD,M1:    ***   bars = 1001, TF=30
0       08:46:51.313    2021.11.01 00:05:00  Test_Expert GBPUSD,M1: error: 0
0       08:46:51.313    2021.11.01 00:05:00  Test_Expert GBPUSD,M1:    ***   bars = 1001, TF=15
0       08:46:51.313    2021.11.01 00:05:00  Test_Expert GBPUSD,M1: error: 0
0       08:46:51.313    2021.11.01 00:05:00  Test_Expert GBPUSD,M1:    ***   bars = 1002, TF=5
0       08:46:51.313    2021.11.01 00:05:00  Test_Expert GBPUSD,M1: error: 0
0       08:46:51.313    2021.11.01 00:05:00  Test_Expert GBPUSD,M1:    ***   bars = 1002, TF=1
2       08:46:51.313    2021.11.01 00:05:00  Test_Expert GBPUSD,M1: ExpertRemove function called
0       08:46:51.313    GBPUSD,M1: 1 tick events (1 bars, 79855 bar states) processed in 0:00:00.000 (total time 0:00:02.028)
 
Slava #:

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

Вот часть моего лога

Как видите, недельки и месяцовки нормально обрабатываются.

Спасибо за уделенное внимание.

История была закачана по всем ТФ от М1 до MN1. И прикрепленный к чарту советник показывал корректные данные, т.е. 510 баров на W1 ТФ.

Это видно в верхней части моего скриншота из первого сообщения. Но на недельках ничего не считывалось. Перезагрузка ПК и терминала ничего не меняла.

Мои выводы подтверждаются тестом Игоря Герасько. Видно что у него были постоянные ошибки 4066 и 4074.

Сейчас этого бага не наблюдаю на том же билде трминала.

У Игоря недельки по-прежнему не работают с ошибкой 4074, на других ТФ ошибка 4066 у него исчезла.

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