MT4テスト結果CSVファイル変換ツール「MT4PLCSV」


MT4PLCSVは、ストラテジーテスターの結果タブに表示されている損益等を抽出し、インジケーター「320_PLCSV2Graph.mq4」や「320_Csv2Graph.mq4」で使用するCSVファイルを作成するツールです。

「320_Csv2Graph.mq4」については前バージョン(Ver 1.X.0.0)と「320_Csv2Graph.mq4」についてを参照してください。

「320_PLCSV2Graph.mq4」は、MT4PLCSVのVer 2.0.0.0と連携することを前提としたインジケーターです。
このインジケーターは有効証拠金の動きをチャートのサブウィンドウにグラフを表示します。
ストラテジーテスターに表示されているグラフよりも有効証拠金の動きが細かく表示されます。
そのため、例えば、含み損を前提としたリピート系EAの場合、売買が無い期間の有効証拠金の動きが見えるようになります。

以下の画面イメージを例に説明します。
ストラテジーテスターのグラフは売買の結果を元に表示します。赤色枠の部分です。
そのため売買が発生していない青色枠の期間はなんの表示もありません。

今回の説明用に使用したリピート系EAのバックテストでは、パラメーター設定で最大ポジション数を10にしているので、青色枠の期間は売買が発生していません。しかし、ポジションを保有した状態でレートが下がっているので有効証拠金が減っていきます。

その後、レートは上がり、利確しています。
ストラテジーテスターのグラフだけを見ると、特に問題なく順調に利益を出しているように見えますが、実際は途中で有効証拠金が半分近くまで減っていたことがわかります。

このようにストラテジーテスターのグラフではわからないことが「320_PLCSV2Graph.mq4」を使用したらわかるようになります。

画面イメージ
注文番号「70」は6月に買い、11月に売っていますが、その間の有効証拠金の動きがストラテジーテスターのグラフ上に現れないため、たまたまロスカットされなかった危なっかしいEA(またはパラメーター設定)ということに気づかない。
MT4PLCSVと320_PLCSV2Graphの説明用画面イメージ


前バージョン(Ver 1.X.0.0)と「320_Csv2Graph.mq4」について

Ver 2.0.0.0から「320_PLCSV2Graph.mq4」の使用を前提とした説明なっています。
「320_Csv2Graph.mq4」を前提としていた前バージョンの説明はすると表示されます。

「320_Csv2Graph.mq4」はチャートのサブウィンドウに折れ線グラフを表示するので、ストラテジーテスターに表示されている折れ線グラフとは異なる視点で分析ができます。

例えば、下の画面イメージの水色矢印は9日に(注文番号29から30の間に)決済取引がなかったため水平線になっているのですが、ストラテジーテスターのグラフからはそのことを読み取れません。(赤色矢印が指している箇所を見てもわからない)
上記インジケーターを使用したら「このEAはチャート(相場)が○○の場合は反応(売買)しない」といったような分析もできます。
トレンドが得意なEAはレンジの場合に、レンジが得意なEAの場合はトレンドの場合に、不要な売買は避けたほうが良い場合があります。EA開発時に不得意な相場ではきちんと売買が停止されていることを確認する時に役立つと思います。

また、損益が連続して上昇または下降している場合や乱高下を繰り返すとき、どのような相場(トレンド、レンジ、急騰急落など)の時にそのような結果になるのかが見えやすくなると思います。
利益は出てるが「チャートとの関連性が見えない」、「相場の影響を受けてないように見える」といったEAは物凄いEAか、いい加減なEAのいずれかかもしれません。

「320_Csv2Graph.mq4」と連携したときの画面イメージ
※赤色枠など、説明用に追加した図形は実際には表示されません。
 また、見やすくするため日時や価格を切りがいい値で表示するインジケーター「320_KiriGaII」を使用しています。
320_Csv2Graphと連携時の画面イメージ

上記グラフの元になった結果データの一部
結果データの画面


導入方法(インストール)

ダウンロードしたZIPファイルを適当なフォルダに展開(解凍)してください。
インジケーター「320_PLCSV2Graph.mq4」は通常のインジケーターと同様にMT4に導入してください。

  1. MT4のメニュー「ファイル」から「データフォルダを開く」をクリックする。
  2. エクスプローラーが表示されたら「MQL4」フォルダ内にある「Indicators」フォルダに当インジケーター「320_PLCSV2Graph.mq4」をコピーする。
  3. MT4のナビゲーターウィンドウで右クリックして「更新」をクリックする。またはMT4を再起動する。
  4. ナビゲーターウィンドウに当インジケーターが表示されたらチャートに挿入する。
  5. 必要に応じてパラメーターを変更する。

補足:ZIPファイルはMT4用のトップページからダウンロードできます。

注意:「C:\Program Files\」や「C:\Program Files (x86)\」フォルダ配下には展開しないでください。正しく動作しない可能性があります。


削除方法(アンインストール)

MT4PLCSVを終了し、上記インストール時に作成したフォルダごと削除してください。MT4PLCSVはレジストリを使用していません。
インジケーター「320_PLCSV2Graph.mq4」は通常のインジケーターと同様にMT4から削除してください。

  1. チャートから当インジケーターを削除する。
  2. MT4のメニュー「ファイル」から「データフォルダを開く」をクリックする。
  3. エクスプローラーが表示されたら「MQL4」フォルダ→「Indicators」フォルダ内の「320_PLCSV2Graph.ex4」や「320_PLCSV2Graph.mq4」を削除する。
  4. MT4のナビゲーターウィンドウで右クリックして「更新」をクリックする。またはMT4を再起動する。

使い方

  1. MT4を起動してストラテジーテスターでテストを行い、結果タブにテスト結果が表示されていることを確認してください。
  2. MT4PLCSV.exeを起動し、画面に表示されている「使い方」の順番に従って操作してください。
    なお、次回起動時からは「CSVファイル保存先」と「CSVファイル名」は前回の値を引き継ぎますので画面に表示されている「1.」から「3.」の操作は省略できます。

MT4PLCSVの画面イメージ
MT4PLCSVの画面イメージ

補足:ストラテジーテスターでテストして「チャートを開く」で開いたチャートに「320_PLCSV2Graph」を挿入した場合は、「MQL4」ではなく「tester」フォルダ内の「Files」フォルダに保存したCSVファイルを参照する場合があります。どのような条件で「tester」フォルダ配下になるかは不明ですので、ご使用時の状況に応じて適宜保存先を変更してください。


使い方(Ver 2.0.0.0から追加された機能について)

利便性向上を目的とした機能追加を行いました。各機能はメニューから選択します。
MT4PLCSVのメニュー

常に前面表示

MT4PLCSVを常に前面に表示されるようにします。

他の画面を操作していても常に前面に表示されるので、MT4PLCSVに「Files」フォルダをドラッグアンドドロップしたり、「クリップボードからコピーして作成」ボタンをクリックする際に画面を切り替える必要がなくなるので便利です。

コンパクト化

画面を以下のように小さく表示します。
MT4PLCSVをコンパクトに表示

「クリップボードからコピーして作成」ボタンは「CSV作成」ボタンに変わります。
使い方を覚え、CSVファイルの保存先や名称を変更する必要がない場合は小さくしたほうがじゃまにならないと思います。

ホットキー有効化

ホットキー「Alt+V」を有効にします。

ホットキーを押すと、MT4PLCSV以外の画面を操作している状態でも「クリップボードからコピーして作成」ボタンをクリックしたときと同じ動きをします。
そのため、MT4の結果タブで「Alt+A」キーを押してクリップボードに結果をコピーした後、続けて「Alt+V」を押すとCSVファイルが作成されます。わざわざMT4PLCSVの画面に切り替える必要はありません。

クリップボード監視

クリップボード書き換えの監視を行います。

クリップボードにストラテジーテスターの結果データがコピーされたと判断した場合、「クリップボードからコピーして作成」ボタンをクリックしたときと同じ動きをします。
そのため、MT4の結果タブで「Alt+A」キーを押してクリップボードに結果をコピーするだけでCSVファイルが作成されます。

ショートカット作成

MT4PLCSVを起動するためのショートカットを作成します。

詳細は後述の「ショートカットの作成について」を参照してください。

320_Csv2Graph.mq4用

320_Csv2Graph.mq4用のCSVファイルを出力します。

オフラインヘルプ表示

オフラインヘルプ(このHTML文書)を表示します。


インジケーター「320_PLCSV2Graph」のパラメーターの説明

Custom Indicatorの「パラメーターの入力」の画面イメージ
パラメーターの入力画面

CSVのファイル名

MT4の「Files」フォルダに保存したCSVのファイル名を指定します。

補足:日本語のファイル名の使用したり、「.csv」以外の拡張子にしたり、「Files」フォルダに新しくフォルダを作成してそこにファイルを保存したりしましたが特に問題はないようです。
ただし、厳密なエラー処理を施していないので無難なフォルダ名、ファイル名にしてください。

補足:「Files」フォルダはMT4のメニュー「ファイル」から「データフォルダを開く」をクリックし、表示されたエクスプローラーの「MQL4」フォルダ内にあります。
ただし、ストラテジーテスターでテストして「チャートを開く」で開いたチャートに当インジケーターを挿入した場合は、「MQL4」ではなく「tester」フォルダ内の「Files」フォルダに保存したCSVファイルを参照する場合があります。どのような条件で「tester」フォルダ配下になるかは不明ですので、ご使用時の状況に応じて適宜保存先を変更してください。

再読込ラベルを表示する(=true)

サブウィンドウの左上あたりに「再読込」という文字を表示します。

「再読込」をクリックするとCSVファイルを読み込み直します。
ストラテジーテスターでテスト後、CSVファイルを作成する前にインジケーターを挿入した場合は作成後に「再読込」をクリックするだけで済みます。

結果ラベルを表示する(=true)

口座残高(残)、有効証拠金(証)およびレバレッジ(レ)を表示します。

口座残高は左から、テスト開始時点、テスト終了時点、テスト期間内の最大、テスト期間内の最小の額です。
有効証拠金は左から、テスト開始時点、テスト終了時点、テスト期間内の最大、テスト期間内の最小、最終時点までの最小の額です。
レバレッジは左から、テスト期間内の最大、最終時点までの最大の値です。

最終時点までの最小証拠金や最大レバレッジは、チャートの最後のバーまで証拠金やレバレッジの変動を計算して算出した値です。
CSVファイルはテスト期間分のデータしかありません。チャートのバーがその期間以降にもある場合は最後のバーまで証拠金やレバレッジの変動を計算して証拠金がどこまで減るか、レバレッジがどこまで高くなるかを算出しています。

両建てマックス方式(=true)

レバレッジを両建てマックス方式で計算するか積み上げ方式で計算するかを指定します。
両建てマックス方式の場合は「true」、積み上げ方式の場合は「false」を指定してください。


ショートカットの作成について

MT4PLCSVは設定内容をINIファイルに保存していますが、そのままだと1つしか保存できません。
1つしかないと、MT4を複数インストールしていたり、CSVファイルの保存先を「MQL4」から「tester」に変える場合はその都度設定の変更が必要になります。

そこで、設定ごとにINIファイルのファイル名を変更して保存し、MT4PLCSVを起動する際にそのINIファイル名を指定することで毎回設定を変更する手間が省けます。


ショートカットは以下の手順で作成します。

まず、MT4PLCSV.exeを起動し、画面に表示されている「使い方」の「1.」から「3.」の操作を行います。

次にメニューの「ショートカット作成」をクリックします。
「名前を付けて保存」が表示されますのでINIファイル名を入力し、「保存」ボタンをクリックして保存します。
OANDAの場合なら「OANDA」や「OANDA-Test」のようにわかりやすいファイル名が良いでしょう。
INIファイルの保存先はどこでも良いですが、MT4PLCSV.exeと同じフォルダにまとめておくと管理しやすいでしょう。

次にショートカットファイル(リンクファイル:*.lnk)の保存先を聞いてきます。
ショートカットファイル名は既定ではINIファイル名と同じです。そのままでも構いませんし変更しても良いです。
保存先はどこでも良いですが、バックテストを行うときによくアクセスするフォルダとかデスクトップに保存すると便利でしょう。

ショートカットの作成はこれで完了です。今後はショートカットから起動することで設定した内容で使用できます。
ショートカットから起動した場合は下の画面のようにタイトルにINIファイル名が表示されますので目印にしてください。
ショートカット起動時の画面


あと、MT4PLCSVは複数起動することもできますが以下の点に注意してください。

ホットキーは1つのMT4PLCSVだけでしか使用できません
Windowsの仕様上、ホットキーはWindows上で起動しているアプリケーションのうち1つのアプリケーションでしか使用できません。
そのため、ホットキーを使用するように設定したMT4PLCSVを複数起動した場合は後から起動した方がエラーになります。
また、他のアプリケーションですでに「Alt+V」をホットキーとして使用している場合も同様にエラーとなります。
エラーになるとホットキーの設定は解除されます。

クリップボード監視は複数のMT4PLCSVで同時に動作します
Windowsの仕様上、クリップボードの監視は複数のアプリケーションで同時に使用可能です。
そのため、OANDA用とFXTF用の2つのMT4PLCSVが起動している状態でOANDAのストラテジーテスターの結果データをクリップボードにコピーしたとき、OANDA側とFXTF側の両方でCSVファイルが作成されます。
エラーは発生しないので気づかないうちにCSVファイルが上書きされていたということになりかねません。
MT4PLCSVを複数起動する場合はクリップボード監視の設定に注意してください。


ソースについて

MT4PLCSV.exeについては最低限必要なソースのみ添付しています。リソースファイル(.res)などは添付していません。


更新履歴

日付 バージョン 内容
2017/05/25 1.0.0.0 初リリース
2017/09/03 1.1.0.0 Delphi 10.1でコンパイルしたものは一部のアンチウイルスソフトでアドウェア扱いされるみたいなので、Delphi 7で作り直しました。
Delphi 7(古いコンパイラー)に合わせてソースの一部を変更しています。詳細は添付のソース参照。
2018/04/19 1.1.1.0 Delphi 7で作り直した際に修正漏れがありましたので対応しました。
2018/04/24 1.2.0.0 1.メッセージボックス関連の処理を見直しました。
2.CSVファイル保存先フォルダ「Files」について補足を追記しました。
2018/11/07 2.0.0.0 1.開発環境をDelphi10.2に移行しました。それに伴い、ロケールやPer-Monitor DPI Awareに対応しました。
2.320_PLCSV2Graph用のCSVファイルに対応しました。
3.利便性を高めるための機能(クリップボード監視など)を追加しました。