【騙されないための知識8】最適化は最適か?上巻
タイトルは駄洒落から始まっている気がしますが、中身は
大真面目
ですw
最も投資家が騙されてしまうポイントであり、チェックポイント
としても最も難しい項目かもしれませんな。
で、
最適化ってなんじゃろ?
って思ったあなた。良いポイントをついてきますな Σ(・ω・ノ)ノ!
最適化とは簡単に言えば、
最もパフォーマンスが良い数値を探すこと
※数値とは例えば移動平均線の観測日数とかパラメーターのことね!
でしょうな。それって「良いことじゃないの?」と思えてしまうのだが、
最もパフォーマンスが良い数値とは言い換えれば、
過去の変動に適したパラメーター
であり、
過去しか通用しないパラメーター
である可能性が潜んでいるのだ。これは恐ろしいことで、過去には通用
するけど、未来には通用しないってことにもなるのだね。
最適化は全部が全部悪いってわけじゃないよ。
で、ここで問題になってくるのが、
① 良い最適化とはどんなの?
② 悪い最適化とはどんなの?
ってことだろうね。実はこの判断がかなり難しい (´□`。)
まず、最適化の是非を探る前に、トレーディングシステムの仕様について
以下の点を調べてみる。
ⅰ 使用しているパラメーター個数が公開されているかどうか?
ⅱ 最適化を施しているかどうか公開されているか?
ⅲ トレード回数は適切かどうか?
ⅰとⅱは無い時点で使用するに値しないかな~。だって、どんなリスクが
内在しているかわからんもん。パラメーターを使ってないなら話は別だけ
どね♪
この時点でほとんどの商材はアウト~ ( p_q)
とは言わないよw 商売の邪魔は致しませんので・・。まあ、公開されてい
なくても完全なブラックボックストレーディングシステムも存在するからね
え。選ぶ際は自己責任だと思う。
次にⅲは重要ね。過度に最適化されているトレーディングシステムの特徴
の1つ
トレード回数が異常に少ない
ってのがありんす。必ずしも悪いってわけじゃあないけど、サンプル数が
少ないと判断ができないってことね。トレード回数の方が判別が早いから
先に言っちまおう。
判定式1=総トレード数-(ロジック数+ロスカットロジック数)×2>0
この式でプラスの値じゃないとだめね~。考え方はちょい難しい・・
偏差の合計は0になるから不偏分散ではサンプル数-1で除算するのね。
これを応用して判定式1を自由度とするのであれば、プラスの値じゃないと
サンプル数不足てわけ。まあ、式だけ覚えて頂戴な!
判定式2=(最大観測日数+(ロジック数+ロスカットロジック数)×2)×8
この式はバックテスト期間が足りているかどうか把握する計算。最適化
したら多くの測定期間がないと不安なのね。よって、必要最低限の測定
期間があるかどうかの判定。係数の「8」は経験上の数字。ちょっと甘い
かもしれない。
ち・な・み・に
ロジック数とは、1つのトレーディングシステムには1つのメインロジック
だけとは限らないのね。複数のシステムが1つのトレーディングシステム
となっている場合もありんす。ロスカットも同じくだよ~。
で、問題のパラメーターの問題
パラメーターは3つ以上あるとヤバイって言われる。要するに、都合の良い
数値を弾き出しやすいってことね。多くの条件があれば、いづれは勝てる
条件と数値がでちゃうわけね。この過去にとって都合の良い設定条件を、
オーバーフィッティング(カーブフィッティングでも可)
っていうのだね。とりあえず例題をみてみましょ♪
【日経平均で実験】
移動平均線を2本使い、クロス売買を繰り返す
★パラメーター
短期線 ⇒ 5日
長期線 ⇒ 25日
★売買条件
短期線が長期線を上回った ⇒ 買いシグナル
短期線が長期線を下回った ⇒ 売りシグナル
両社とも順張り方針
Go!
【パフォーマンス】 測定期間 1982年~2010年
Net Profit 47516.15
Profit Factor 1.508108962
Max Close To Close Drawdown -5716.9
Total # of Trades 398
Total # of Open Trades 1
Number Winning Trades 150
Number Losing Trades 248
% Profitable 37.68844221
Avg Trade (win & loss) 119.3873116
Average Winning Trade 940.2121333
Average Losing Trade -377.0793145
Ratio Avg Win / Avg Loss 2.493406817
Largest Winning Trade 8595.6
Largest Losing Trade -2045.6
まあ、一応は勝ってますな。で、これに最適化を施す
わけですよ。パラメーターは2つ、最適化条件は
短期線 5日~100日
長期線 5日~100日
を全検索しまする。約10000通りぐらいかな。それを全て
パラメーターの値を1つづつ変化させながら、変化させた毎に
パフォーマンス結果が出来上がるわけです。
損損益を軸にした場合のパラメーター毎の総損益変化は↓
3Dが動かせないから見難いけど、赤丸らへんからプラスの
リターンになってる。順張り方針だから、
短期線日数 < 長期線日数
を考えると、長期線の日数は大きければ大きいほど良好で、
それに反比例して、短期線の日数は小さければ小さいほど
良好と判断できますな。
今回は今が一番好調だっていうパラメーターの組み合わせ
を選びますた。
プロフィットファクター 2.62 ⇒ 短期線12日 長期線100日
でバックテスト結果
【パフォーマンス】 測定期間 1982年~2010年
Net Profit 47170.44
Profit Factor 2.624511609
Max Close To Close Drawdown -5772.1
Total # of Trades 76
Total # of Open Trades 1
Number Winning Trades 34
Number Losing Trades 42
% Profitable 44.73684211
Avg Trade (win & loss) 620.6636842
Average Winning Trade 2241.386176
Average Losing Trade -691.3497619
Ratio Avg Win / Avg Loss 3.242043753
Largest Winning Trade 5330.6
Largest Losing Trade -2971.5
総損益と最大ドローダウンはDownしたけど、他の項目は
改善しますた。トレード回数が減ったことにより、コストが
減るから、実質的に全て改善したってことね。
これが最適化ってやつなんだね (ノ´▽`)ノ
例題の場合はまだ通用する可能性もある。なぜなら、多少
パラメーターの数値を変化させても、デフォルトの測定結果
から大きく離れていないから。
トレード数は減ったけど、測定期間から許容範囲と思われ。
けど、何か腑に落ちない感じがあるよね~
ということで、下巻は過度の最適化と、悪い最適化の見極め
方を扱いまする~


