MT5で指値注文を行う時に、注文価格とStop Loss, Take Profitが満たしている必要がある条件を記します。おそらく、MQL5のOrderSend関数で注文を出すときも同様の条件かと思います。
以下は買い注文を前提としていますが、売り注文のときは大小関係を逆にすれば成り立つでしょう。
Buy Limit注文の場合
- 注文価格 < 現在の買い気配値
- Stop Loss < 注文価格
- Take Profit > 注文価格
つまり、次の条件を満たす必要があります。
Stop Loss < 注文価格 < Take Profit・現在の買い気配値
なお、OANDAの場合は上記の不等号を満たす時に0.5 pips以上空いている必要があります(以下も同様)。今よりも少し価格は下がるが、その後反転するという見立ての時に使うのが良いでしょう。
Buy Stop注文の場合
- 注文価格 > 現在の買い気配値
- Stop Loss < 注文価格
- Take Profit > 注文価格
まとめると、次の条件を満たす必要があります。
Stop Loss・現在の買い気配値 < 注文価格 < Take Profit
今よりも価格がしばらく上昇していくという見立ての時に使うのが良いでしょう。
Buy Stop Limit注文の場合
- 注文価格 > 現在の買い気配値
- Stop Limit指値 < 注文価格(Stop Limit指値の設定が必須)
- Take Profit > Stop Limit指値
まとめると、次の条件を満たす必要があります。
Stop Limit指値 < 現在の買い気配値 < 注文価格
なお、Take ProfitはStop Limit指値より大きければ、注文価格や現在の買い気配値との大小関係に特に制約はないようです。また、MT5の新規注文画面に色々な値を入れて試した限りでは、Stop Lossに何か値をセットすると注文ボタンが無効になったので、0(未設定)のままにしておきましょう。