2011/10/13

初本番に向けて - WF分析工程手順のアウトサンプル評価方法を考える



さて前回は、「ウォークフォワード分析」手順の見直し後のパフォーマンス評価した所まで書きました。今回は、ウォークフォワード分析」工程見直し手順のブログ記事で、コメント頂いた考慮漏れの部分について、手順の見直しを行っている様子を書いてみたいと思います。

コトの発端をくどくおさらいすると、ウォークフォワード分析」で、目的関数/最適化期間/WF期間を選択する手順で、最初の手順だと評価対象となるデータサンプル数が少なく、ばらつき具合も評価できていない事から、選択した結果がカーブフィッティングしていて堅牢じゃない可能性が高いという懸念をずっと持ってた。

そこで前回、選択方法を検討しなおした結果を大雑把に言うと以下の手順。

【選定の流れ】
-----------------------------
1.最適化期間の目的関数の結果とWF期間純益の「偏差値」を求める
2.R2乗に符号をつける
3.符号付R2乗値のシャープレシオを求める
4.「符号付R2乗値シャープレシオ」のスキャン結果から堅牢ものを選ぶ
5.ブートストラップ法で「符号付R2乗値」が0以下でない事を確認する
-----------------------------

このやり方でパフォーマンス評価までしたブログ記事の中でコメント頂いたのとその派生系を併せて、課題が3点新たにでてきた。

【見直しが必要な課題】
-----------------------------
1.この手法自体のアウトサンプル評価が無い
2.組み込み比率について再最適化要否の検討されていない
  以前パフォーマンスの相関係数の推移を見た時に、結構上下してた。
  なので組み込み比率を計算する時に相関係数を使っている以上、
  組み込み比率の定期的な再最適化があってしかるべき
3.選択する通貨ペアの選定基準が無い
  上記「2.」で定期的に比率を見直すのであれば、選定元の6通貨ペアから
  定期的に入れ替える事も視野に入れるべき。
-----------------------------

実は色々と頭の中で考えてると、なんだかわからない状況になったので、
今回のブログは検討しながら書いてます・・・orz

まずは各課題の検討から。

【アウトサンプル評価方法の検討】
----------------------------
実はしばし悩んでいたけど、今一度原点に立ち戻って見ると、今の目標は最終的にリアル・トレードに近いであろうパフォーマンスとリスクを予測して、実際にとるトータルリスクを決めて、トレード・プランに落とし込むこと。 #当然期待利益がプラスである事は確認するとしてw

このトレード・プランが決まればいいんだから、アウトサンプル評価をどうするかという点は、いいパラメータを選べたかどうかではなくて、ポートフォリオ全体のパフォーマンス観点で見ればいい気がしてきた。 #実はしばし悩んでいた。。

1.アウトサンプル評価方法検討にあたって
  フツーに考えると、相場環境の変化によらず、毎回同じ最適化期間/WF期間が同じというのも
  なんか不自然な気がするし、これから使うパラメータを決めるのに、10年前のデータが間接的
  に影響を与えるというのもなんかヘンな気もする。少なくとも直近と10年前と同等に扱ってるの
  が不自然。
  #10年前のデータが影響を与えたとしても、現在に近づく程重みを大きくするのが自然な気もする
2.インサンプル期間/アウトサンプル期間
  インサンプル6年/アウトサンプル4年にする。
  「インサンプル期間>アウトサンプル期間」という関係にしたかった。
  スキャンする最適化期間を2年よりは大きくしたかったので、
   1年長くして3年。これを倍にする事で3年の最適化期間までウォークフォワード分析
   できる様にした。つまりあまり特別な理由はなくて、感覚的。
3.アウトサンプル評価方法の大まかな流れ
  A.10年のデータのうち、最初の6年でルールを決め、残り4年でアウトサンプル評価する
  B.アウトサンプル評価はトレードパフォーマンスで行う
  C.アウトサンプルを元にトレーディング・プランを作成する
  D.トレード開始時に実際のパラメータを決めるのは直近6年分のデータを使う。
  E.2年周期ぐらいで直近過去6年分データを元にルールを再決定する
  ●上記の背景
   いいパラメータを選べたかどうかの観点だとサンプル数が少なすぎる
   10年前のデータがこれからのトレードに役に立つのか?
   再最適化方法の見直し自体も定期的にした方がいいんじゃないのか
   4年分×4通貨ペアのトレードパフォーマンス評価だと、大体400トレードぐらいに
    なるので、少なすぎるという事は無い。
---------------------------

さて、次の課題は組み込み比率の再最適化要否について。

【組み込み比率について再最適化要否の検討】
---------------------------
以前のブログ記事で、通貨ペアのパフォーマンスの相関係数推移を見た時に、結構変動しているのがわかった。なので、相関係数に基づいて組み込み比率を決めるんだから、再最適化すべきだし、再最適化のルールも必要。

1.組み込み比率の決定方法について
  これは前回のブログ記事でやったやり方の「現代ポートフォリオ理論」で、
  Excelのソルバー機能を使って最適な組み込み比率を決める。
   ちなみに相関係数は月単位収支で計算する。

  ここからが問題だけど、組み込み比率をあんまり細かくしてもしょうがないし、
  1通貨ペアだけ極端に比率が大きくなるのもイヤ。
  #少なくとも半分未満にしたい。
 
  全体で同時にとるリスクを100%とした場合、以下の様にする
  40%より大きい通貨ペアが出てきた場合は、40%に切り下げる
   切り下げた分は残りの通貨ペアに、今の比率通りに分配する
  一番比率が低い通貨ペア以外は5%単位で切り下げる
  一番比率が低い通貨ペアは全体が100%となる様に切り上げる
  
2.過去どの程度の期間のデータを元にするか
  必要なデータは、リターンとリスクと相関係数。
  再最適化ルールを決める時は過去6年分のデータを元にしたけど、
   
  今回どうしよう。。。
   
  6年間だと、相関係数を見るには長く感じるけど、リターンとリスクを見るには
  十分だと思うし、かといってそれぞれ期間が異なるのもヘンな気がする。
  
  面倒なので6年。。
  
3.再最適化期間の決定方法について
  組み込み比率を決める再最適化期間。
  もう、ここまできたらなにが一番いいかなんて深く考えずに、感覚で決めてしまう。
  
  えいやー! 2年。
---------------------------

さて、次の課題としては、どうやってポートフォリオに組み込む通貨ペアを選ぶか。

【通貨ペアを選ぶ方法】
-----------------------
今までは6通貨ペアの中から4通貨ペアを選ぶ様にしていて、常に同じ通貨ペアのセットを選ぶ前提になってたけど、6通貨ペアの中で組合せを動的に変えていくべきじゃないかなぁと。

問題は、どうやってその6通貨ペアから選ぶべきか。

案1.とりあえず全ての通貨ペアを使って「効率的フロンティア」で
   求めた分配率で上位4つを選択する
案2.符号付R2乗シャープレシオが高い上位4つを選ぶ
案3.符号付R2乗シャープレシオが高い上位2つと相関係数が低い
   通貨ペアを組み合わせる

今までの裁量で決めてたやり方は案3。

ここは結構裁量が入ってしまう。結局「符号付R2乗シャープレシオ」が幾ら高くても、収支がすごくマイナスだと選びたくないし、その二つが幾ら高くても、相関係数が高い通貨ペアは組み合わせたくない。

結局、収益が出てて、市場変化に追従しやすくて、相関性が低い通貨ペア群を抜粋する必要があるけど、これを総合的かつ定量的に計算するやり方が思いつかない。裁量を含めた案3にする。
-----------------------

前述の課題とは別に、もっと全体的に再最適化方法をシンプルにする事も考えて見た。

【再最適化ポリシーの再考】
---------------------------
フト思ったのが、堅牢さという点では一つのパラメータで幅広くカバーできるものがいいと思うので、
通貨ペア毎に再最適化の方法/パラメータが異なるのは堅牢性に欠けるという考え方もあるし、
じゃぁ、本当に対象通貨ペアは同じ性質なのかというと、それもまた違う様な気もする。

なので、従来ポリシーをちょっと変形した「再最適化ポリシー」を考えて見た

案1.従来ポリシー
   A.最適化の目的関数は通貨ペア毎に別々
   B.WF期間も通貨ペア毎に別々
   C.最適化期間も通貨ペア毎に別々
案2.新ポリシー:案1
   通貨ペア毎に目的関数が異なるのは感覚的にいかがなものかというところを改善
   A.最適化の目的関数は1種類
   B.WF期間も通貨ペア毎に別々
   C.最適化期間も通貨ペア毎に別々
案3.新ポリシー:案2
   さらに極端な方向に進めると、以下の案に。
   A.最適化の目的関数は一つ
   B.WF期間も1種類(各通貨ペア同じ期間)
   C.最適化期間も1種類(同上)
   
この点も、このタイミングで決める必要があるけど、判断材料がない。
案3はちょっと極端な気がするから削除。なので案1vs案2。

違いは目的関数を統一するかどうかだけなんだけど、素朴な疑問が。
 通貨ペアの特性によって、目的関数が変わってしまうのかどうなのか。
 市場変化で、目的関数が変わってしまうのもなのか。

そんなんでは、変わらない様な気がする。。。

そしてもし、市場変化や通貨ペアで目的関数が変わらないのだとしたら、10年分のデータで決めてもいい様な気がする。なので、10年分のデータで目的関数を一旦決めて、「案2」にする。
---------------------------

とりあえず検討したけど、






アウトサンプル評価でボロボロだったら、

どういう事になるの?



トレードルールの問題?
期間選定方法の問題?
目的関数の問題?
ポートフォリオの問題?
そもそもローリング・モデルの問題??





わからんやん。。。




そして、いろんな疑問をもちながら「FXシステムトレード初心者奮闘記」は、「ウォークフォワード分析」工程で今回の検討結果を基にした手順での評価実施に進むのでした。
#4年のアウトサンプルだとドローダウンが過小評価されそうな気もしてなんだか心配だなぁ。。

5 件のコメント:

  1. さとしぃ 【旧ブログから転記】2013/05/07 18:45

    ご存知かもしれませんが、短い時間枠でのEAでしたら、2006/10以降のヒストリカルをおすすめします。
    メタクオーツから落とせるデータはこれ以前はヒゲが多くPIVOT S1B1を売買するだけで儲かるくらい信頼性が低いため。

    【旧ブログから転記】
    ※ このコメントは、旧ブログで頂いたコメントを、ブログ筆者が転記したものです。

    返信削除
  2. さとしぃ様

    コメントありがとうございます!

    > ご存知かもしれませんが、・・・

    知りませんでした。。。
    2006年10月に一体何があったんでしょうね。。

    ちなみに今回のトレードルールは4H足を使ってるのと、ForexTester2というバックテスト専用ソフトを使っていて、タダで入手できるデータを使っています。
    #元はForexiteの1分足データで、2001/1分から入手できます。

    なので、懸念されてる点は大丈夫だと思います。
    (多分。。。)

    いずれにせよ、今回のトレードルールは、1トレードでの保有期間が長く、結果売買回数が少なくなった事がボディー・ブローの様に効いてます。。。。

    フツー10年もデータあれば十分すぎる検証を行えるはずなんですが、なぜか足りないという不思議な状態です(笑)

    有用な情報ありがとうございました!

    【旧ブログから転記】
    ※ このコメントは、旧ブログのコメントを、ブログ筆者が転記したものです。

    返信削除
  3. フリーマージン 【旧ブログから転記】2013/05/07 18:47

    ポートフォリオですか~。皮膚感覚で申し訳ないのですが、年によってと言うか、そう言うサイクルなのかは分かりませんが、うまく動かない時があります。
    私的な見解では、どこかかの国のバブルの絶頂(あるいは崩壊など)通貨間のバランスが崩れてるのかと思ってますが、正直わかりませんでした。
    ぜひ、この辺を解明していただけるとありがたいです。他力本願でごめんなさい。
    ちなみに私はポートフォリオは諦めてギャンブルEAに改宗しました。

    【旧ブログから転記】
    ※ このコメントは、旧ブログで頂いたコメントを、ブログ筆者が転記したものです。

    返信削除
  4. フリーマージン様

    コメントありがとうございます!

    > ポートフォリオですか~。皮膚感覚で・・うまく動かない時があります。

    おっしゃる通り、そこが最大の被疑箇所なんですよ。
    つまり過去いいパフォーマンスを出した通貨ペアは、その後もいいパフォーマンスを出すという事が言えないと全く意味が無いアプローチになってしまう点です。

    皮膚感覚は大切な情報源だと思います!
    私はまだFX勉強初めて1.5年強ぐらいなので、いわゆる「相場勘」なるものも無いので、今は数字だけが頼りなんですよね(笑)

    > 私的な見解では、どこかかの国のバブルの絶頂・・

    ファンダメンタルは価格変動の因果関係を証明できないんじゃないかと思うので、あまりアテにしてないんですよね。
    #著名な方から後講釈で説明を受けても、それが事実かどうか確認する手段が無い。。
    #勉強するのにファンダまで手が出せれてないというのも結構ありますけど(笑)

    > ぜひ、この辺を解明して・・・

    2つの通貨ペアでパフォーマンスの相関関係は変動しつつも存在してものもあるっぽいので相関係数はポートフォリオの組み込み比率を決める一つのデータとして利用できるんじゃないかと思っています。 

    結局組み込み比率を均一にしないのだとしたら、何が有効なのかを今試して見ているところなので、それが終ったら次のブログ記事になると思います。
    #期待に沿える事になります?? 勘違いしてたらすみません。。

    ところで、ギャンブルEAってどういう代物です??

    【旧ブログから転記】
    ※ このコメントは、旧ブログのコメントを、ブログ筆者が転記したものです。

    返信削除
  5. フリーマージン 【旧ブログから転記】2013/05/07 18:48

    お返事ありがとうございます。

    やはりみなさん同じような所で引っかかってるのだと改めて理解しました。

    ギャンブルEAってマーチンゲール等のギャンブル手法(資産管理)でのやり方です。小ロットじゃないとキツイです。

    私はEAを多く作ってる内にFXはギャンブル(資産管理方法)じゃないかと言う結論になりました。名前もフリーマージンと言うのはそこからです。まだ勉強不足かもしれませんね。

    では、次回の検証を楽しみにしています。


    【旧ブログから転記】
    ※ このコメントは、旧ブログで頂いたコメントを、ブログ筆者が転記したものです。

    返信削除