FX自動売買システムが、あなたの代わりに24時間不眠不休でプロ並みのトレードをやってくれる!山本克二
各社自動販売ツール徹底比較 各FX会社とのタイアップ 当サイト限定キャンペーン

今月のおすすめ

シストレ24
ミラートレーダー国内最大手
最大10,000円キャッシュバック中!

関連記事へ

セントラルミラートレーダー
おすすめポートフォリオを参考に、MTP機能でポートフォリオの一括登録も簡単。

関連記事へ

FX自動売買としては希少な、ミラートレーダー以外の選択型プラットフォーム。

エコトレFX
通貨と取引量に応じて最大60万円キャッシュバック

関連記事へ

【質問】
MT4でシステムのプログラミングをしています。あれこれと試している内に、有効と思われる仕掛けのパターンを見つけたのですが、これが本当に有効なのか、偶然に良い結果だったのかを判断する良い方法はありますか?

【回答】
このような問題に結論を出すために、統計学では分散分析という手法を使います。例えば、元は30回中5回は有効に機能したロジックを改善したら30回中15回うまく機能したという場合に、それは偶然に起こったのか、それとも偶然とは考え難いのか、つまり本当に改善したのか、ということを検定するわけです。偶然とは考えに難いということを統計学では、「有意」などと表現します。
分散分析の中で、2つの事象を比較する場合にはエクセルの関数にもあるT検定が便利です。具体的な計算方法は、拙著「使える売買判別法」などをご参考にしてください。

ここでは、もう一つ別の方法として、簡易的ですが直感的に分かりやすい母比率の信頼区間を利用した判別法について話します。母比率というのは、母集団の比率の意味で、実際の実験で得られた確率から、大元にある母集団の確率を予測する手法です。つまり、母比率を計算することで、ある確率で正解するロジックの実力を予測しようとするわけです。例えば、30回中に5回正解を導いたロジックの実力はどのくらいの正解率かを信頼度95%で予測すると、以下のような計算式になります。

母比率の上限値=5/30+1.96*sqrt((5/30)*(1-5/30)/30)=30%
母比率の下限値=5/30-1.96*sqrt((5/30)*(1-5/30)/30)=3%
(30になっているところがデータ数、5になっている部分が正解数です。)

つまり、30回中5回の正解率だったロジックの真の正解率は3%から30%の間であろうということです。サンプル数が30と少ないので、予測の範囲がかなり広くなっています。つまり、30回程度のサンプルでは、あまりはっきりしたことが言えないという意味です。

ここで、同じ計算式で、30回中15回について計算すると

母比率の上限値=15/30+1.96*sqrt((15/30)*(1-15/30)/30)=68%
母比率の下限値=15/30-1.96*sqrt((15/30)*(1-15/30)/30)=32%

この2つの母比率(の範囲)を比較すると重なっていません。前者の最大の予測30%より、後者の最小32%の方が大きいわけですから、この2つのロジックは全く異なる実力を持ったものだということになります。つまり、同じものが偶然に異なる結果を出して、改善して見えたのではないということが高い確率で言えます。

こうい場合は、自信を持って改善後のロジックを採用していいでしょう。逆に、この範囲が重なっていれば、たまたま改善して見えた可能性があるということです。

実験で得られた確率はあくまでサンプルですから、それを鵜呑みにするのではなく、母比率の信頼区間を推定してみることが重要です。この計算式は、さほど複雑なものでは無いので、覚えておくと、いろいろな局面で、判断の役に立ちます。ご参考にしていただければと思います。


---補足:母比率が重なってしまった場合はどうするのか?---

トレーディングシステム開発の実務では、改善の証明ができないからといって、そのまま不採用ということにはなりません。なぜなら、重なった場合の結論は、「改善しているとは言えない」というものだからです。これは、改善していないということではなく、逆にいうと改善を確信できなかっただけなのです。(このあたりの入り組みは統計学独特の考え方で、少々分かり難いところです。)そこで、改善前、改善後両方のロジックで並行してフォワードテストを継続して、サンプル数を増やします。

例えば、30回のトレード結果(サンプル)で変更前が10回、変更後が16回の場合は、改善の判別がつきませんが、120回のトレードでも、新しいロジックが同じ確率で機能するとなれば、修正前の上限値42%より修正後の下限値が44%と高いため、改善したと考えることができます。使うサンプルデータの数が増えれば増えるほど、微妙な差を検出できるようになるところがポイントです。

30サンプルの計算式
・改善前
母比率の上限値=10/30+1.96*SQRT((10/30)*(1-10/30)/30)=50%
母比率の下限値=10/30-1.96*SQRT((10/30)*(1-10/30)/30)=16%
・改善後
母比率の上限値=16/30+1.96*SQRT((16/30)*(1-16/30)/30)=68%
母比率の下限値=16/30-1.96*SQRT((16/30)*(1-16/30)/30)=32%

120サンプルの計算式
・改善前
母比率の上限値=40/120+1.96*SQRT((40/120)*(1-40/120)/120)=42%
母比率の下限値=40/120-1.96*SQRT((40/120)*(1-40/120)/120)=25%

・改善後
母比率の上限値=64/120+1.96*SQRT((64/120)*(1-64/120)/120)=62%
母比率の下限値=64/120-1.96*SQRT((64/120)*(1-64/120)/120)=44%

前回の例のように大きな改善であれば、30回程度のサンプルでも判別ができますが、経験上は30程度のサンプルで分かるほどの大きな改善には、なかなか恵まれません。そういう意味で、統計学的に確信がもてるような検証をしながらシステム開発をしようとすると、かなりのサンプル数が必要で、そのための時間もかかることになってしまいます。細かなロジックのアイデアやパラメータの修正は日々思いつくのに、その有効性の評価に何ヶ月もかかってデータを集めるのは、じれったく感じるかもしれません。

しかし、私の経験を通じて言えることは、間違った改善をしてしまうことが一番恐ろしいことだとということです。本当は何の改善もしていないのに、実験でたまたま良い成績を出したロジックを採用してしまって、後で痛い目に合うことは避けたいものです。

システム開発は、日々改善の積み重ねですから、「本当に改善したのか否か」の見極めが不十分だと、無意味な変更ばかりを繰り返してしまう危険性があります。山の中で同じ道をぐるぐると巡ってしまうような出口のない作業になってしまうのです。システム開発をしている人は、誰しも一度はこのように、良いように思ってさまざまなロジックを組み合わせたが、結局何が良かったのか悪かったのか、そもそも以前より進歩しているのかそうでないのかも、さっぱり分からなくなってしまった、という経験があるのではないでしょうか?

歩みは遅くとも、確実に階段を一歩一歩上っていくようなシステム開発をするための一つの方法として、統計学の利用は有効です。


FAQに戻る

2011年07月01日  | ストラテジーを作る方法  | 記事URL