подскажите пожалуйста

 

в MT4 выставлено два ордера, как сделать так, чтобы если 1 ордер сработал и взял профит то второй ордер автоматически удалился? если профита нет, то остался

 

ну если вопрос звучит так, то:



bool isCloseLastPosByTAKEPROFIT(string sy="", int op=-1, int mn=-1) {
datetime t;
double ocp, osl;
int dg, i, j=-1, k=OrdersHistoryTotal();

if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (t<OrderCloseTime()) {
t=OrderCloseTime();
j=i;
}
}
}
}
}
}
}
if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {

ocp=NormalizeDouble(OrderClosePrice(), dg);
osl=NormalizeDouble(OrderTakeProfit(), dg);
if ((OrderProfit()>0 || osl==ocp) ) return(True);
}
return(False);
}

 
gazprom:

в MT4 выставлено два ордера, как сделать так, чтобы если 1 ордер сработал и взял профит то второй ордер автоматически удалился? если профита нет, то остался


  если ордера однонаправленные, то через запоминание тикета ордера.  

если разнонаправленные - то можно обойтись разделением через тип ордера. 

если система упрощенная, то можно двум ордерам давать разные маджики.

 

короче вариантов много - выбирайте под свою задачу. 

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