2009/03/07

バックテストの高速化


EA作りは、何度もバックテスト(検証)作業をしながら作り上げていくものです。
しかし、その検証に時間を費やされることは非常に苦痛です。
今回は、少しでも検証スピードを上げる方法(バックテストの高速化)を提案しておきます。
※なぜEAごとに検証スピードが異なるか?
簡単に言ってしまえば、処理容量が多いとスピードが落ちてしまうからです。
しかし、多くのEA(検証スピードのおそいEA)は、無駄な処理(必要のない処理)が含まれています。
処理作業を遅らせる要因は?
①大量のループ作業
例)100回ループがEA内にあり何も対策をしていない場合
データ分処理するとすれば、100回ループ×4回(1M[初値・高値・安値・終値])×検証時間軸(1Hなら×60)×検証期間となります。
②外部(EA外)の指標(インジケーター)の利用
※表示用に無駄な作業が含まれるため、処理スピード低下の要因となります。
※それらを回避するための対策は?
①大量のループ作業がある場合
A)時間軸の初値でオーダーの取引を検討するEAの場合
※【if(Volume[0]>1||!IsTradeAllowed())return(0);】をint start() { の後に追加しておく。(初値で処理をするという意味です。)
B)A以外のEA
※for(int i=0;i<Limit;i++)をfor(int i=0;i<Limit;i=i+10)のように変更してループ回数を減らしてみる。
※ただし、内容が粗悪になるため注意が必要です。(以外に使えます。)
②外部(EA外)の指標(インジケーター)の利用の場合
※簡単に言ってしまえば、必要な処理だけをEAの中に組み込んでしまえばそれが対策となります。
※しかし、フォワードテストやリアルで使用する際に、表示用として指標を表示させると2重処理していることになるのでPCへの負担は増えます。
例として、VQという指標をEA化したものを添付しておきますので確認してみてください。

まとめ
検討結果が、すぐにわかるのがEA作りの面白いところです。

2009/02/19

Mizutori_EAの賞味期限


このEAの賞味期限を検討してみました。
対象バージョン:Mizutori20.1_Custom_EA(デフォルト)
使用データ:MQ(2006/1~2009/1)※問題はありますが検証用ということで。
添付グラフの説明:月別に取引回数と利益をまとめてみました。


参考資料:VIX指標(恐怖指数)http://chartpark.com/vix.html
参考資料(VIX指標5年)とグラフを見比べて頂くと類似しているような気がしませんか?
前々から気になっていたことですが、この指標を利用すればある程度このEAの賞味期限がわかってくると思っています。


例えば、VIX30以下になると、極端に取引回数が減少しそれに伴い利益も思うように上げることができなくなってきます。
それが、このEA(20.1)の賞味期限ではないでしょうか?
では、どうすればいいのでしょうか?
パラメータを変更して、取引回数を増やす?
たぶん得策ではありません。
私の考えでは、それを補うための新たなポジション取得条件の追加が必要だと考えています。
そのため、最近のバージョンは、新条件を追加したものが多数存在します。
また、新条件毎のPfの設定もできると面白いかもしれませんね。
もうひとつの賞味期限が、先に訪れるかもしれませんが・・・・・・
ご参考までに・・・・
追記
VIX指数が上限に近づくとどのような動きになるか?という質問がありましたので。
※この内容は、私の予測です。
まず、VIX指数とは、
将来の投資家心理を示す数値として利用されており、英語で「investor fear gauge」、日本語で「恐怖指数」という別名が付けられています。
VIX指数は、通常時10~20の範囲内動き、相場の先行きに不安が生じた時に数値が大きく上昇する特徴があります。 だそうです。 これから予測すると、 ①相場の先行きに不安があれば、投資家は、資金を引き揚げる。 ②引き揚げた資金を違う市場で運用する。(少なからず為替市場にも流れているはず。※市場の出来高がわかればある程度裏付けが取れるかもしれませんが、そのような立場にはいませんので確認が取れません。) ③市場での運用されている方のシステムは、ボラが大きくなれば利益が多くなるシステムだと聞いたことがあります。(順張のシステム?)資金量が増えれば行き過ぎた相場になる。これをウサギだとすると。 ④それを捕食するオオカミが増える。(荒れた相場では、乖離が有効とされているそうです。) ⑤VIXの数値が下がれば、資金が戻る。 ⑥ウサギの餌(資金)が減れば、ウサギも減りオオカミも減る。 ⑦オオカミが減れば、このEAの成績が下がる。 と予測しています。 つまり、このEAは、オオカミ的な要素のEAだと思っています。 ご参考までに・・・・・・