POS決済処理の時にマジックナンバーを未指定の動作

全てのポジションに対してブレイクイーブンをかけています。(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);
		}
	}
}

//マジックナンバーを追加したもののみブレイクイーブンが執行されている。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする