Code:
for(int c=0;c<OrdersTotal();c++) {
OrderSelect(c,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic) {
if(OrderType()==Op_BuyStop) int b=OrderTicket();
if(OrderType()==Op_SellStop) int s=OrderTicket(); } }
OrderSelect(b,SELECT_BY_TICKET);
if(OrderType()==Op_Buy) {OrderDelete(s);s=0;}
OrderSelect(s,SELECT_BY_TICKET);
if(OrderType()==Op_Sell) {OrderDelete(b);b=0;}
integers b & s should be assigned ticket numbers when placing the buy and sell stop orders, and need code to reassign ticket number values when re-initializing the ea. When the buy or sell order is closed, one should probably use OrderCloseTime()>0 to reset b or s to zero, similar to the following:
Code:
OrderSelect(b,SELECT_BY_TICKET);
if(OrderCloseTime()>0) {b=0;}
OrderSelect(s,SELECT_BY_TICKET);
if(OrderCloseTime()>0) {s=0;}
hope this helps somewhat