MT4 ストラテジーテスターを一括で複数の通貨ペア、複数のEAを行う方法 その2
前回の記事で下準備の一部が完了しました。
abitra.hatenablog.com
あとはやらなくても良いけど個人的に管理しやすい為の設定など。
MT4 Portable 起動用の設定(ini)
大元のMT4フォルダに Portable_iniフォルダを新規作成。
※名前は何でもいいです。コピー先のフォルダには不要です。
このフォルダに後で記載する設定ファイルが書き込まれるます。
testerにsetファイルのフォルダとtest_reportのフォルダ作成
setフォルダには最適化に必要な設定のファイルを追加して下さい。
test_reportレポートフォルダは特に何もしなくていいです。
ストラテジーテスター完了するとレポートが入るフォルダになります。
準備完了。複数通貨をストラテジーテスターで一括でバックテスト
私はrubyで書いています。
バックテストのコード。
以下コードを動かせば8つのMT4が立ち上がりバックテストが始まります。
pair = ["USDJPY", "USDCAD", "NZDUSD", "GBPUSD", "GBPJPY", "EURUSD", "EURJPY", "EURGBP"] period = "H4" count = 1 testexpert="エキスパート名" pair.each{|var| hoge = " Server=Alpari-Demo Login=************ Password=************* TestExpert=#{testexpert} TestExpertParameters=set\\bbbbb.set TestSymbol=#{var} TestPeriod=#{period} TestModel=0 TestRecalculate=false TestOptimization=true TestDateEnable=true TestFromDate=2014.01.01 TestToDate=2018.08.14 TestReport=tester\\test_report\\#{testexpert}_#{var}_#{period}_Report TestReplaceReport=True TestShutdownTerminal=false " open("portable_ini\\#{var}#{period}.ini", 'w'){|f| f.puts hoge } if count == 1 Thread.new do #Threadで立ち上げる aaa = "\"C:/Users/hogehoge/デスクトップ/MT4_alpari/terminal.exe\" /portable \"C:/Users/hogehoge/デスクトップ/MT4_alpari/portable_ini/#{var}#{period}.ini\"" system(aaa) end end if count > 1 Thread.new do #Threadで立ち上げる bbb = "\"C:/Users/hogehoge/デスクトップ/MT4_alpari/MT4_alpari_#{count}/terminal.exe\" /portable \"C:/Users/hogehoge/デスクトップ/MT4_alpari/portable_ini/#{var}#{period}.ini\"" system(bbb) end end sleep(1) count = count + 1 }
少し解説
上記プログラムを動かすとMT4が立ち上がりと同時にバックテストが動きます。
細かいストラテジーテスターの設定は他サイトなどを参考に設定して頂くと良いかと考えます。
バックテスト開始してしばらく待つとレポートが出力されます。
場所は本記事の最初に作成したtesterのtest_reportになります。
※出力先は任意で決めれます。
ストラテジーテスターのバックテスト完了
基本は以上です。
細かいところは端折っているのですが何となくの雰囲気は掴めたかと考えます。
"MT4BP" "MT4バッチプロセッサー"の場合はどの様な処理をしているのか分かりませんが以前の資料でMT4を8個同時に動かす的な資料を見た記憶があるので近い感じではあるのかなーと考えます。
もちろん"MT4BP" "MT4バッチプロセッサー"の方が色々設定出来るかと考えます。
実際8個のMT4で同時にバックテストしてみた結果
バックテスト中ですがめちゃくちゃPCの動作が遅くなります。
ブラウザ開くも画像ファイルがなかなか読み込まれなかったりマウスのポインタがカクついたりしました。
バックテストは成功したの?
バックテストは成功したのですが何点か問題もありました。
最適化結果のレポートを出力するもレポートだけではパラメータの確認が出来ません。
結局各MT4の最適化結果を確認しないといけない。(レポートにパラメータの入力表示出来るといいのになー)
たまーにですが読み込まれなかった通貨ペアあがりました。
その時は動かなかったMT4を手動で動かしたりました。一度動かした後はプログラムでも問題なく動いたり。
理由はよく分からない。。。
今後は使っていく?
複数通貨ペアでバックテストす時は便利だから使っていこうかなーと。
通貨ペアだけでなく15分足、30分足、一時間足、4時間足と同時にバックテストしたい時など時々訪れるのでその時は便利なよかーん。
もし何か不明な点などあればコメントなどでお気軽にご連絡下さいませー