ブログトップ 記事一覧 ログイン 無料ブログ開設

とあるMetaTraderの備忘秘録 RSSフィード Twitter

忙しいです。ネタもないし・・・

2010-07-31

バックテストや最適化に別の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 を起動します。

f:id:fai_fx:20100730161015p:image

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

f:id:fai_fx:20100730161014p:image

↑このPCは、8コアなので、ポート番号2000〜2007 の8ポートを使います。

Setup Manually を選ぶと、1ポートずつインストールできますが、面倒なだけでしょう..^^;


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

f:id:fai_fx:20100730161013p:image

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

f:id:fai_fx:20100730161012p:image

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

f:id:fai_fx:20100730195424p:image

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


(4) ファイアウォールを設定します。

↓最初の導入時には無効状態で試すのが無難です。

f:id:fai_fx:20100730161726p:image

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

f:id:fai_fx:20100730161725p:image




コントローラ側の設定

上記で設定したRemote Agent を使用して並列処理をさせる側が、コントローラです。

(マスターとか、クライアントとか、親とか呼びますかね..

(1) Remote を右クリックして Add します。

f:id:fai_fx:20100730162423p:image

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

f:id:fai_fx:20100730162422p:image

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


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

f:id:fai_fx:20100730162421p:image

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


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

f:id:fai_fx:20100730162419p:image



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

f:id:fai_fx:20100730162418p:image

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

f:id:fai_fx:20100730162417p:image

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


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

f:id:fai_fx:20100730194835p:image

LL 2010/07/31 06:17 haruhi , nagato , yuki
やることが細かいww

alohafxalohafx 2010/07/31 07:45 いったい fai さんは何台コンピュータを持っているのでしょう?
以前16コアのマシンの話が出ていましたが、今回の8コアX2と2コアの3台で、既に4台ってことですかね?

昨日も MT5 でバックテストをしていて「この Remote Agentってなんだ?」と思っていたので、今回の記事はとってもタイムリーでした。(監視?)
いつも本当にありがとうございます。

CatherineCatherine 2010/07/31 17:48 >haruhi , nagato , yuki
nagatoの部分はこの流れだとmikuruかな(笑)。

remote agent、悩んでいたことが解決いたしました。感謝しきれません(涙)。

yamakagasiyamakagasi 2010/07/31 19:41 記事ありがとうございました。faiさんのマシン構成すごいですね。
ファイアーウォールの設定ははまりどころでした。
今作ってるシステムは3ヶ月間のテストで1ケース20分かかってるので
マシン追加検討してみます。

Hontag88Hontag88 2010/07/31 20:50 faiさん、とても参考になります。
小生は、バックテストは、RAMディスクを活用していました。
MT5のマルチで実行する方がより早そうですね。
RAMディスクの欠点はディスクサイズに限度があることですね・・・
MT5とRAMディスクを合わせて活用したより早いのかも知れません。

fai_fxfai_fx 2010/07/31 22:32 Lさん
私なりの、ささやかなモチベーション維持手法です。^^;

Catherineさん
朝比奈さんに計算させると、変な結果が得られそうなのでやめました..。笑

yamakagasiさん
実は、ファイアーウォールの設定は、私も嵌まってました...orz

Hontag88さん
↑64bitOSでメモリ16GB載せてると、少々大きなRAMディスクも作れそうな気はします..。

alohafxさん
禁則事項です。
なので教えられません...^^;;;;

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/fai_fx/20100731/1280522145