さて前回は、「一目均衡表:三役好転」システムにサイジングロジックを入れ、次の開発工程に進む事を決断したところまで話しました。
今回は、「正しい開発手順は?」の記事で登場する、多市場多期間検証の計画を立てる様子とForexTester2検証速度向上案について書いてみたいと思います。
この多市場多期間検証という工程の目的は、モデルの堅牢性を短時間で予測し、これまでよりも広い視点でパフォーマンスを検証すること。これで、潜在的利点というものが見えてくるらしい。
この検証結果がよければ、期待していいって!!
計画立案で決めなければならないことを、
「アルゴリズムトレーディング入門」で見てみると。
---------------------
1.検証対象通貨ペア
少なめでいいらしい。でも限定するから、分散した方がいいとのこと。
つまり、市場の相関関係が低く、多様性に富んだのがいいらしい。
書籍では、5市場。
2.検証期間の長さの決定と、セグメント化
これは、10年あれば充分らしい。
それを、2年毎に区切る事が例示されてた。
2年毎に区切るのは、それぞれでパフォーマンスが均一である
事をがベストとのこと。
3.評価項目(目的関数)
書籍には明確に書いてない。
良くない例と、平均的な例、優れた例が掲載されてる。
優れた例では、どのセグメントもどの通過ペアも収益がプラス。
---------------------
私の検証計画
---------------------
1.検証対象通貨ペア
初心者のワシにはわからん!! 元々この書籍はFX用ではなく、
どちらかというと、先物取引をイメージしている。例は載っているが、
「コーヒー」とか言われても。。。。
なので、ForexTester2の日本語サイトからダウンロードできた14通貨ペア
全部にすることに。
思わぬ発見もあるかもしれんし。
2.検証期間の長さの決定と、セグメント化
2001年からのデータしかなくて、計画時点では2010年。
つまり、2010年12月末までのデータはない。。
なので、2001年~2008年のデータを2年毎にセグメント化する
事に。(つまり、4セグメント)
まぁ、2009年~2010年は処女データとしておいておくか。
3.評価項目
定量的に図る方法の記載がない。。。その後の修正で改善されたのかどうなのか。。
せや!「トレーディングシステム徹底比較」に載ってる評価方法をベースにしよ!
理由は、この書籍に掲載されているシステムと比較できる事と、適正値の目安が
ある点。
【評価項目】
●サマリ(8年分)
01. 純益(US$)
02. 月単位最大ドローダウン額(US$)
03. シャープレシオ
資金残高曲線観点で、リスクとリワードを比較するもの。
良いシステムは0.5以上
→ 月次収益平均÷月次収益標準偏差
※でも上記書籍でこれをクリアしてるのが無かった。。
04. Kレシオ
資金残高曲線が滑らで正の傾きを持っているかどうか。
良いシステムは、2.0以上
→ (資金残高の回帰線の傾きの標準偏差)×(評価日数の平方根)
※でも上記書籍でこれをクリアしてるのはたった2つだけ。。
05. 12ヶ月利益ウィンドウ率
12ヶ月ローリングオーバした時に、利益になっている比率。
システムを使った時の精神的な尺度にも。
06. 年率調整済みリターン ・・・ 「アルゴリズムトレーディング入門」より
最大ドローダウンが検証結果の2倍だったときの年率
07. リスク/リワード・レシオ ・・・ 「売買システム入門 」より
これも資金残高曲線の滑らかさの観点
傾き÷標準偏差
●詳細
・通貨ペア単位での収益
・セグメント単位(2年分)での収益
・通貨ペア×セグメント単位での収益
・セグメント単位(2年分)での、シャープレシオ、Kレシオ、リスク/リワード・レシオ
ドローダウン率
●資金残高曲線グラフ
月単位の決済済み収益を反映した資金残高を、4セグメントをつなぎ合わせて
グラフ化
4.その他
●評価時は、同じセグメントでも1通貨ペアづつ順番に実施する。
●優位性を比較する時は、修正前後で、通貨ペア/セグメント単位での収益
で、t-検定を行ってみる
●初期投資資金:5万US$
と、とりあえず。。。。
----------------------------
それで、いそいそと集計用Excelファイルを作成。
独自ログと、「Strategy optimizer」実行後のサマリ出力結果を
Excelに貼り付けると、上記項目を自動計算する様に。
ちなみに、この工程に入るとパソコン性能が必要!
ForexTester2での検証に時間がかかる!!
1ウィンドウあたり数時間
14通貨ペアで評価してるオレが悪い!?
なので、速度改善策案について書いてみました。
【ForexTester2の速度改善案について】
本記事の後の内容は、ForexTester2でこの評価をするにあたっての、
パソコン環境がらみの奮闘記です。要は遅いってことへの対処。
#トレードとは全く関係ありません。ForexTester2ネタです。
※参考までに私のPCのスペック
OS:WindowsXP
CPU:Intel T2400 @ 1.83GHz(2core) 、 メモリ:2GB
==============================
【問題内容】
遅い。。。
【状況】
CPU使用率はかなり余裕。高くて50%ぐらい。
ディスクI/Oランプがつきっぱなし。
しかも、時々Windows自体がフリーズする。
搭載メモリ2GBに対して、コミットチャージ最大値1.4GBぐらい。
しかも、ページファイルを使わない様にしているから、ページアウトは無い。
【観察・考察】
システムモニタでみたら、ディスク読み込み量が圧倒的に多かった。
なので、パフォーマンス・モニタで、ディスクI/Oの多い順に並べて犯人探し。
(もちろん、ForexTester2とセキュリティソフト以外で)
【簡易的な改善案】
共通しそうな対処法が記載されているURL情報です。
----------------------------
第1位:jqs.exe
Java関連のモジュールらしい。
ディスクの読み込み量がセキュリティソフトの20倍ってどんな
プログラムやねん。
第2位:wmpnetwk.exe
WindowsMediaPlayerの設定によっては動くプロセスみたい。
第3位:lsass.exe
なんとタスク・マネージャを起動していると、こいつがDiskI/Oする
らしい。遅いからタスク・マネージャを立ち上げて様子をみていた
のがアダに。
----------------------------
対処したが、正直、体感速度はあまり変わっていない様な。。。。。
==============================
【問題内容】
ForexTester2でストラテジ実行中に急にWindowsがフリーズ状態に
なってしまう。
【解析内容】
検証中にシステム・モニタみてたら、ディスクからの読み込み
が大半で、書き込みはほとんどナシ。
そして、同じタイミングで「Avg. Disk Queue Length」が急騰。
「Avg. Disk Queue Length」とは、選択したディスクのキューに入った読み取り及び
書き込み要求の数の平均値らしい。
で、この値が常に大きいとディスク入出力要求が過剰な状態といえるらしい。
この項目は、物理ディスクネックの話なので、パーティションを別けた所で意味なし。
【対処法の案】
案1.ディスク読み込み速度を早くする
ディスクそのものを早くするか、Windowsがインストールされている
物理ディスクとは別の物理ディスクにForexTester2をインストールするかの
いづれか。
・Windowsのフリーズに対処できればいいだけであれば、ForexTester2を
Windowsとは別の物理ディスクにインストールする。
#そのディスクにページファイルは作らない事。
・デスクトップPCでバス速度が速いPC使っているのであれば、SDDを
内部増設する。
・ノートPCでUSB3.0のインタフェースを持っているのであれば、
外付けSDDでもいいかも。
案2.データを先にOSのメモリにのせてしまう
・メモリが大量(8GBぐらいかなぁ)に搭載しておいて、
測定開始前に以下のディレクトリ配下をどこかのディスクにコピーする。
ForexTester2\data\TestingMode
このコピー操作でディスク上のデータがOSのメモリにのっかると思うので、
早くなるかも。コピーだとシーケンシャルリードだろうけど、Forextester2は
ランダムアクセスだと思う。なので、最初にコピーする時間を考えても、
早くなると思う。ちなみに、データ量は1.2G程度。
まだ試していないので、効果は保証できましぇーん。
そして、「FXシステムトレード初心者奮闘記」の多市場多期間検証時代は、「一目均衡表:三役好転」システムを計画にそって検証を開始するのでした。
#それでもForexTester2は好きですよ。。信じてください。。
0 件のコメント:
コメントを投稿