ペンディングオーダーとは、指定した価格に達した場合に実行される注文のことです。つまり、ペンディングオーダーを設定することで、特定の価格レベルでポジションを開くように指示することができます。予め決めた価格に達すれば、自動的にトレードポジションがオープンします。
EAには6種類のオーダータイプがあります:
- タイプ0 = 買い
- タイプ1 = 売り
- タイプ2 = バイリミット
- タイプ3 = セリミット
- タイプ4 = バイストップ
- タイプ5 = セルストップ
この中で、ペンディングオーダーとして利用できるのは4種類です。それでは、ペンディングオーダーの種類を一つずつ見ていきましょう。
1. バイリミット
バイリミットオーダーは、現在の価格よりも下で実行される注文です。このタイプのオーダーは、価格が下がったときにポジションを開くために使用します。
OrderSend(Symbol(), 2, start_lot, Ask - Distance * Point, 3, Ask - Distance * Point - SL * Point, Ask - Distance * Point + TP * Point, "", Magic, 0, Blue);
2. セリミット
セリミットオーダーは、現在の価格よりも上で実行される注文です。このタイプのオーダーは、価格が上昇したときに利益を得るために使用します。
OrderSend(Symbol(), 3, start_lot, Bid + Distance * Point, 3, Bid + Distance * Point + SL * Point, Bid + Distance * Point - TP * Point, "", Magic, 0, Red);
3. バイストップ
バイストップオーダーは、現在の価格よりも上で実行される注文です。これは、価格が上昇すると予想される際に使用されます。
OrderSend(Symbol(), 4, start_lot, Ask + Distance * Point, 3, Ask + Distance * Point - SL * Point, Ask + Distance * Point + TP * Point, "", Magic, 0, Blue);
4. セルストップ
セルストップオーダーは、現在の価格よりも下で実行される注文です。このオーダーは、価格が下がると予想される際に使用されます。
OrderSend(Symbol(), 5, start_lot, Bid - Distance * Point, 3, Bid - Distance * Point + SL * Point, Bid - Distance * Point - TP * Point, "", Magic, 0, Red);
さて、これらの4種類のペンディングオーダーを使って、EAを簡単に作成することができます。次に、フィルターとしてのオーダータイプを計算する関数を用意しました。
int totalorder(int m){ int total = 0; for (int i = 0; i < OrdersTotal(); i++) { if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue; if (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic || OrderType() != m) continue; total++; } return (total); }
EAはこのように動作します:

この記事が役立つことを願っています。コメントお待ちしております!
利益が出ますように、頑張ってください!良い一日を!