2016年6月11日土曜日

複数通貨ペア、期間のバックテストの自動化2

前回はtxtファイルを作成しドラッグアンドドロップで起動、終了ができました。

今回は1.txtをこんな内容にしました。

  TestExpert=a
  TestSymbol=EURUSD-a01
  TestPeriod=M5
  TestModel=0
  TestSpread=5
  TestRecalculate=false
  TestOptimization=false
  TestDateEnable=true
  TestFromDate=2010.01.01
  TestToDate=2010.06.30
  TestReport=a2010010120100630
  TestReplaceReport=false
  TestShutdownTerminal=true


EA名をaにしました。テストしたいEA名をaにすれば変更する必要はありません。
setファイルの行は削除
TestSpread(隠しコマンド)を5に設定 設定をしないと現在値になるのですが土日はスプレッドが高くなっていますので変更します。
TestReportをEA名+開始日+終了日に変更

これを2010.01.01から2016.06.30まで半年ずつ13個作成しました。
面倒ですが一回行えばOKですのでw

そしてバッチファイルを作成します。
適当な場所にtxtファイルを作成してください。
拡張子を.batに変更します。
私の場合start.batです。

中身は(少し伏字)

"C:\Program Files (x86)\OANDA - MetaTrader\terminal.exe" "C:\Users\USERNAME\AppData\Roaming\MetaQuotes\Terminal\123456789abcdef0123456789abcdef0\tester\1.txt"


"C:\Program Files (x86)\OANDA - MetaTrader\terminal.exe" "C:\Users\USERNAME\AppData\Roaming\MetaQuotes\Terminal\123456789abcdef0123456789abcdef0\tester\2.txt"


初めの"~~~exe"は起動するプログラムを次の"~~~.txt"はオプションです。
Terminal.exeに1.txtをドラッグしたのと同じになります。

次は同様に2.txtです。

start.batをwクリックすると黒いコマンドプロンプト画面が出てきます。
上の文字が出てきてしばらくするとMT4が起動しバックテストをして閉じます。
しばらくするとまたMT4が起動しバックテストをして閉じます。
もう少しすると黒い画面も消えます。

そして数字がいっぱいのフォルダーに二個ファイルができています。
バックテストの結果です。これを13個作れば完成ですね。

しかし!!ここで問題発生です。
先程の隠しコマンドTestSpreadをつかうと画面上はスプレッドが変わりますが、
テスト結果には反映されていません。
Spreadが高い時は発注しないEAですと全く動きがありません。
今日は土曜日ですから・・・・

MT5フォーラムを見ると最近のビルドはこのコマンドが壊れているとの事です。
平日しか使えません。平日でもスプレッドが変わるタイミングでスタートしたテストは結果がおかしくなります。

う~ん 直るまで御預けのようです。頑張って勉強したのですが・・・





0 件のコメント:

コメントを投稿