これからの「お金」の話をしよう

(旧 システムトレードのススメ)

期待値の確からしさ

f:id:uki-profit:20170814220040j:plain

前回の記事で記述した「期待値の確からしさ」について考察します。

期待値の確からしさは本来であれば理論的に求めるべきなのですが、現実のデータは複雑に絡み合っており解が求まることはまずありません。よってこれを求めるには実践的な手法に頼るしかありません。

 

まずは以下のバランスカーブをご覧下さい。これはある単純なファクターモデルについてシミュレーションした結果です。

161118-1.png 

ベースとなるモデルは説明変数Aと目的変数Zの2つの変数から成り、AとZに不変の相関ρが存在します。まずAとZについて、正規分布且つ互いに相関ρを持つ乱数をそれぞれN個発生させてデータセットを作り、これをインサンプルデータとして単純な回帰モデルを求めます。続いてもう一度乱数をそれぞれM個発生させて、こちらをアウトオブサンプルのデータセットとして先ほど求めた回帰モデルの精度を検証します。このバランスカーブが得られたとき、両者の相関係数はどれくらいでしょうか?

 

種明かしをすると「相関係数は0」です。同様の内容のシミュレーションを255回繰り返すと以下のようになり、上記のデータは255回のうちのベストデータとなります(255回というのはエクセルの描画限度であり、通常であれば1000回以上は試行します)。

161118-2.png

もうお分かりでしょうが、期待値の確からしさを求めるためにはこのようなランダムシミュレーションを行うしかありません。これはモンテカルロ法と呼ばれる手法であり、統計の世界では一般的に使われています。システムの信頼性を把握するためにはリターンの母集団に対して検定を行う手法もありますが、そのやり方ではこのようなランダム効果の影響を排除することはできません。

 

もしもAとZの相関係数がρ=0.1の場合は以下のようになります。ここでもベストデータとモンテカルロシミュレーション結果全体の両方を記載しておきます。

161118-3.png  161118-4.png 

 

では実際のストラテジーの期待値の確からしさの求め方ですが、十分な母数のトレード対象を確保しつつブートストラップ法によりバランスカーブのばらつきを算出します。ブートストラップ法はモンテカルロ法の一種であり、母集団からランダムに復元抽出を繰り返すことで、得られた結果から母集団の性質を推測するものです。当然ながら、得られたバランスカーブの中で最も中央に位置する代表特性の期待値は、母集団そのものの期待値とほぼ一致するはずです。また優れたストラテジーでは代表特性まわりのばらつきが小さくなるはずです。

 

例えば、よく見掛けるようなトレード数2000回、期待値2%のストラテジーがあったとします。この場合、この結果が「期待値2%の10万個程度の母集団」から得られた結果であれば信頼できるでしょう。しかし多くの場合はそうではない筈です。おそらく「期待値0.1%の10万個程度の母集団」からどうにかして集めた2000個だと思います。これで実運用で期待値2%が出ると考えるほうがおかしいと思いませんか?

あなたのストラテジーは、上記のように255個のうち最も良いものを選ぶ作り方になっていませんか?様々な条件を追加し母集団を削りとって都合の良いデータを選別する作業になっていませんか?目的はバックテストのバランスカーブをきれいにすることでなく、実運用できるストラテジーを作ることです。とりあえずで追加する「移動平均乖離率≧0」などという条件が、どれほど統計的な信頼性を損なう愚行であるか、理解できると思います。

少しキツ目の口調になってしまいましたが、ご容赦下さい。