すっかり涼しい秋の3連休、いかがお過ごしでしょうか?Sandです。
私はシステムトレードにとって一番大事なのは資金管理だと思っていますが、一番の痛恨事は、運用しているシステムがカーブフィッティングになっている事ではないかと思っています。
資金管理は自分で勉強して会得することが出来ますし、勉強すればするほどその管理技術や精度も向上していくと思います。
ところが自分が作ったシステムがカーブフィッティングではない事をすぐに証明する事は非常に難しく、少なくとも私には出来ません。
カーブフィッティングではない事が分かるためにはある程度の期間フォワードテストを行い、パフォーマンスを確認するというやり方がありますが、少なくとも3か月は見ないといけないでしょうし、しっかり確認したいなら、様々なトレンドを経過させてみる必要があります。
私のようにすでに複数個のシステムを運用していれば、そのシステムの運用させながら、開発したシステムのフォワードテストをして、半年程度様子を見るなんて事も出来るのかもしれませんが、私でも開発したら資金をまったくかけないフォワードテストなんてやらずにすぐに実際に運用してしまいます。
ましてやイザナミを購入してこれからシステムトレード頑張るぞ!と意気込む状態で3か月でもフォワードテストでシステムを寝かせてみるなんて事をするのは難しいのではないでしょうか?(せっかちな関西人である私だけなのかな・・・笑)
現在は販売ルールもほぼカーブフィッティングされている状態なので、それらもいきなり実運用を始めるのは危険です。
しかし最近の私は(偉そうな事を書いていますが、汗)、かなり多くのシステムを作って運用してきた結果、ボトレもOHBOもSDR_Xもそれなりの期間で現在まで運用できており、ある程度カーブフィッティングの可能性の低いシステムが作れるようになってきたという自負があります。
そこで今回は、Sand流のカーブフィッティングになりにくいシステムの作り方をご紹介したいと思います。
例があった方が分かりやすいと思うので、先月開発しようとして結局ボツになったシステム「サイコロ」をモデルに、開発の過程を追いながら説明したいと思います。
ボツになったシステムなので、隠すことなくすべての情報を公開しながら、私がどのように考えたのかをご紹介します。皆さんのシステム開発の参考になればうれしく思います。
なお、ボツになったのは、パフォーマンスはまだしも暴落時の対応に不満があり、それらを解消できなかった、解消しようと思うとカーブフィッティングになる危険な条件を入れざるを得ない状態だったからだとご理解ください。
それでは順を追って説明していきます。今回は長くなりそうなので、2回に分けて記事にしたいと思います。
1.根幹となるシステムの考えを決める
今回は名前の通りサイコロジカルの指標を中心に据えた逆張りシステムを作ってみようと考えました。サイコロジカル指標を知らない人はこちらを参考にしてください。
考えたことは、「保有している人が、毎日のように下落していると気分が悪いだろう。『この銘柄はダメだ、もう投げたい』という心理になるはずだ」というところが出発点です。
2.基本ルール
まずは極めて単純なルールを作成しますが、その前の基本設計はこのような感じです。「保有中や待機中の場合は、次の仕掛けはしない」のチェックを外すのを忘れないようにしましょう。
そして仕掛けは以下の図のようなものを作成します。
基本となるサイコロジカルは、13日の計算期間で、3勝以下の銘柄を選別します。中期以上で保有している人は、この13日で上昇したのがたったの3日以下という事でストレスのたまる日々になっていると思います。
ちなみに計算期間は12日とすることが一般的というような事を専門書で見かけましたが、そんな事はあまり意識していません。それよりも私はフィボナッチ数である13や21をよく使っています。自然界にも多く出現するフィボナッチ数は人間心理や運気にも関係があるのではないかと思っています。
その他は参考までですが、終値がストップ安の銘柄はどこまで下がるか分からないリスクや、事故銘柄である可能性を考えて、保険の意味で仕掛け対象から外すようにしています。実際にはこの条件は入れない方が利益率や期待値が高くなるシステムがほとんどなのですが、平均損失などが下がる事が多いです。
これを入れたくない場合でも、「終日ストップ安ではない」という条件は入れておくことをお勧めします。
仕掛け日当日を陰線にしているのは、その方が下がっている感じが強く、逆に仕掛け日が陽線だと盛り返すかもと考え損切しようと思う人が少なくなってしまうと考えています。逆張りのシステムに入れておくと効果がある事が多い条件だと思っています。
次に仕掛けを考えます。逆張りの仕掛けは主に2パターンだと思っています。
1つは、終日指値です。こちらは例えば前日比-5%の指値で終日待つというやり方で、その日のザラ場で投げ売りが出尽くす状態を想定しています。
もう一つは寄り付き指値です。これは前日が終わった夜に「もうダメだ」と考えて、翌朝の寄り付きで損切りをする人がピークになることを想定しています。
今回はサイコロジカルの状態から考えて、3勝10敗を喫してもうダメだという人が投げるタイミングになるだろうと考え、寄り付き指値を採用しました。数値はまずは適当ですが、きりの良い数字は使いません。
ちなみになのですが、寄り付き指値を使用すると2008年はうまくいくが、2011年の地震の時はやられるシステムになりやすく、終日指値は反対になりやすいです。そしていうまでもなく、こんなことを考えて仕掛けを設定するとカーブフィッティングになる可能性が高くなります。
条件はあくまでその状況における投資家の心理を考えることがカーブフィッティング回避のために重要だと思います。私は自分がシステムトレードに出会う前の裁量だけで取引をしていた時代のことを思い出しながら条件を作ることが多いです。
手仕舞いは、こんな感じで作ってみました。当日の利益確定も狙いながら、仕掛けていた前提であるサイコロジカルが上昇したら手仕舞いするようにしています。
さて、これでまずはバックテストをかけてみます。その結果が下図のような感じです。
勝率63.5%、期待値1.10%で、この時点では見込み有りと思いました。
ここで期待値が0.5%以下のものはちょっと厳しいと思います。-0.5~+0.5%の間になってしまうという事は、優位性のあるトレードになっておらず単にランダムな取引をしただけという可能性が高く、私が考えていた基幹ルール(今回でいうサイコロジカル)には特に優位性がないという事になります。反対にものすごいマイナスが出たときはある意味でチャンスです。
単純に言えば売買を入れ替えれば良いのですから…(そこまで単純ではないですが)。
さてこのままでは使えません。逆張りで勝率63%では低すぎるし、その勝率を許容するには期待値が低すぎるからです。いずれかを押し上げるような追加条件が必要だと思います。幸いトレード回数は9000回を超えているので、やりようは有ると思います。
次回はその内容をご紹介したいと思います。続編記事も是非お読みくださいね。
本日は最後までお読みいただきありがとうございました。
同カテゴリーの前の記事⇒販売ルールのカスタマイズ例
同カテゴリーの次の記事⇒カーブフィッティングになりにくいシステムの作り方(2)
いつもご覧いただきありがとうございます。このサイトが役立ったと思ったら、押してくださるとうれしいですm(_ _)m