MT4でEAによる売買を行ったり、ストラテジーテスターでバックテストを行った場合、チャートに売買した結果の線が引かれます。その線の色や太さなどを変更します。
用途や目的に応じて、インジケーター、スクリプト、EAの3種類を用意しています。
売買結果の線が見づらいと感じたらぜひお試しください。
ファイルはMT4用のトップページからダウンロードできます。
画面イメージ
上の画像は当スクリプトを挿入する前、下は挿入した後です。
左から「買→売で利確」、「売→買で利確」、「買→売で損切り」、「売→買で損切り」した場合です。
線の色や太さなどはパラメーター指定なのでそれぞれ別の色や太さに変更できます。
線を変更する方法には、リアルタイム方式と一括方式があります。
一括方式には正確性重視型と処理速度重視型があります。
リアルタイム方式は、EAがポジションを決済した時に引かれた売買結果の線のみを即時変更する方法です。
決済したポジション以外の線は変更しません。
一括方式は、チャートに表示されているすべての売買結果の線を一括で変更する方法です。
スクリプトをチャートに挿入した時に一括変更します。
一括方式は、スクリプトの代わりにインジケーターを選択することもできます。
インジケーターを選択した場合、定期更新機能により定期的に線の変更処理を行います。
そのためスクリプトを何度も挿入する手間が省けます。
定期更新機能や正確性重視型、処理速度重視型の詳細はパラメーターの説明を参照してください。
補足:スクリプトにも定期更新機能がありますが、使うメリットはあまり無いと思います。
ダウンロードしたZIPファイルにはリアルタイム方式のEAサンプルソースと一括方式のインジケーター、スクリプトが含まれています。各MQ4ファイルについては以下の通りです。
リアルタイム方式をEAに組み込む際に参考にするEAサンプルソースです。
一括方式のインジケーターです。
一括方式のスクリプトです。
リアルタイム方式は所有するEAにTradeLineChange関数を組み込んで使用します。
EAのソース修正が必要なのでソースが無い場合はこの方式は使用できません。
その場合は一括方式のインジケーターをご使用ください。
修正方法ですが、サンプルソース内の「サンプル(ここから)」と「サンプル(ここまで)」の部分を参考に所有するEAに組み込んでください。TradeLineChange関数はそのままコピーしてください。
TradeLineChange関数はEA向けに軽量化されています。
このEAサンプルソースはデモ口座とストラテジーテスターの1分足チャートで動作を確認できます。
所有するEAに組み込む前に動作確認するのも良いでしょう。
ソースを見て頂ければわかりますが、線の変更処理に違いはありません。
大きな違いはチャートに挿入して線の変更処理を行った後に「チャートに残って定期的に変更処理を行う」か「チャートから削除されて終わる」かです。インジケーターの場合は残り、スクリプトの場合は削除されます。
インジケーターは一度チャートに挿入すると、MT4を再起動したり、「チャートの組変更」でチャートの組を変更してもチャートから削除されることはありません。
ソース修正ができないEAを使用している場合で、自動的に線の変更処理を行いたい場合はインジケーターを選択してください。
スクリプトはインジケーターとは異なりチャートに挿入後、処理が完了するとチャートから削除されます。
よって、バックテストの後など単発で線の色等を変更したい場合はスクリプトを選択してください。
また、EAの場合でも「負荷をかけたくない」とか「見たい時に挿入すれば良い」などの理由でスクリプトを選択しても良いと思います。
補足:チャートに挿入しても線が変更されない場合はチャートをクリックしてみてください。
ダウンロードしたZIPファイルを適当なフォルダに展開(解凍)後、通常のインジケーターやスクリプトと同様にMT4に導入してください。
補足:ZIPファイルはMT4用のトップページからダウンロードできます。
通常のインジケーターやスクリプトと同様にMT4から削除してください。
Custom Indicatorの「パラメーターの入力」の画面イメージ
画面はインジケーターですが、スクリプトも同様です。
取引方法(売→買、買→売)と損益の組み合わせごとに線の色、太さ、種類を指定します。
ただし、線の太さが「1:極細」でない場合、種類は常に「0:実線」になるようです。(MT4の仕様?)
「定期更新間隔(秒)」に「1」以上の値を指定すると指定した間隔(秒数)ごとに線の変更処理を行います。
インジケーターの場合はチャートに常駐して定期的に線の変更処理を行うことを前提としているので「0」以下の値を指定した場合、「60」が指定されたものとして動作します。
スクリプトの場合は通常ならチャートに挿入して処理が完了するとチャートから削除されますが、このパラメーターを指定した場合は処理が完了しても削除されず、指定した間隔(秒数)ごとに線の変更処理を行います。ただし、MT4を再起動したりチャートの組を変更した場合は削除されます。
スクリプトの定期更新を止めたい場合はチャートを右クリックして表示されるメニューから「スクリプトの削除」をクリックしてください。
処理速度優先を「true」にすると正確性重視型から処理速度重視型になります。
取引方法や損益を判断するためオブジェクト(売買結果の線など)から情報を得ていますが、正確性を重視するため注文番号で紐付けを行っています。
そのためチャートに多くのオブジェクト(売買結果以外の線とかラベルなども含む)が存在する場合、変更処理に時間がかかるかもしれません。
作成者の動作確認環境ではオブジェクト数が1万とかでも数十ミリ秒程度だったのですが、動作環境は人によって異なるので処理速度重視型も用意しています。
処理速度を重視する場合、オブジェクトの並び順に依存するため、MT4の仕様変更とかFX業者とかその他なんらかの理由で想定した通りの並び順にならない場合は正しく変更できません。
よって、最初は設定を「false」にして正確性を重視し、速度的に問題があれば「true」に変更して試してみる方が良いでしょう。
使ってみるとわかりますが、スクリプトをチャートに挿入すると毎回設定画面が表示されます。
スクリプトの10行目にある「#property script_show_inputs」を削除(コメント化でも良い)すると設定画面は表示されず、すぐに変更処理が行われるので便利です。
その場合はあらかじめ各パラメーターを好みの値に修正しておいてください。
リリース日 | バージョン | 内容 |
---|---|---|
2018/05/04 | 1.00 | 初リリース |