解決済み

両建てトラップ、決済時全キャンセルのコードを教えて下さい。

MetaTrader 4
ニックネーム未設定
2021/02/20 13:48
880

エントリー時逆指値両建てナンピントラップの仕組みを作りたいのですが、添付では片方にしか張られません。
どのように書き換えればいいでしょうか?
また、決済時に全注文をキャンセルする仕組みも入れたいです。
何卒ご教示のほどお願い致します。

両建てトラップ.zip

コメント

GogoJungle
2021/02/22 19:30

mq4ファイルを確認いたしました。

エントリ判定にて最大ポジション1のため、1つしかポジションを保有していない状況でございます。
下記条件を見直すことで、改善するかと存じます。

//エントリ判定
if((TotalNum<MaxPosition && Strtagy1==1 ))
{
	 EntryBuy=1;
}
else
if((TotalNum<MaxPosition && Strtagy1==-1 ))
{
	 EntrySell=1;
}

決済時に全注文をキャンセルする仕組みにつきましては、
下記のように ClosePosition の条件削除、および OrderDelete を追加することで可能かと存じます。

修正前

if(OrderType()==OP_SELL && (ClosePosition==-1 || ClosePosition==0 )) //売りポジションのクローズ
{
	 res=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),10,Silver);
}
else if(OrderType()==OP_BUY && (ClosePosition==1 || ClosePosition==0 ) ) //買いポジションのクローズ
{
	 res=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),10,Silver);
}

修正後

if(OrderType()==OP_SELL) //売りポジションのクローズ
{
	 res=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),10,Silver);
}
else if(OrderType()==OP_BUY) //買いポジションのクローズ
{
	 res=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),10,Silver);
}
else
{
	 res=OrderDelete(OrderTicket(),Silver);
}
ニックネーム未設定
2021/02/23 17:27

ご回答頂き有難うございます。
参考にさせて頂きます。

ニックネーム未設定
2021/02/23 17:28

わかりやすい回答ありがとうございます。

関連トピックス

検索結果がありません。

ノーコードで誰でも簡単EA開発!MQL言語学習にも使える! | GogoJungle

注目トピックス

検索結果がありません。