MT4でSL・TP注文を一括でキャンセルする方法

ST-TPデリートアイキャッチ
  • URLをコピーしました!

SL注文やTP注文を簡単に取り消す方法はありますか?

ホシノ

FXの不労所得だけで年収2000万を達成しました。
このお悩みに誠意をもって回答します。

この無料EA不労所得を得てます
テスト累計100年越え・リアル取引公開2020年~

BBF_MQL5-202401006
リアルトレード公開|EA BBF

このページでわかること・できること

〇SLとTP注文を一括で取消すスクリプトについて

〇スクリプトのダウンロード

〇スクリプトのインストールと使い方

目次

SLとTP注文を一括で取消すスクリプト|DeleteOrders

DeleteOrders

MT4用スクリプトのDeleteOrdersをチャート上で実行すれば、保有ポジションに設定されたSLとTP注文を一括で取消すことができる。
MT4用スクリプトDeleteOrdersは保有ポジションのSL・TP注文のみを処理し、指値逆指値注文には影響がない。

スクリプトを実行すると、すべてのSL・TP注文に対して処理される。同じプラットフォームであれば通貨ペア問わずにSL・TP注文は取り消される。 

SLとTPとは?

FX取引におけるSL(ストップロス)とTP(テイクプロフィット)は、リスク管理のための重要な注文方法だ。

  • SL(ストップロス): ストップロスは、取引が特定の損失額に達したときに自動的にポジションを閉じる注文で、予想外の変動などによる大きな損失を防ぐ。たとえば、買いポジションを保有している場合、価格があるレベルまで下がったら自動的に売るように設定する。
  • TP(テイクプロフィット): テイクプロフィットは、取引が目標の利益額に達したときに自動的にポジションを閉じる注文で、望んでいた利益を確保し、利益が減少するリスクを回避できる。たとえば、売りポジションを取っている場合、価格があるレベルまで下がったら自動的に買うよう設定する。

これらの注文は取引戦略の一環として使用され、感情に左右されずにリスク管理し、利益を確保するために有効となる。

DeleteOrdersのダウンロード

DeleteOrdersダウンロードはこちら

このリンクからDeleteOrdersがダウンロードできる。ファイルは.ex4で、MT4のデータフォルダにあるscriptへ移動してインストールする。

DeleteOrdersのインストール

DeleteOrdersをダウンロードしたら、MT4の「Scriptsフォルダ」へファイルを移動してインストールする。

ファイル>データフォルダを開く>MQL4>Scripts

スクリプトをScriptsフォルダへ移動し、MT4を再起動すればインストールが完了する。

インストールしたスクリプトはナビゲーターのスクリプトから呼び出しが可能となる。

DeleteOrdersナビゲーター画面
ナビゲーターからスクリプトを実行する

SL、TP注文を一括で削除する|DeleteOrdersの使い方

スクリプトの実行は「ダブルクリック」または「チャートへドラッグアンドドロップ」などで可能。
チャートへドロップする場合でも、どのチャートへドロップしてもすべての注文に対して処理がされる。

スクリプトが実行される前に、確認画面で実行を選択できる。

DeleteOrders確認画面
スクリプト実行前の確認は「はい」で実行「いいえ」で何もせず終了

使用上の注意

スクリプトはすべてのSL・TP注文を取消す。
指値、逆指値注文に対して処理はされない。
チャートへドロップして実行した場合でも対象のチャートのみに適用されるわけではなく、すべてのチャート、注文に対して処理が実行される。

SL、TP注文が一括でできるスクリプトを併用する

SetSL-TPで注文し、DeleteOrdersでキャンセルする

SL、TPを一括で注文するスクリプト「SetSL-TP」を合わせて使用すれば損切や利食いの設定がかなり楽になる。
「SetSL-TP」はすべてのオープンポジションに対してストップロスとテイクプロフィットを一括設定できるスクリプトだ。
設定値を0にすることで、ストップロスのみ注文、テイクプロフィットのみ注文と応用できる。
SetSL-TPでした注文を、DeleteOrdersで取消したり、SetSL-TPで再注文したりと細かな調整作業も簡単に行える。

DeleteOrdersのソースコード

//+------------------------------------------------------------------+
//|                                                 DeleteOrders.mq4 |
//|                                     Copyright 2024, FX-Bonus.net |
//|                                            https://fx-bonus.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright 2024, FX-Bonus.net"
#property link      "https://fx-bonus.net/"
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
{
    // オープンポジションがあるかどうかをチェック
    int ordersCount = CalculateCurrentOrders();
    if(ordersCount != 0)
    {
        // ダイアログを表示して実行を確認
        if(MessageBox("オープンポジションのS/LとT/P注文をキャンセルしますか?", "確認", MB_YESNO) == IDYES)
        {
            // 全てのストップロスとテイクプロフィット注文をキャンセルする
            CancelAllSLnTP();
        }
    }
    else
    {
        Print("オープンポジションがありません。キャンセルする注文はありません。");
    }
}

int CalculateCurrentOrders()
{
    int buys = 0, sells = 0;

    for(int i = 0; i < OrdersTotal(); i++)
    {
        if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
            break;

        if(OrderType() == OP_BUY)
            buys++;
        else if(OrderType() == OP_SELL)
            sells++;
    }

    if(buys > 0)
        return(buys);
    else
        return(-sells);
}

//+------------------------------------------------------------------+
//| ストップロスとテイクプロフィット注文をキャンセルする関数         |
//+------------------------------------------------------------------+
void CancelAllSLnTP()
{
    for(int i = 0; i < OrdersTotal(); i++)
    {
        if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
            break;

        // 注文を変更してストップロスとテイクプロフィットを0に設定する
        bool modifyResult = OrderModify(OrderTicket(), OrderOpenPrice(), 0, 0, 0, 0); 
        if(!modifyResult)
        {
            Print("注文のストップロスとテイクプロフィットのキャンセルに失敗しました ", OrderTicket());
        }
    }
}

ソースコードの概要

  1. CalculateCurrentOrders() 関数:
    • 現在のオープンポジションの数を計算する関数。
    • OrdersTotal() 関数を使用して、全てのオープンポジション数を取得し、その中から売買の数をカウントしている。
    • 売買の数を返すことで、後続の処理でオープンポジションの有無を確認する。
  2. CancelAllSLnTP() 関数:
    • オープンポジションの中からストップロスとテイクプロフィット注文をキャンセルする関数。
    • OrderSelect() 関数を使用してオープンポジションを順番に選択し、その注文に対して OrderModify() 関数を使用し S/L と T/P を0に設定している。
  3. OnStart() 関数:
    • スクリプトの開始時に実行される関数。
    • CalculateCurrentOrders() 関数を使用してオープンポジションの数を取得し、その数が0でなければ CancelAllSLnTP() 関数を呼び出して S/L と T/P をキャンセルする。
    • OnStart() 関数:
      • この関数はスクリプトのメインとなる関数。スクリプトを実行するとき最初に呼び出す。
      • CalculateCurrentOrders() 関数を使用してオープンポジションの数を取得し、それがゼロでない場合はキャンセルの確認をユーザーに求める。
      • MessageBox() 関数を使用して、ユーザーにキャンセルの確認を行い、IDYES(Yesボタンがクリックされた)の場合にのみ CancelAllSLnTP() 関数を呼び出して注文をキャンセルする。
      • オープンポジションがない場合は、単にメッセージを出力する。
    • CalculateCurrentOrders() 関数:
      • 現在のオープンポジションの数を計算する関数。
      • OrdersTotal() 関数を使用して全てのオープンポジションの数を取得し、買いポジションと売りポジションの数をカウントする。
    • CancelAllSLnTP() 関数:
      • オープンポジションの中からストップロスとテイクプロフィット注文をキャンセルする関数。
      • OrderSelect() 関数を使用してオープンポジションを順番に選択し、OrderModify() 関数を使用して S/L と T/P を0に設定する。

便利なMT4スクリプト集

まとめ

このページでは、MT4用のスクリプト「DeleteOrders」を使って、FX取引におけるSL(ストップロス)とTP(テイクプロフィット)注文を一括で取り消す方法について解説している。
スクリプトのダウンロードからインストール、具体的な使用方法までのステップを説明し、注意点や便利な応用方法についても触れる。
DeleteOrdersを実行すると、保有するすべてのポジションに設定されたSLとTP注文が通貨ペアに関係なく取り消されるため、取引の手間を大幅に削減できる。また、指値や逆指値注文には影響がないため、リスク管理が容易である。このスクリプトを使用することで、トレーダーは感情に左右されずに効率的なリスク管理が可能になる。併用できる他のスクリプトとして「SetSL-TP」も紹介されており、これを使えば全オープンポジションに一括でSLやTPを設定したり、設定値の調整も簡単に行える。

  • URLをコピーしました!
  • URLをコピーしました!

このEAを使って、将来の見通しが立ちました

収入を増やしたい、将来のための資産が欲しい、支払いに縛られない自由な生活がしたい

このEAを使うと将来が見通せます。

22年以上で無敗の安定取引。リスク0%運用も可能なロジック。年利100%越えの上級者向け取引も可能。

マネーマシンとして育て上げることで大きな不労所得を得られます。

BBF-Girl
ドリームEA_BBF 無料ダウンロード
BBF_MQL5-202401006
リアルトレード公開|EA BBF

ポジション監視の時間

集中力は続いてますか?


オートクローズツールを使ってポジション管理を自動化


自動ポジション管理だから万が一でも大丈夫

あなたは空いた時間を自由に、効率的に使えます

自動決済ルールは独自にカスタム可能

ストップ、リミット変更にも対応。

エントリー後のポジション管理をすべて自動化できるトレーディングサポートツール。

トレード中のちょっとした離席など、念のためセットといった使い方も可能。

MT4用自動決済ツール【AutoCloseTool】は無料で入手できます。

オートクローズツール

取引ごとにキャッシュバックが発生します

もらわないだけ損している
取引ごとに毎回発生する現金のキャッシュバック
海外FXのキャッシュバックはメリットしかないサービスです

取引ごとにキャッシュバック
目次