MARKET
9/25 8:27 時点|ドル円158.78▼-7 pips|ドル円 予想レンジ158.41 〜 159.23|ドル円 上の節目158.90▲|ドル円 下の節目157.80▼|ユーロドル1.1378▼-2 pips|ユーロドル 予想レンジ1.1351 〜 1.1408|ユーロドル 上の節目1.1403▲|ユーロドル 下の節目1.1359▼|きょうの指標重要指標なし|

OrderModify ― 持っている注文の損切り・利確等を変える|MQL4/MQL5リファレンス

MQLリファレンス›関数売買OrderModify
MQL4売買要書き換え(MQL5)

OrderModify持っている注文の損切り・利確等を変える

保有中の注文の損切り・利確・指値価格・有効期限を後から変える関数。OrderSendと同じく、MQL5では別の書き方になる。

1書式

bool OrderModify(
   int      ticket,       // 変えたい注文の番号
   double   price,        // 指値・逆指値の価格(成行の保有中は現在の建値のまま)
   double   stoploss,
   double   takeprofit,
   datetime expiration,
   color    arrow_color=clrNONE
);

先にOrderSelectで対象の注文を選んでおく必要がある。

2引数

引数 内容
ticket OrderSelectで選んだ注文の番号
price 指値・逆指値の注文価格。成行で保有中の注文はそのままの値を渡す
stoploss / takeprofit 変更後の損切り・利確(0で解除)
expiration 予約注文の有効期限(成行では使わない)

3戻り値

成功でtrue。失敗でfalse、理由はGetLastError()で調べる。損切りが業者の最小距離(stoplevel)より近いと拒否されるのはOrderSendと同じ。

4実際に動かした結果

保有中の損切りを近づけようとして拒否される

現在値 いまのSL 新SL 3pips ✕ 拒否(近すぎる) 新SL 10pips ✓ 変更できる ← 業者の最小距離の内側

既存の建値・現在値との位置関係で、狭めようとした損切りが最小距離の内側に入ると拒否される。

✓ 実測

保有中の買い注文の損切りを、現在値に近づけて変更しようとした場合の挙動:

条件 結果
新しいSLを現在値から3pipsに指定 OrderModify が false・エラー130
新しいSLを現在値から10pipsに指定 正常に変更

5使用例:損切りを引き上げる

void TightenStop(int ticket, double newSl)
{
   if(!OrderSelect(ticket, SELECT_BY_TICKET)) return;
   if(!OrderModify(ticket, OrderOpenPrice(), newSl, OrderTakeProfit(), 0))
   {
      int err = GetLastError();
      Print("損切りの変更に失敗 err=", err);
   }
}

MetaEditorでコンパイル0エラー・0警告を確認済み。

6MQL4→MQL5の違い

🔁 差分

MQL5では、既存の注文を変える処理もOrderSendと同じMqlTradeRequest構造体を使う(action = TRADE_ACTION_SLTPを指定する)。「新規で出す」「条件を変える」を同じ関数の引数の違いだけで扱う設計になっている。

7よくある罠

⚠ 実務で踏んだもの
  • 拒否されたときに、それ以上動かず「損切りの無い注文」のまま持ち続けてしまう実装は危険。拒否されたら距離を離してもう一度試す、もしくは諦めて成行で決済する、という手順を必ず入れる。
  • priceに成行の保有中の値を渡すとき、建値をそのまま渡さないと意図せず指値注文として扱われることがあるため、OrderOpenPrice()を渡すのが安全。

8関連する関数

公式リファレンス:MQL4 / MQL5(英語・要約は転載しません)

MORNING BRIEF平日 毎朝7時までに更新

今日はどこを見ればいいか。

ドル円とユーロドルの主要ライン・予想高値安値を、平日の朝に図1枚にまとめています。

朝刊を見る→
9/25 8:27 時点ドル円158.78▼-7 pipsドル円 予想レンジ158.41 〜 159.23ドル円 上の節目158.90▲ドル円 下の節目157.80▼ユーロドル1.1378▼-2 pipsユーロドル 予想レンジ1.1351 〜 1.1408ユーロドル 上の節目1.1403▲ユーロドル 下の節目1.1359▼きょうの指標重要指標なし
REI-FX&BO OFFICIAL LINE

ツールのダウンロードパスワードは
公式LINEで、すぐ届きます。

友だち追加の自動返信でパスワードをお送りします。
新しいツールの公開や、検証でわかったことも先にお知らせします。

全ツールのパスワード新作ツールをいち早く配信は月1〜2回だけ
LINEで友だち追加 パスワードを受け取る ›

追加後にひとことメッセージをいただけると、ツールづくりの参考にします。