MT4 script|便利なMT4のStopLossとTakeProfit変更スクリプト!

MT4 StopLossとTakeProfit変更スクリプト

 便利に使ってるMT4のスクリプト、第4弾!StopLossとTakeProfitを変更もしくは設定するスクリプト『4_chgStopLoss_TakeProfit100』の作成方法の紹介。すでに紹介済みのBUY・SELL・Closeスクリプトと同様、興味ある方はチャレンジしてみてください。

紹介済みのスクリプト(過去記事)はこちら

この記事では、よく陥りやすいエラーについて紹介しています。笑わないでね。。。

スクリプト動作検証しているFX会社

 紹介しているスクリプトが期待した動作をしてくれない場合、また、新規アイディアなど思いつきましたらご連絡ください。

なお、かならず、デモ口座で検証して正常動作を確認の上、リアル口座で使いましょう。^_^

StopLossとTakeProfit変更スクリプトの作成

メタエディター起動

MetaEditor

新規作成を選択

MT4 Closeスクリプト

(SELLスクリプト紹介記事で掲載した画像を流用)

MQL4ウィザード設定

MetaEditor

スクリプトを選択し、次へをクリック

MT4 StopLossとTakeProfit変更スクリプト

名前付け、著作権・リンクを確認し、Okなら、完了をクリック

スクリプトの名前は、『4_chgStopLoss_TakeProfit100』としました。最初の数字はナビゲーターでの表示順序を意図しています。

  • 1_Buy100
  • 2_Sell100
  • 3_Close100
  • 4_chgStopLoss_TakeProfit100

って感じで、並びます。

最後の100はバージョン区分番号です。改定したら数字を変更し、履歴管理ができるようにしています。

完了をクリックしたら、初期テンプレートがオープンします。

MT4 StopLossとTakeProfit変更スクリプト

次のように入力します。あくまでも一例です。要求機能さえ満足すれば、どのようにプログラミングするかは人それぞれでいいですもんね。

追加した行は、11~17行、24~41行です。

MT4 StopLossとTakeProfit変更スクリプト

(property宣言部)11行

  • #property script_show_inputs
    • スクリプト命令発行時にStopLossとTakeProfit値を確認、または変更できるパラメータ設定windowがオープン
    • 不要であれば、行の先頭にコメントマーク『//』を付記

(パラメータ宣言部)13~15行

  • extern int StopLoss = 10;
    • StopLoss値(pips)
  • extern int TakeProfit = 10;
    • TakeProfit値(pips)
  • extern int Slippage = 3;
    • スリップページの許容pips

(変数宣言部)17行

  • int modifyOk = 0;
    • StopLossとTakeProfitが変更または設定できたかどうか受け取る変数

(処理内容)24~41行

  • 24行目 if 文
    • 通貨ペアの価格単位に3つの変数の単位を合わせる
    • 小数点以下の桁数が3桁または5桁の場合、10倍
  • 31行目 for 文
    • 存在するポジション数だけfor文内の処理を繰り返す
  • 33行目 if 文
    • ポジション選択失敗 → サーバーとの通信エラー → for文処理中止
  • 34行目 if 文
    • 選択したポジションとチャートの通貨ペアが異なる場合、残りの処理を飛ばします。
  • 35行目 if 文
    • BUYポジション、SELLポジション、それぞれでStopLossとTakeProfitの変更命令を発します。
  • 40行目 if 文
    • StopLossとTakeProfitが変更できなかった場合の処理。エラーであることとエラー番号をターミナルのエキスパート欄に出力します。
    • 過去記事3つのスクリプトとは表現を変えてみました。MQL4のヘルプの表現がよりいいような感じでしたので・・・ここは作成者の好きなように編集できますね。

 

 入力終了したら、コンパイルします。

MetaEditor

(1_Buy100の記事画像を流用)

 

で、エラー・・・

MT4 StopLossとTakeProfit変更スクリプト

エラー個所を示す行(赤〇バック、白マイナスマーク行)をダブルクリックすると、エラー発生個所に飛びます。常にエラー発生個所に飛んでくれるわけではなく、近くの場合やとんでもなく離れた個所に飛んだりするので注意が必要です。

MT4 StopLossとTakeProfit変更スクリプト

 

 

 このエラーは、閉じ中括弧『}』が足りないから発生しています。

次のように追加。

MT4 StopLossとTakeProfit変更スクリプト

再度、コンパイル・・・あれれ?

MT4 StopLossとTakeProfit変更スクリプト

こんどは警告・・・

ダブルクリックで該当箇所に、、、

MT4 StopLossとTakeProfit変更スクリプト

今度は、for文内の変数宣言の初期値がないことを知らせてくれています。

int i → int i=0 ですね。。。修正して、

MT4 StopLossとTakeProfit変更スクリプト

コンパイル。。。

MT4 StopLossとTakeProfit変更スクリプト

エラーなし。

活用例

 記事アップ済みの3つと同様、ショートカットキーに登録して、活用しています。

登録方法、使用方法は同じなのですが・・・

 ショートカットキーの登録。

MT4 StopLossとTakeProfit変更スクリプト

 ナビゲーターのスクリプト、4_chgStopLoss_TakeProfit100を右クリックし、ショートカットキー設定をクリック。

ナビゲーターのスクリプト、4_chgStopLoss_TakeProfit100を右クリックし、ショートカットキー設定をクリック。

コントロールキーとキーを設定します。キーは、Gとしました。

ナビゲーターのスクリプト、4_chgStopLoss_TakeProfit100を右クリックし、ショートカットキー設定をクリック。

閉じる、で登録終了です。

イラスト、PC

 このスクリプトは、保有ポジションのStopLossとTakeProfitを変更できますが、ワンクリックオーダー後にStopLossとTakeProfitを設定することもできます。

新規オーダーが約定したら自動的にStopLossとTakeProfitを設定するEAも考えていたのですが、不要ですね。

また、一度StopLossとTakeProfitを設定してたら、そのラインをマウスでつまんで上下すれば簡単に値が変更できますから、変更用には不要なスクリプトかもしれない。

右クリックでキャンセルもできますから、TakeProfitだけキャンセルもできちゃいます。

いろいろな使い方ができるMT4は、ほんとに便利です。^_^

 

 このスクリプトを使っていると、StopLossだけセットしたいって思いが出てくるかもしれません。本記事で紹介したプログラムでは、できないです。

興味ある方は、作成にチャレンジされると楽しいかも ^_^

スポンサーリンク
FX
スポンサーリンク

コメント

  1. あんぎん より:

    ブログをよく拝見しています。
    今回はショートカットキーでBUY&SELLとクローズのオーダーができるスクリプトで感激しました。スクリプトなので他のEAが付いているチャートでも簡単に手動でオーダーができ、まさに探していたツールです。丁寧な説明もあり、プログラミングがわからない私でも理解でき、自分用に少し手を加えることもできました。また、開発中のEAも興味深く、今後も要注目です。本当にありがとうございました。
    P.S.龍馬の土佐弁大好きです。

    • HappyJiJi HappyJiJi より:

      あんぎんさん、
      コメントありがとうございます。
      お役に立ててうれしいです。

      MT4、開発元がサポート終了されたとの噂が届いています。
      私の試用している MT4 build1355 は、ショートカットキーの保存ができないです。
      また、MT4 起動時のチャート表示も Default のみ・・・
      よく使う組合せを Default として保存すればいいだけなのですが。。。

      また何かお気づきの点など浮かびましたらコメントください。