Не работает программа в реальной торговле, не пойму почему!!!

 
//+------------------------------------------------------------------+
//|                                                       MA8-13.mq4 |
//|                      Copyright © 2008, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
 
//---- input parameters
extern int ExtPeriod1=8;
extern int ExtPeriod2=13;
int start()
   {
   static datetime PrevTime=0;
   double Ma8Current,Ma8Previous,Ma8Previous2;
   double Ma13Current,Ma13Previous,Ma13Previous2;
   bool IsCrossDown,IsCrossUp;
   if(PrevTime==Time[0]) return(0);
   PrevTime=Time[0];
   Ma8Current=iMA(NULL,0,ExtPeriod1,0,MODE_EMA,PRICE_OPEN,0);
   Ma8Previous=iMA(NULL,0,ExtPeriod1,0,MODE_EMA,PRICE_OPEN,1);
   Ma8Previous2=iMA(NULL,0,ExtPeriod1,0,MODE_EMA,PRICE_OPEN,2);
   Ma13Current=iMA(NULL,0,ExtPeriod2,0,MODE_EMA,PRICE_OPEN,0);
   Ma13Previous=iMA(NULL,0,ExtPeriod2,0,MODE_EMA,PRICE_OPEN,1);
   Ma13Previous2=iMA(NULL,0,ExtPeriod2,0,MODE_EMA,PRICE_OPEN,1);
   
   IsCrossDown=(Ma8Current<Ma13Current && Ma8Previous>=Ma13Previous && Ma8Previous2>Ma13Previous2);
   IsCrossUp=(Ma8Current>Ma13Current && Ma8Previous<=Ma13Previous && Ma8Previous2<Ma13Previous2);
   
   if(IsCrossDown)
    {
     for(int i=OrdersTotal()-1;i>=0;i--)         
     {
      OrderSelect(i,SELECT_BY_POS, MODE_TRADES);
      if(OrderSymbol()==Symbol() && OrderType()==OP_BUY)
      OrderClose(OrderTicket(),OrderLots(),Bid,0);
       }
       OrderSend(Symbol(),OP_SELL,0.11,Bid,0,0.0,0.0);
   }
   if(IsCrossUp)
    {
    for(i=OrdersTotal()-1;i>=0; i--)
     {
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(OrderSymbol()==Symbol()&& OrderType()==OP_SELL)
      OrderClose(OrderTicket(),OrderLots(),Ask,0);
      }
     OrderSend(Symbol(),OP_BUY,0.11,Ask,0,0.0,0.0);
     }
     return(0);
   }
Ошибок при компилировании нет, в реальной торговле программа почему-то участия не принимает!
Файлы:
ma8r13.mq4  2 kb
 

для начала очепятка тута

Ma13Previous2=iMA(NULL,0,ExtPeriod2,0,MODE_EMA,PRICE_OPEN,1);
 
я бы поставил
 
Ma13Previous2=iMA(NULL,0,ExtPeriod2,0,MODE_EMA,PRICE_OPEN,2);
 

а в четвёртых, слипаж надо ставить больше нуля. Я обычно ставлю 3.

OrderSend(Symbol(),OP_SELL,0.11,Bid,3,0.0,0.0);
 
во-вторых, в тестере нормально торгует...
 
KimIV:
во-вторых, в тестере нормально торгует...

В тестере и у меня нормально торгует, но не торгует в реале!!!
 
В журнале при тестировании он постоянно пишет TestGenerator: unmatched data error (high value 796.5 at 2007/10/31 20:00 796.7 mismatched), потом еще пару подобных сообщений и после начинает торговлю.
 
ViktorTrade:
В журнале при тестировании он постоянно пишет TestGenerator: unmatched data error (high value 796.5 at 2007/10/31 20:00 796.7 mismatched), потом еще пару подобных сообщений и после начинает торговлю.
Тогда, Тебе сюда :) https://forum.mql4.com/ru/10790
 
ViktorTrade:
KimIV:
во-вторых, в тестере нормально торгует...

В тестере и у меня нормально торгует, но не торгует в реале!!!
А что в логах пишет ?
 
ViktorTrade:
KimIV:
во-вторых, в тестере нормально торгует...

В тестере и у меня нормально торгует, но не торгует в реале!!!
если торгует в тесте но не торгует в реале

1- на демо торгует? если нет ищите причину в логах

2 - посмотреть что пишет в логах

3 - не формируются условия для открытия

if(IsCrossDown)
    {
     for(int i=OrdersTotal()-1;i>=0;i--)         
     {
      OrderSelect(i,SELECT_BY_POS, MODE_TRADES);
      if(OrderSymbol()==Symbol() && OrderType()==OP_BUY)
      OrderClose(OrderTicket(),OrderLots(),Bid,0);
       }
       OrderSend(Symbol(),OP_SELL,0.11,Bid,0,0.0,0.0);
       Print( " условие созрело пишем в лог "); // и если эта надпись появиться в логе тогда надо точно разбираться в чем  проблема
       int Err = 0;
       Err = GetLastError();
       if (Err !=0 )
       {
          Print( " ошибка с кодом "+Err ); // заодно выясним какой код ошибки дает 
       }

   }



p.s.
часто советник просто уносит линию баланса ракетой в небо
а на реале сливает

---

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

а так же там где вероятность ошибки высокая, например пытаясь создавать на графике объект при этом с большой долей вероятности именно он там уже есть,
это сэкономит ваше время.
 
sprite:
ViktorTrade:
В журнале при тестировании он постоянно пишет TestGenerator: unmatched data error (high value 796.5 at 2007/10/31 20:00 796.7 mismatched), потом еще пару подобных сообщений и после начинает торговлю.
Тогда, Тебе сюда :) 'TestGenerator: unmatched data error'


Спасибо!

Период_конвертер, как правельно пишется этот индикатор?

 
ViktorTrade:
sprite:
ViktorTrade:
В журнале при тестировании он постоянно пишет TestGenerator: unmatched data error (high value 796.5 at 2007/10/31 20:00 796.7 mismatched), потом еще пару подобных сообщений и после начинает торговлю.
Тогда, Тебе сюда :) 'TestGenerator: unmatched data error'


Спасибо!

Период_конвертер, как правельно пишется этот индикатор?

У меня так : _MakeTimeFrames
Причина обращения: