全決済ボタンのEAに通貨ペアとマジックナンバーの処理を追加する



今回は、「全決済ボタンをEAで作ってみる」で説明したEAに、通貨ペアとマジックナンバーの処理を追加します。

 

通貨ペアの処理を追加する

EAをセットしたチャートの通貨ペアだけを決済するように変更します。

前回説明したコードに通貨ペアの処理を追加します。

11行目から14行目までが追加したコードです。

「Symbol()」はEAをセットしたチャートの通貨ペアを取得する関数です。「OrderSymbol()」は選択しているオーダーの通貨ペアを取得する関数です。

if文でチャートの通貨ペアとオーダーの通貨ペアを比較しています。「!=」は非等値演算子で、チャートとオーダーの通貨ペアが違う時にif文の中の「continue」が実行されます。「continue」は、ここより下の処理はしないで次のループに移ります。

 


マジックナンバーの処理を追加する

マジックナンバーのパラメーターを追加して、設定したマジックナンバーだけを決済するように変更します。

 

パラメーターの追加

マジックナンバーのパラメーターを追加します。

「#property strict」の下あたりに「input int MagicNumber = 0;」を追加します。

11行目が追加したコードです。

「input」をつけることでEAをセットする時に、設定できるパラメーターにすることが出来ます。

「int」は、整数型の変数の宣言です。「int」は「-2,147,483,648 ~ 2,147,483,647」の整数を扱うことが出来ます。

「MagicNumber 」は、パラメーター名(変数名)で任意でつけることが出来ます。

「= 0」は、初期値の設定です。MT4で手動で取引をするとマジックナンバーは0になっています。マジックナンバーに0を入れる事で、手動で取引したボジションを決済することが出来ます。

パラメーターの入力画面のパラメーター名はコードの後ろに//をつけることで表示名を変えることが出来ます。

このように//の後ろの文字が表示されます。

 

マジックナンバーの処理

マジックナンバーも通貨ペアの処理と同じように、パラメーターで設定したマジックナンバーとオーダーのマジックナンバーを比較して違っていたら次のループに移るようにします。

15行目から18行目までが追加したコードです。「MagicNumber」は追加したパラメーター(変数)です。「 OrderMagicNumber()」は、選択しているオーダーのマジックナンバーを取得する関数です。if文で比較してマジックナンバーが違っていたら次のループに移るように処理しています。

 


全コード

これで、EAをセットしたチャートの通貨ペアで設定したマジックナンバーだけを決済する仕様になります。

 

※今回、説明した全決済ボタンは、EAが使えない口座では使うことが出来ません。

当サイトに掲載している情報やサンプルコードを利用した結果によって生じるいかなる損害、損失について当サイトは一切の責任を負いません。サンプルコードにはバグなどがある可能性もあります。当サイトの情報やサンプルコードの利用は、自己責任でお願いします。


おすすめ記事

リアル口座のトレード収支結果です。   EA名:KonohaUSDJPY 通貨ペア:USDJPY 使用FX業者:OANDA JAPAN(東京サーバー) バージョン:1.00 パラメーター:すべて初期値 約定日時…

EAの長期間のバックテストをするにはMT4にヒストリカルデータを入れる必要があります。 今回は、一番簡単にできるMetaQuotes社のヒストリカルデータの入れ方と、FXDDのヒストリカルデータをダウンロードしてインポー…

関連記事

MT4の標準機能では、複数のボジションを一度に全部決済することが出来ないようです。ないものは作れば良いというのがMT4の最大の特徴ではないでしょうか? 今回は、チャート上にボタンを配置して、そのボタンを押すと保有している…

今回も前回の続きです。 前回の「全決済ボタンのEAに売りボタンと買いボタンを追加する」で説明したEAはコンパイルすると警告メッセージが5つ出ています。この警告メッセージをなくすのと、簡単なエラー処理を追加してみます。 &…

今回は、マジックナンバー別の口座履歴をcsvファイルに出力させるスクリプトの作り方を説明します。   目次 スクリプトのテンプレートの作り方口座履歴を出力するスクリプトの作り方今回説明するスクリプトの仕様ファイ…

今回は、EAにボタン、テキストボックス、ラベルの配置方法と使い方を説明します。   目次 ボタンの配置方法テキストボックスの配置方法ラベルの配置方法オブジェクトの削除ボタン、テキストボックス、ラベルの使い方全コ…

MT4にはMQLと言うプログラム言語が装備されていて、それを扱うためのメタエディターが付属しています。このメタエディター使うことで自動売買に必要なEAやインジケーター、スクリプトなども作ることが出来ます。 目次 メタエデ…