2011/03/24

FXウォークフォワード分析時代 - 「ウォークフォワード分析」計画課題の検討



さて前回は、 旧SmoothMADIシステム 」の「ウォークフォワード分析」検証計画を立てるにあたっての整理をし、いろいろな計画上の課題が出てきた所まで話しました。
今回は、それぞれの課題についての考察と決めた事を書いていきたいと思います。

ほんじゃ、課題毎に。
今回文章ばっかり。。

【1.対象通貨ペア】
----------------------------
まずマシン利用時間削減のため、このシステムと相性が悪い通貨ペアでする必要も無いので、絞り込み条件を以下の通りにしてみると、6通貨ペアに絞り込めた。

●対象通貨ペア絞り込み条件
 1.「多市場多期間最適化」で、利益テスト数率が40%以上
 2.「多市場多期間最適化」で、平均利益がプラス

 →対象通貨ペア:AUDUSD / EURUSD / GBPJPY / GBPUSD / USDCHF / USDJPY

 これで改めて最適化スキャンに要するマシン利用時間を試算してみると。
 16回×6通貨ペア×3.5H=14日
----------------------------


まだマシン利用時間が長い。。。


【2.最適化期間】
----------------------------
ガイドラインとしては、通常1年~2年。ペースが遅い場合は、3年~6年。
しかし、初心者なので、試行錯誤が必至。
なので、まずは、最適化期間を2年、ウォークフォワード期間を6ヶ月で開始
それぞれの期間の値を、マスターデータとしてデータベースに格納して、いろいろ
試行錯誤してみることに。
----------------------------

【3.ウォークフォワード回数の確保】
----------------------------
10年分のデータを元に、2年の最適化期間/6ヶ月のウォークフォワード期間だと、実質ウォークフォワード期間は、2003年1月から。なのでウォークフォワード回数は実質8年分×2回/年=16回だけ。

ウォークフォワード分析では、隣接していればいいので、最適化期間の前6ヶ月もアウトサンプル対象にすることで、10年分のウォークフォワードデータを採取可能に。

なので、10年×2回/年=20回
少な目だが、まぁまぁの数に。

具体的にはこんな感じ。

●最適化期間とウォークフォワード分析期間の対応
----------------------------

【4.最適化スキャンで使うマシン時間の効率化】
---------------------------
まずは、案をいくつか考えてみた。

●最適化スキャン効率化案
 案1.真面目に2年の最適化期間と6ヶ月のウォークフォワード期間にする
      期間の試行錯誤ができないのがネック。NGなら全て再スキャン。
 案2.スキャン期間の重複しない様にする
    つまり、10年分で一気にスキャンし、全トレードログを採取し、後で加工して
    最適化されたパラメータを求め、そのパラメータでのトレードログを抽出して評価

    最適化スキャンマシン時間=10年÷2年×3.5H×6通貨ペア=4.5日弱
  
    かなり現実的だが、一つデメリットが。

    今回のトレードルールは、資金残高を元にサイジングを決める。
    なので、アウトサンプルの結果を採取する際、最適化期間後の
    資金残高によって、結果が左右されてしまう。

    集計するの大変という事もありますが。。

 案3.上記「2.」を若干改善
    最適化期間での資金残高に左右されない様に、トレードルールのサイジング手法を、
    初期資金残高固定比率方式に変更する(本当は資金残高固定比率方式)

    これは結構現実的かも。
    ただ、最適化用目的関数で求めたパラメータセットに影響が出る可能性が。

●結論
 結局「案2.」にすることにした。
 【理由】
 ・資金残高固定比率のサイジング方式だと、利益が出ている場合、複利効果が
  でてしまい、短いウォークフォワード期間と対等に年率比較ができない。
 ・ウォークフォワードテストをつなぎ合わせて最終的なパフォーマンス検証をする予定
  だが、初期資金残高固定比率のサイジングの方が不利に働くので検証上は安全サイド
  に倒れる事になる。
  (資金残高固定比率サイジングの場合、ドローダウン中はロット数は減っていくから
   ドローダウンは低く抑えられるし、順調な時は複利効果が出る)
---------------------------

さて、次の課題。

【5.試行錯誤をどうやって効率的にするか】
---------------------------
最適化目的関数や、各期間を試行錯誤する時に毎回スキャンしていられない。
かといっって、Excelに全トレード結果を格納してるととても大変。

なので、データベースには、各通貨ペア10年分の全スキャン全トレードのデータを格納。
そして、データベース(SQL-Server)の機能で、結果だけをExcelに出力

で、最適化目的関数や、各期間の設定はデータベース上の一部をいじる
だけで、済む様にすれば結構効率的に試行錯誤ができそう。
---------------------------

なので、当初計画を纏めると

【ウォークフォワード検証計画】
---------------------------
1.対象システム:「旧SmoothMADIシステム 
2.対象通貨ペア:6通貨ペア(*)
    *AUDUSD / EURUSD / GBPJPY / GBPUSD / USDCHF / USDJPY
3.検証対象期間:2001年~2010年
3.最適化期間:2年間
4.ウォークフォワード期間:6ヶ月単位
5.スキャンのレンジと刻み幅:「多市場多期間最適化」と同じ(*)
  *短期独自MA期間:8~17 (1刻み)
    長期独自MA期間:24~51(3刻み)
6.最適化目的関数:悲観的PF(-最大利益)
---------------------------

マシン利用時間が4.5日弱で、
施行錯誤可能なら、

結構満足!!







データベースを習得できればの話ですが。


そして、「FXシステムトレード初心者奮闘記」は、「ウォークフォワード分析」に向けた最適化スキャンに入っていくのでした。データベースを勉強しながら。
#次回ブログ更新少し日にちが空くかも。

0 件のコメント:

コメントを投稿