Советник не открывает ордера в нескольких графиках

 

Я в учебных целях написал советник, совершенно примитивный.

На отдельном графике он работает замечательно.

Но если он присоединен к нескольким графикам, то, пока открыт ордер в одном (любом) графике, в других ордера не открываются, а должны бы.

В чем дело не понимаю. 

Может где-то птичку недоставил в МТ4 ил ещё что-то подобное.

Вопрос: что нужно сделать, чтобы советник открывал ордера во всех графиках к которым присоединен? 

 
altiba:

Я в учебных целях написал советник, совершенно примитивный.

На отдельном графике он работает замечательно.

Но если он присоединен к нескольким графикам, то, пока открыт ордер в одном (любом) графике, в других ордера не открываются, а должны бы.

В чем дело не понимаю. 

Может где-то птичку недоставил в МТ4 ил ещё что-то подобное.

Вопрос: что нужно сделать, чтобы советник открывал ордера во всех графиках к которым присоединен? 


Судя по сказанному открывает он только по одному ордеру?

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

 
ktest0:


Судя по сказанному открывает он только по одному ордеру?

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


Наверно скелет был из стандартных советников терминала, если да то нужно подправить пару строк, было - #define MAGICMA  20050610, ты ее удали,

а в основных переменных добавь - extern double MAGIC   = 20050610; и на каждом графике поменяй цифры (что бы маджик был разный)... Вроде все... 

 
LeksusMt4:


Наверно скелет был из стандартных советников терминала, если да то нужно подправить пару строк, было - #define MAGICMA  20050610, ты ее удали,

а в основных переменных добавь - extern double MAGIC   = 20050610; и на каждом графике поменяй цифры (что бы маджик был разный)... Вроде все... 


А как вы узнали имена его переменных, которые используются в его составном советнике?

о_О 

 
ЛексусМТ4 доставляет.
 

Кто поможет? Советник в тестере работает нормально а на графике открыл 1 сделку на прошлой неделе ,а на этой неделе молчит,когда в тестере на этой неделе открыл 4 сделки. В чем проблема? вот код  

  extern int    tp    = 20;

 extern int    sl    = 40;

 extern double Lot   =0.01;

 extern double Magic =2345;

 //---- indicator parameters

extern int MA_Period=13;

extern int MA_Shift=2;

extern int NA_Period=11; 

extern int NA_Shift=0;

double A,B,C,D,AN,BN,CN,DN;

int start()

  {

  A=iMA(NULL,0,MA_Period,MA_Shift,MODE_SMA,PRICE_CLOSE,0);

  B=iMA(NULL,0,MA_Period,MA_Shift,MODE_SMA,PRICE_CLOSE,1);

  C=iMA(NULL,0,MA_Period,MA_Shift,MODE_SMA,PRICE_CLOSE,2);

  D=iMA(NULL,0,MA_Period,MA_Shift,MODE_SMA,PRICE_CLOSE,3);

  AN=iMA(NULL,0,NA_Period,NA_Shift,MODE_SMA,PRICE_CLOSE,0);

  BN=iMA(NULL,0,NA_Period,NA_Shift,MODE_SMA,PRICE_CLOSE,1);

  CN=iMA(NULL,0,NA_Period,NA_Shift,MODE_SMA,PRICE_CLOSE,2);

  DN=iMA(NULL,0,NA_Period,NA_Shift,MODE_SMA,PRICE_CLOSE,3);

  

       if(OrdersTotal()==0 && A < AN && D > DN )  

 OrderSend(Symbol(),OP_BUY,Lot,Ask,0,Ask-sl*Point,Ask+tp*Point,"",Magic,0,Blue); 

   

        if(OrdersTotal()==0 && A > AN && D < DN )                                   

 OrderSend(Symbol(),OP_SELL,Lot,Bid,0,Bid+sl*Point,Bid-tp*Point,"",Magic,0,Red); 

 

    return(0);

    }

 
pavlicos:

Кто поможет? Советник в тестере работает нормально а на графике открыл 1 сделку на прошлой неделе ,а на этой неделе молчит,когда в тестере на этой неделе открыл 4 сделки. В чем проблема? вот код  

  


А почему Вы решили что Ваш код должен открывать ордера на разных инструментах.

Только один ордер на все советники 

 

Спасибо за ответ. Хорошо  было  бы  если бы один ордер на всех а у меня на 4 графика,целую неделю ни одной сделки.

Подскажите пожалуйста  где ошибка

 
pavlicos:

Спасибо за ответ. Хорошо  было  бы  если бы один ордер на всех а у меня на 4 графика,целую неделю ни одной сделки.

Подскажите пожалуйста  где ошибка


А Вы логи смотрели?
 

"логи" Вы имейте виду в журнале? нет ошибок , кажется что он и не пытался открыть,хотя условии совпали несколько раз

 
Vinin:

А Вы логи смотрели?


Ну причем здесь логи то? Код советника приведен. Там ясно видно условие "если нет рабочих ордеров". Если есть хотя бы один рабочий ордер (даже отложенный), то советник не откроет ордер при соблюдении всех остальных условий.

To pavlicos: для лечения добавления пары строк будет недостаточно. Чтобы иметь представление о предстоящей работе, почитайте вот это.