FX自動売買ソフト設計・開発

システムコンサルティング

ウォークフォワード分析

約 5 分



前回の記事からの続きでバックテストからもう1歩踏み込んだテスト方法の1つであるウォークフォワード分析を備忘録も兼ねて書きたいと思います。
【システムトレード検証と実践】著者 ケビン・J・ダービー
から、私なりに解釈した内容を書きます。実際にこの方の通りに検証を行うと時間とお金にゆとりがある方でないと本の通りに検証できないので、私が実践した簡略化した内容になります。

著者は実際にウォークフォワードにかけるまでの過程が長いので私は省くことにしています。
時間がかかりすぎるので。
著書の中に書かれているモンテカルロシミュレーションについても今回は省きます。

<事前準備>
品質90%以上のテストしたい通貨のヒストリカルデータを準備する。
※私は最近アルパリ使ってます。品質99.9%のやつもあるみたいだけど。



①完成品EAを初期パラメータで直近2年でBTする。
手動で何パターンか合わせ込む。→全くダメならここで終了。このEAにはエッジが無いと判断しさっさとあきらめる。手動で色々なパラメータを変更して試したところで手動で過剰最適化をしていることと同じだし、これに時間を費やして良い結果が出たことが無い。
・ダメの定義は損失の大きさ、・取引数の少なさで判断する。


②ウォークフォワードにかけるパラメータの選定
このあたりを著者ははっきり言わないので私の経験値から導きだした最適化するべき項目
・TP(買いと売りは分ける)
・SL(買いと売りは分ける)
・ボラティリティに関係するパラメータ全て (通貨ペアによって必ず違う為)
・取引時間 ※ここは私的には最適化せず最後のテスト結果後にQA等の分析ソフトであきらかに
       不利だと確認できれば
       その時間帯にフィルターをかければ良いだけだと考える。

③ウォークフォワード(最適化)期間 インサンプル
真面目にやろうとすると14回も下記期間で最適化しないといけない。
私の考えではリーマンショックの期間を入れておけば端折っても構わないと思う。
1回目: 2000-2005
2回目: 2001-2006
3回目: 2002-2007
4回目: 2003-2008
5回目: 2004-2009
6回目: 2005-2010
7回目: 2006-2011
8回目: 2007-2012
9回目: 2008-2013
10回目: 2009-2014
11回目: 2010-2015
12回目: 2011-2016
13回目: 2012-2017
14回目: 2013-2018
15回目: 2014-2019   ※15回目は省いても良い

④最適化後の判定
最適化をかけると多数結果がでてくるがその中で何を基準に選ぶのか?
判断基準は著者もあいまいな点があるが、私も著者に準じながらも取引数に関しては私の考えが入っている。
・純利益 ※利益が無ければ話にならない。
・最大DD ※最大DDは小さい方が良いに決まっている。
・取引数 ※最適化するパラメータが1つある場合は25~50トレードがあること(1年あたり)
      統計的優位性を得る為、私はこれをかなり重要視している。
      4パラメータ最適化するなら100~200以上トレードが欲しい。
      これは多ければ多い程良いと考えるがネガティブスリッページとネガティブスプレッドの問題がでてくるので
      あまりにも多い場合はその辺りを考えて最良の結果を選択しなくてはいけない。
判定:この3つの要素で総合的に最良のパラメータを保存して、次の期間の最適化を行う。

⑤ウォークフォワード(仮想フォワード)期間 アウトオブサンプル
 ③で保存したそれぞれの最適化パラメータを用いて仮想フォワード1年行う。

1回目: 2000-2005   仮想フォワード:2005-2006
2回目: 2001-2006  仮想フォワード:2006-2007
3回目: 2002-2007  仮想フォワード:2007-2008
4回目: 2003-2008  仮想フォワード:2008-2009
5回目: 2004-2009  仮想フォワード:2009-2010
6回目: 2005-2010  仮想フォワード:2010-2011
7回目: 2006-2011  仮想フォワード:2011-2012
8回目: 2007-2012  仮想フォワード:2012-2013
9回目: 2008-2013  仮想フォワード:2013-2014
10回目: 2009-2014  仮想フォワード:2014-2015
11回目: 2010-2015  仮想フォワード:2015-2016
12回目: 2011-2016  仮想フォワード:2016-2017
13回目: 2012-2017  仮想フォワード:2017-2018
14回目: 2013-2018  仮想フォワード:2018-2019
15回目: 2014-2019  仮想フォワード:2019-現在 ※15回目は省いても良い (期間が他と違うので比較できない)

⑥ウォークフォワード分析結果
・仮想フォワードを行った中で最も純利益の高いデータを最良とする。※利益が全てにおいて絶対的です!

⑦全期間の仮想フォワードテスト
・2000-2019.現在までの全期間でBTする。※これで良い成績が出なかった場合に再度調整しないこと。
 これ以上の調整は過剰最適化となるので、ダメならエッジが無かったとあきらめる。
 私はこれであきらめきれず時間を浪費したが、結果が良くなったことは無い。
 コアな部分のロジックを始めから練り直した方が良い。

~まとめ~
著書にはこれ以上にしなければならないことが膨大に書かれているが、よっぽど自信のあるEAがあって、
すごく良い成績をだしているので他の通貨ペアを探そう!という目的でもないととてもやろうと思わないぐらい時間を奪われます。。。

最近作るEAは最適化を行わずにBTで成績が良いのでウォークフォワードまでやっていないので備忘録として
書いてみました。もし、面倒だから代行して欲しいという方がいましたらご連絡ください。
高いですけどね。。。笑

Leave A Reply

*
*
* (公開されません)

竹下制御設計Takeshita control design