バックテストや最適化に別のPCを使う。

yamakagasi 2010/07/30 10:36
記事中のVOMとmigrateの表のおかげで、mql5への移植ができましたmm
質問ですがremote agentの使い方がいまいちよくわかりません。
 - remote agentの見つけ方
 - セキュリティ的な不安
 - 外部ファイルの読み込み方法
設定をMQL5/Filesにいれて読み込んでてlocal agentの場合はtester/Agent-xxx/MQL5/Filesに
コピーするのですがremote agentの場合どのように読み込むのか。
お手すきの際にでも!では失礼します。


EA自作派にとって MT5 の大きな醍醐味の1つは、バックテスト最適化のマルチコア対応、マルチPC対応(分散コンピューティング)です。
最適化を、1つの PC 内の複数コアを使って並列処理させる場合は、特に難しいことは無いと思います。なので、ご質問頂いた、マルチPC対応のやり方を説明します。

Remote Agent (計算サーバ) の設定

(1) MT5をインストールします。他の PC からのフォルダコピーでも大丈夫のようです。
(2) metatester.exe を起動します。

(3) パスワード欄に 適当に決めたパスワードを入力し、Install ボタンを押します。

↑このPCは、8コアなので、ポート番号2000〜2007 の8ポートを使います。
Setup Manually を選ぶと、1ポートずつインストールできますが、面倒なだけでしょう..^^;


↓インストールに少し時間が掛かります。

↓インストール完了後、8個の Agent が動作可能状態になります。

↑それぞれの Service を右クリックして止めたり削除したりできます。

↑実体は、Windows のサービスとして登録されています。


(4) ファイアウォールを設定します。
↓最初の導入時には無効状態で試すのが無難です。

↓慣れている人は、通信を許可するプログラムの追加で metatester.exe を加えればOKです。



コントローラ側の設定

上記で設定したRemote Agent を使用して並列処理をさせる側が、コントローラです。
(マスターとか、クライアントとか、親とか呼びますかね..
(1) Remote を右クリックして Add します。

(2) Name は分かりやすい名前をつけます。Address は、Remote Agent のIPアドレスで、その後ろに動かしているポート番号を指定します。パスワードは、Remote Agent のインストール時に設定した語句を入れます。

↑8コアのPCを指定する場合、8回 Add しないといけないのがちょっと面倒です。


↓準備ができればこんな感じ。

通信先の Remote Agent と通信できなくても Ready になるので、実際に動かしてみないと正しく設定できているのかは分かりません。


↓適当に MACD の EA で Optimization を開始すると、ヒストリカルデータと EA が配布されて計算が始まります。



↓Optimization の途中でも、Remote Agentを選んで右クリックで Edit を選び、

↓Enabled のチェックをはずすと、↑そのRemote Agentがdisabledとなり除外できます。

夜中はすべてのPCに計算させて、朝起きたら、作業用のPCだけ計算ネットワークから外すという使い方もできるのです。


18個動かしてみたのが下図で、少々重い最適化も18倍近く速くなるかも?と思えば、MT4のEA を最適化の為だけに MT5 に移植するというのも有りかもしれません。