【騙されないための知識8】最適化は最適か?下巻 | Unknown world

【騙されないための知識8】最適化は最適か?下巻

>>上巻はこちら


さて騙されないための知識第8弾「最適化は最適か?」の下巻で

ございます~♪

前回は最適化って何?的な内容が大半でしたが、今回はどんな

最適化が


良いのか?悪いのか?


という判別をメインに扱いまする。最適化っていうのは、採用する

パラメーターを過去の動きに一致させる作業でございますが、

あまりにも一致させ過ぎると未来に対して通用しない可能性が

でてきまする。そうならないような最適化が望ましいのであります。

要は、トレーディングシステムに


ロバスト性(堅牢性) または 再現性


を持たせなければトレーディングシステムとして成り立たないって

ことであります。

小難しいことを申しておりますが、使えるシステムを構築しましょう

ってお話であります。

説明の前にパラメーターの定義みたいなもん


パラメーターとはロジックに直接作用する数値もしくは

トレードポイントの選別に作用する数値


ってこと。FXとかの場合トレード時間をロジック上で設定する

必要もあるけど、そういった環境設定のパラメーターは別ね。


説明が回りくどいので例題をみて結論を導き出しましょ!!



★比較的良い数値の選び方


日経平均を売買したと仮定した

あるシステムのパフォーマンスをみます

このシステムにはパラメーターが2つあり、


① 横ばいを感知するためのパラメーター

② ロスカット


の2つの役割を持たせてあります。



chapon式システムトレード-4-22KK
【パフォーマンス】 測定期間 1982年~2010年

Net Profit 29615.17
Profit Factor 1.229056813
Max Strategy Drawdown -11169.8
Total # of Trades 841
Total # of Open Trades 0
Number Winning Trades 390
Number Losing Trades 450
% Profitable 46.37336504
Avg Trade (win & loss) 35.21423306
Average Winning Trade 407.4537949
Average Losing Trade -287.3151333
Ratio Avg Win / Avg Loss 1.418142477
Largest Winning Trade 5667.3
Largest Losing Trade -2431.8


とまあ、微妙なパフォーマンスであります。このシステムの

パラメーターを、


① 横ばいを角度として感知 5~50度

② ロスカット 10円~2000円


で全検索最適化を施してみまする~


検索数 91586パターン

時間 28:52

時間かかる・・ ( p_q)


その結果を総損益を軸に3Dグラフ化してみます。



chapon式システムトレード-4-22 3D

特徴はロスカットは500円を境に変化は無くなりますね~

横ばい感知の角度は少ない値になればなるほど総損益は向上

って感じですね~。ただ、角度8度を境に悪くなります。あまりに

小さい角度だとダメってことですかね。

で、選抜する数値は2つ選択、


★総損益TOPの数値

角度・・8度

ロスカット・・944円


chapon式システムトレード-4-22KK2

【パフォーマンス】 測定期間 1982年~2010年
Net Profit 46849.58
Profit Factor 1.44636868
Max Close To Close Drawdown -10127.1
Total # of Trades 598
Total # of Open Trades 0
Number Winning Trades 298
Number Losing Trades 299
% Profitable 49.83277592
Avg Trade (win & loss) 78.34377926
Average Winning Trade 509.4185235
Average Losing Trade -351.0272241
Ratio Avg Win / Avg Loss 1.451222266
Largest Winning Trade 6831.9
Largest Losing Trade -3106


★この程度で十分と思われる数値

角度・・12度

ロスカット・・600円


chapon式システムトレード-4-22KK3
【パフォーマンス】 測定期間 1982年~2010年

Net Profit 39989.78
Profit Factor 1.339399298
Max Close To Close Drawdown -12634.1
Total # of Trades 698
Total # of Open Trades 0
Number Winning Trades 337
Number Losing Trades 361
% Profitable 48.28080229
Avg Trade (win & loss) 57.29194842
Average Winning Trade 468.2936202
Average Losing Trade -326.3855125
Ratio Avg Win / Avg Loss 1.434786785
Largest Winning Trade 5667.3
Largest Losing Trade -1825.8


とまあ、中途半端な数値を使っても改善はしているのであります。

これを根拠に結論とはならんのですが、まあ過度の最適化からは

少なからず遠ざかっていると一応は考えられるんですね~。

理想としては、


例えば3D観察で階段状に良くなるのではなく、平らな平面がある

数値群が好ましい


でしょうねえ。階段状にパフォーマンスが改善する場合のパラメーター

の性質は、


相場上ありえない数値 ⇒ 相場上ありえる数値


ぐらいです。前述の角度パラメーターなんてそうですよね。横ばい

を角度で感知するのであれば、


角度が50度の相場 = 横ばい  Σ(゚д゚;)????


なんて想像できませんw

3Dが出せない場合は、数値を間引きながら地道に検索することをお勧

めします。時間かかりますが・・・

Excelのソルバーとか使ってて時間をかけたくない方のために最適化の

短縮テクニックをw


短縮1・・現実的なパラメーター値に限定する

短縮2・・パラメーター検索をある程度飛ばして探る

短縮3・・パラメーターに関して統計を採取して最適化開始地点を決める


ぐらいだろか。あまりに極値から極値を検索しても時間の無駄だし、

パラメーター刻み1だったら10づつにして、パフォーマンスが最も

改善する値の前後を調べてみるのも手だし、パラメーター自体の統計

が採取できれば、統計上有利と思われるポイントに絞って最適化で

確認するのも有り。



★悪い数値の選び方



chapon式システムトレード-4-22KK3D


こ~んな感じである数値だけが突飛抜けてパフォーマンスを良く

している分布の最適値なんかはヤバイ例。


要は、そのパラメーターだけが良好なパフォーマンスを形成

しているのはダメ  (`×´)


針の山のような事例が見つかったので載せますw

赤丸にあるパラメーターは非常に危険ってことね。こういうのは

間違いないくらい過剰最適化と思われ!



chapon式システムトレード-4-22Bollinskew


針の山にある数値を使っても後から後悔すること多し

ってことですな。で、やっちゃいけないランキングを載せてみた


【最適化で選出された数値で使ってはいけないランキング】


1位・・パラメーターを少しずらしただけで期待値がマイナスになる数値


2位・・市場のボラティリティが高い時にパフォーマンスは低く、

    市場のボラティリティが低い時の方がパフォーマンスが良くなる数値


3位・・値幅ベースのロスカット以外のパラメーターで、他市場で最適化

    すると数値が2倍以上違う場合


1位が論外だね~。最適化したっていうシステムであれば、パラメーター

とパフォーマンスの分布状況を聞くことをお勧めしまする。


2位は当たり前のことだわさ。ボラティリティが上がれば収益も比例する

のが必然。ボラが上がってるのに、低い時期よりも収益が低下している

のであれば、過剰最適化の可能性と再現性が劣化している可能性あり。


3位は、過剰最適化でなければ、他市場にもある程度通用すると思われ

再現性に疑問有。他の銘柄で、どんなに最適化しても全く改善の余地

すら無い場合はメインロジック自体が過剰に銘柄に合わせられている

可能性もありますな。


色々書いてきたけど過剰最適化を完全に取り除くことは難しいってか、

実際にテストトレードしてみないとわからんのよ。それは例えパラメーター

が無いシステムであっても一緒。


じゃあ、最適化って意味あるの?


ってなるけど、真の最適化の使い方は・・


最適化結果は統計と照らし合わせる


ってのがプロセスとしては自然かねえ。パラメーターに関しての統計を

理論とすれば最適化は実証かな。統計によって本当にパフォーマンス

が良くなるのかってこと。 (逆もしかり)

または、最適化自体を統計採取として使う方法もあるよね。他市場との

関係をロジック的に調べたり、何に相性があるのかを調べたり・・

あとは、最初に数多くのパラメーターを採用して、有効なパラメーターを

残して無駄なパラメーターを最適化によって削除していくのもあるし・・

意外に使えるよw


最後に過剰最適化を出来るだけ

避けるための確認項目♪


ⅰ パラメーターは2つ以下に絞る(環境設定は別)

ⅱ 最適化してバックテストする期間を複数分ける

ⅲ 複数の異市場銘柄にも最適値でテストしてみる


ⅰに関しては常識じゃないけど一般的に言われる内容。ⅱに関して

もそう。あえて1年ぐらいで最適化してみて、次に1年継ぎ足して最適

化して同じぐらいの数値か確認。これを繰り返してパラメーターが

大きく変化しないかを確認する。で、最後は異市場で複数銘柄を確認

してもパラメーター値の有効性が確認できれば多分OK!


ちと中途半端な内容に自分で落胆してるから

最適化については再度扱うかも~

応援してくれる方は下のランキングもよろしくね (^O^)


ブログランキング・にほんブログ村へ
にほんブログ村