読書してたらEA検証体制すっかり忘れてた。
ので改めてメモ。
2012/01/16: どういう訳か、口座に接続してないと上手くバックテストが走らないときがある。これだとスプレッド固定でテストできない。意味不明!><
指値逆指値がよりリアルに近いタイミングで発生するように、1分足ヒストリーから生成する。
1分足データないと、指値逆指値がだいぶ変わるから。←昔の期間
・C:\MT4\新しいフォルダを作ってMT4インストール
・メモリの2GB制限を外す。対象:terminal.exe
http://www.ntcore.com/4gb_patch.php
・expertsフォルダとtemplatesフォルダをシンボリックリンク。
コマンドプロンプトを管理者権限で起動。
expertsフォルダとtemplatesフォルダを消す。
新しく入れたフォルダで、Dropbox内のフォルダにリンク。
mklink /d experts E:\Dropbox内\experts
mklink /d templates E:\Dropbox内\templates
・一度MT4起動する。
アップデート。
ヒストリーディレクトリができる。
・オプションでヒストリー内の最大バー数とチャートの最大バー数を最大にしておく。
・他、操作設定
オプション⇒チャートで「四本値を表示」をオフ。
オプション⇒ライン等の設定で「ワンクリックで”選択”にする」にチェック。
オプション⇒Expert Advisorsをconfirm2箇所以外オンに。
・メタエディタの言語を日本語に変える
MS ゴシック、9、日本語。
・languagesフォルダに日本語ヘルプを突っ込む
http://www.dr-ea.com/meta-blog/mql/mqlreference-metaeditor.html
検索は使えないけど。下に出てくるToolboxで和訳が選べる(感謝)。
・バッドティック除去スクリプトの開始期間を適当に決めてコンパイルする。
元データは2005年からだから、もっと短い期間で検証する場合指定する。
2010/01/01からとか、2008/01/01からとか。
・FXDD1分足データ取ってきて加工修正する
http://www.fxdd.com/mt/jp/forex-resources/forex-trading-tools/metatrader-1-minute-data/
1.解凍して「EURUSD.hst」をhistory\FXDDMalta-MT4 Demo Serverに入れる。
オフラインチャートで読めない(updateが出る)場合「EURUSD1.hst」に変える。
2.オフラインチャートで表示できるか試す
3.オンラインでM1チャート開いて更新する。最近の足を少し正確に。←これ要らない
4.サーバーのパスワードをでたらめに打ってログインしないようにする(バックテスト専用MT4の場合)。プロキシもオンに。
5.バッドティック除去スクリプトをチャートにドラッグして補正1分足ヒストリーを生成(期間指定忘れずに)。
6.MT4終了させて修正済みM1ヒストリーを「EURUSD1.hst」にファイル名変更。
MT4終了させないと、短い期間のヒストリー選択しても2005年のデータを開いてしまうので要注意。
7.M1ヒストリーに毎日データが入ってるかスクリプトでチェック。
8.オフラインチャートで表示してPeriod_ConverterALLドラッグして全足作成。
9.ここでMT4終了させないとM1ヒストリー更新できないかも?
10.全部の足をライブチャート(オフラインじゃない)で開いて更新。←これも要らない
長い足のデータは普通に左スクロール(Home)で補完。でも短い足でやるなら不要。15分でも2年以上遡るから意外と面倒。
11.MT4落としてヒストリーキャッシュを書き出す。
12.ひと通りできたヒストリーは開始日と作成日をフォルダ名に入れて控えておく。
次から穴が空かないならこれを継続して使う。
13.SpreadRecorder(※)でずっと取ってるM1データをバイナリに追加して、その後はなるべくリアルなM1データを追加していく。
※負荷等で、SpreadRecorderが上手く取れない場合もある。その場合はあとから更新で補完したデータで穴埋めするか?
14.7と同じでM1データに抜けがないかチェック。
15.M1データ以外を消して、Period_ConverterALLで他の時間足も作る。
・スプレッドを設定する
http://d.hatena.ne.jp/fai_fx/20100227/1267196449
faiさんのスプレッドチェンジャー(感謝!!)を使ってEURUSDを30に変更してアップデート。
(全通貨じゃなくEURUSDだけにするように!←毎回忘れるからほぼ諦め)
ただし、リアルトレードではスプレッドは適正じゃないから注意。
実際にはスプが広がったら取引しないロジック入れておく。
他にも、バッドティック避けを入れないと本番稼動はできない(上だとヒストリーレベルでバッドティック抜いてるから)。
⇒つまり、バックテスト=フォワードとはいかない
こんな感じでいいかな。
1 件のコメント:
よかったら使ってみて下さい
http://web2.nazca.co.jp/mutekifx/
コメントを投稿