全てのポジションに対してブレイクイーブンをかけています。(SELECT_BY_POS時マジックナンバー未指定)
全ポジションマジックナンバーを変えて発注してます。
if(BuyTicket==0){ BuyTicket = OrderSend(Symbol(),OP_BUYLIMIT,MarketInfo(Symbol(),MODE_MINLOT), getAsk(Symbol())-500*_Point,30, 0,0, "逆指値買いです",11111,0,Green); } //マジックナンバー:11111 if(SellPendingTicket==0){ SellPendingTicket = OrderSend(Symbol(),OP_SELLSTOP,MarketInfo(Symbol(),MODE_MINLOT), getBid(Symbol())-500*_Point,30, 0,0, "逆指値売りです",22222,0,Green); } //マジックナンバー:22222 if(BuyPendingTicket==0){ BuyPendingTicket = OrderSend(Symbol(),OP_BUYSTOP,MarketInfo(Symbol(),MODE_MINLOT), getAsk(Symbol())+500*_Point,30, 0,0, "逆指値買いです",333333,0,Green); } //マジックナンバー:333333 if(SellTicket==0){ SellTicket = OrderSend(Symbol(),OP_SELLLIMIT,MarketInfo(Symbol(),MODE_MINLOT), getBid(Symbol())+500*_Point,30, 0,0, "逆指値売りです",44444,0,Green); } //マジックナンバー:44444 //処理時、条件式に注文時のマジックナンバーを入れていない if(OrdersTotal()>0){ for(int i=0;i< OrdersTotal();i++){ OrderSelect(i,SELECT_BY_POS); //ブレイクイーブン執行 BreakEven(OrderTicket(),rateTakeProfit/2); } }
全てにブレイクイーブンが適用されます。
//マジックナンバーを条件式に追加
if(OrdersTotal()>0){ for(int i=0;i< OrdersTotal();i++){ OrderSelect(i,SELECT_BY_POS); if(OrderMagicNumber()==333333){ BreakEven(OrderTicket(),rateTakeProfit/2); } } }
//マジックナンバーを追加したもののみブレイクイーブンが執行されている。