Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Nefedov Kirill
2888
Nefedov Kirill  

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


Имею минутную историю с 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 года можно протестировать только.


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

Файлы:
Nefedov Kirill
2888
Nefedov Kirill  

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

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

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

Илья
2546
Илья  
Вот это ценная инфа. Спс.
Игорь
171
Игорь  
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ГБ. Если так, пишите им.

Nefedov Kirill
2888
Nefedov Kirill  
OneDepo >>:

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

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

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


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

Boris
503
Boris  
HIDDEN >>:

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


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

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

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

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

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


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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий