Тестер отказывается тестировать с 1999 года.

 

Разработчики, вопрос к Вам.


Имею минутную историю с 1999 года по EURUSD. Из M1 получены все остальные таймфремы. Взял для тестирования штатный эксперт Moving Average и немного его изменив пытаюсь протестировать на M15 c 1999 года.


Сначала оптимизировал параметры эксперта на всем участке с 1999.01.01 по 2009.08.02, метод по открытым барам. Подставил параметры и решил на этом же промежутке протестировать в потиковом моделировании. В результате в папке истории тестера был создан файл ветом более 6Gb и началось тестирование с заданного времени. Тест резко оборвался на 2001.12.11 17:45, вывелся отчёт. В логах тестера никаких ошибок.

Тестирование проводил на 220 билде, как наиболее стабильном. отчёт прилагаю.

подумалось может глюк билда, протестировал на 225 билде, результат тот же. отчёт прилагаю.


Код эксперта:

//+------------------------------------------------------------------+
//|                                               Moving Average.mq4 |
//|                      Copyright © 2005, MetaQuotes Software Corp. |
//|                                       https://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#define MAGICMA  20050610

extern double MovingPeriod       = 12;
extern double MovingShift        = 6;
extern int    Price              = 0;

//+------------------------------------------------------------------+
//| Calculate open positions                                         |
//+------------------------------------------------------------------+
int CalculateCurrentOrders(string symbol){
   int buys=0,sells=0;
      for(int i=0;i<OrdersTotal();i++){
         if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
            if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA){
               if(OrderType()==OP_BUY)  buys++;
               if(OrderType()==OP_SELL) sells++;
            }
         }
//---- return orders volume
      if(buys>0) return(buys);
      else       return(-sells);
      }
//+------------------------------------------------------------------+
//| Check for open order conditions                                  |
//+------------------------------------------------------------------+
void CheckForOpen(){
   double ma;
   int    res;
   if(Volume[0]>1) return;
   ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,Price,0);
   if(Open[1]>ma && Close[1]<ma){ res=OrderSend(Symbol(),OP_SELL,1,Bid,3,0,0,"",MAGICMA,0,Red); return;  }
   if(Open[1]<ma && Close[1]>ma){ res=OrderSend(Symbol(),OP_BUY,1,Ask,3,0,0,"",MAGICMA,0,Blue); return;  }
  }
//+------------------------------------------------------------------+
//| Check for close order conditions                                 |
//+------------------------------------------------------------------+
void CheckForClose(){
   double ma;
   if(Volume[0]>1) return;
   ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,Price,0);
   for(int i=0;i<OrdersTotal();i++){
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)        break;
      if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) continue;
      if(OrderType()==OP_BUY){  if(Open[1]>ma && Close[1]<ma) OrderClose(OrderTicket(),OrderLots(),Bid,3,White); break; }
      if(OrderType()==OP_SELL){ if(Open[1]<ma && Close[1]>ma) OrderClose(OrderTicket(),OrderLots(),Ask,3,White); break; }
     }
  }
//+------------------------------------------------------------------+
//| Start function                                                   |
//+------------------------------------------------------------------+
void start(){
   if(Bars<100 || IsTradeAllowed()==false) return;
   if(CalculateCurrentOrders(Symbol())==0) CheckForOpen(); else CheckForClose();
  }

Подумал, а может история глюкнула в том месте, потому как использовал одну и ту же историю и в 220 и 225 билдах. Решил повторить процедуру на других валютных парах USDCHF, GBPUSD, USDJPY результат одинаковый, оптимизация проходит нормально, тест по барам проходит нормально, а вот по тикам максимум за 2 года можно протестировать только.


Что за ограничение и как с ним бороться.

Файлы:
 

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

Файлы:
 
Да и момент интересен касаемо отображения минуток. У меня почему-то они отображаются только до определённой давности. История закачана-перезакачана. И скрипт, использующий минутную историю, не хочет отображаться. Например по фунту на данный момент по 06.08
 
sayfuji >>:
Да и момент интересен касаемо отображения минуток. У меня почему-то они отображаются только до определённой давности. История закачана-перезакачана. И скрипт, использующий минутную историю, не хочет отображаться. Например по фунту на данный момент по 06.08

Тут 2 варианта. 1-й количество баров в окне задаётся в настройках терминала. 2-й неправильно написан скрипт, идет прямое обращение к видимым барам, а не к тайм серии например.

 
Вот это ценная инфа. Спс.
 
HIDDEN >>:

Разработчики, вопрос к Вам.


Имею минутную историю с 1999 года по EURUSD. Из M1 получены все остальные таймфремы. Взял для тестирования штатный эксперт Moving Average и немного его изменив пытаюсь протестировать на M15 c 1999 года.


Сначала оптимизировал параметры эксперта на всем участке с 1999.01.01 по 2009.08.02, метод по открытым барам. Подставил параметры и решил на этом же промежутке протестировать в потиковом моделировании. В результате в папке истории тестера был создан файл ветом более 6Gb и началось тестирование с заданного времени. Тест резко оборвался на 2001.12.11 17:45, вывелся отчёт. В логах тестера никаких ошибок.

Тестирование проводил на 220 билде, как наиболее стабильном. отчёт прилагаю.

подумалось может глюк билда, протестировал на 225 билде, результат тот же. отчёт прилагаю.


Код эксперта:

Подумал, а может история глюкнула в том месте, потому как использовал одну и ту же историю и в 220 и 225 билдах. Решил повторить процедуру на других валютных парах USDCHF, GBPUSD, USDJPY результат одинаковый, оптимизация проходит нормально, тест по барам проходит нормально, а вот по тикам максимум за 2 года можно протестировать только.


Что за ограничение и как с ним бороться.

Попробуйте сдвинуться во времени, например, начать с 2002.01.01. Если тормознет на 2005 году, то можно предположить, что разработчики МТ работают с позицией файла как с long, отсюда и предел в 2ГБ. Если так, пишите им.

 
OneDepo >>:

Попробуйте сдвинуться во времени, например, начать с 2002.01.01. Если тормознет на 2005 году, то можно предположить, что разработчики МТ работают с позицией файла как с long, отсюда и предел в 2ГБ. Если так, пишите им.

Сдвиг проверил. Начал тест с 2001.12.12 дотянули до начала 2005 года.

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


Теряется смысл иметь историю такого объёма, если нельзя по всей по ней провести тест.

 
HIDDEN >>:

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


У вас в двух архивах стоят разные параметры

в StrategyTester_220f225.zip Parameters MovingPeriod=94; MovingShift=99; Price=2

в StrategyTester.zip Parameters MovingPeriod=59; MovingShift=89; Price=2

 
Рошид, ответь пожалуйста как быть в моей ситуации?
 
Рашид не знает, так как не может объять необъятное. Я не вникал, не было времени пока, к сожалению.
 
Rosh >>:
Рашид не знает, так как не может объять необъятное. Я не вникал, не было времени пока, к сожалению.

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


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

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