Не тогует советник на реале

 

Я написал простого советника по простой стратегии! В тестере всё гладко! Но реальном счёте в реальном времени пропускает сигналы на открытие! Почему так происходит??? Ведь в тестере за этот же период все сигналы отработались правильно, а на реале они проигнорировались, и лог ошибок никаких не показал! ПОЧЕМУ!!! Може быть кто нибудь знает, почему??? Брокер Инстафорекс, центовый счет.

Может быть есть ошибка в коде??? Но в журнал ошибки не записывает!

Условия открытия:

if(Str(S_Step_F,S_Max_F,0)==OP_BUY && Str(S_Step_S,S_Max_S,0)==OP_BUY && Sar_Trend()<=Raznitca)Rinok="Trand UP";
if(Str(S_Step_F,S_Max_F,0)==OP_SELL && Str(S_Step_S,S_Max_S,0)==OP_SELL && Sar_Trend()<=Raznitca)Rinok="Trand DOWN";

Что нужно делать при условии:

if(Rinok=="Trand UP")
  {
   Close_SELLTR();
   Op=OP_BUY;
   TrendLots=CloseLots*DobLots; 
   if(CloseLots==0)TrendLots=Lots*DobLots;
   Tick++;
   if(Tick==1 && DobLots!=0)SendTrend(Op, TrendLots);
  }

 if(Rinok=="Trand DOWN")
  {
   Close_BUYTR();
   Op=OP_SELL;
   TrendLots=CloseLots*DobLots; 
   if(CloseLots==0)TrendLots=Lots*DobLots; 
   Tick++;
   if(Tick==1 && DobLots!=0)SendTrend(Op,TrendLots);
  }

Функция открытия:

//------------------------Функция открытия по тренду-----------------+ 
bool SendTrend(int Op, double Lots)
{
 int ticket; color Color; double Prise; string Coment;
 if(Op==OP_BUY){RefreshRates(); Color=DarkGreen; Prise=Ask; Coment="BUY по тренду";}
 if(Op==OP_SELL){RefreshRates(); Color=DarkViolet;  Prise=Bid; Coment="SELL по тренду";}
 ticket=OrderSend(Symbol(),Op,Lots,Prise,Slip,0,0,Coment,MAGIC,0,Color);
}     
 
Vadim.kz:

Я написал простого советника по простой стратегии! В тестере всё гладко! Но реальном счёте в реальном времени пропускает сигналы на открытие! Почему так происходит??? Ведь в тестере за этот же период все сигналы отработались правильно, а на реале они проигнорировались, и лог ошибок никаких не показал! ПОЧЕМУ!!! Може быть кто нибудь знает, почему??? Брокер Инстафорекс, центовый счет.

Может быть есть ошибка в коде??? Но в журнал ошибки не записывает!

Условия открытия:

Что нужно делать при условии:

Функция открытия:




Чтобы получить дополнительную информацию об ошибке, необходимо вызвать функцию GetLastError().

//------------------------Функция открытия по тренду-----------------+ 
bool SendTrend(int Op, double Lots)
{
 int ticket; color Color; double Prise; string Coment;
 if(Op==OP_BUY){RefreshRates(); Color=DarkGreen; Prise=Ask; Coment="BUY по тренду";}
 if(Op==OP_SELL){RefreshRates(); Color=DarkViolet;  Prise=Bid; Coment="SELL по тренду";}
 ticket=OrderSend(Symbol(),Op,Lots,Prise,Slip,0,0,Coment,MAGIC,0,Color);
   if(ticket<0)
       {
        Print("OrderSend failed with error #",GetLastError());
        return(0);
       }

}     

Как-то так

 
ticket=OrderSend(Symbol(),Op,Lots,Prise,Slip,0,0,Coment,MAGIC,0,Color);

Смучает значение Prise при открытиии ордера, получается запрашивается именно определенная цена, которая за доли секунды может измениться, попробуйте увеличить значение Slip, если поможет то дело в этом. В тестере ведь нет задержки (пинга к серверу), а на реале сами понимаете ...

И ещё на инсте на центе "своеобразный" лот, если в других ДЦ к примеру 0.01 то там это 0.1, хотя объём при открытии ордера одинаковый, попробуйте минимальный лот 0.1

 
BeerGod:

Смучает значение Prise при открытиии ордера, получается запрашивается именно определенная цена, которая за доли секунды может измениться, попробуйте увеличить значение Slip, если поможет то дело в этом. В тестере ведь нет задержки (пинга к серверу), а на реале сами понимаете ...

И ещё на инсте на центе "своеобразный" лот, если в других ДЦ к примеру 0.01 то там это 0.1, хотя объём при открытии ордера одинаковый, попробуйте минимальный лот 0.1


Значение Prise стоит равильное, так как ордер отькрывается по текушей цене на момент открытия ордера! И с лотом тоже всё впорядке! А вот со значением Slip у меня непонятки. В настройках стоит 5, и я не пойму, куда его регулировать?
Причина обращения: