システムトレードに係わるいくつかの問題について

id:NoShigeさんの所で、いくつか問題提起されていたので、ちょっとTBを送ってみる。私なりの解ということで。ポイントは大きく4点。

 1.投資資金との関係(実現可能な回数なのか?)

 2.トレードスパンとの関係(短期的なのに回数が少ないケース。または長期的なのに回数が多いケース等。)

 3.トレードシステムの結果に関する信憑性(売買回数=検証データ が多いほど検証結果は信憑性が増すという理屈)

 4.総利益額、総損失額

売買回数 - 株式・投資・バックテストの日々
この辺について私の考えを、ちょっと書いてみます。まー、まだ資金管理を含めたテストやウォーク・フォワード・テストとかができていない人の話なので、話半分でw

投資資金との関係(実現可能な回数なのか?)

バックテストの結果、出るシグナルの数が合理的な資金の範囲に収まらない(もしくは少なすぎる)時、どうするべきか?という話。バックテストの結果の中で、何を信じるかという所を考えなければいけないんだと思う。資金管理と組み合わせたテストをしていない場合、出てきた数字のうち信頼していいものは下のものしかないと思う。

  1. 1トレードあたりの平均損益(全利益と全損失を加算して全トレード数で割ったもの。但し玉の大きさが同じになるようにエントリーした価格からの割合で評価すること。)
  2. 1トレードあたりの平均期間(すべてのトレードについて仕掛から手仕舞いまでの期間の平均値)
  3. 勝率(すべてのトレードについて1円以上の利益があがったトレードの数を全トレードの数で割ったもの)

大数の法則が正しく機能するなら、一日に1000個のシグナルが発生したなら、そのなかからランダムに10個抽出するという行動を100回繰り返せば、バックテストの結果と統計的に近似な結果が得られるハズだ。10個選ぶ、というところに個人の相場観を持ち込めば、統計的な偏りが生じて、バックテストの結果とは乖離していくのは、しょうがない。もし、相場観によって性能の低下を防ぎたいなら、過去のトレードの結果を1つ1つ検証して勝てる状況負ける状況の判断が出来るように自分を訓練するしかない。で、100回繰り返す、というのは時間軸に対する分散を図るという意味。月曜日は10個仕掛けて、火曜日にまた10個仕掛けて・・・ という事を繰り返す。こうする事で期間による変動が一気に来た時リスクが分散されるはず、というやつ。株の入門書とかに書いてあるレベルの事だけども、これは大事な事だと思う。こうやって期間をズラしていけば日々の手仕舞いも分散して、安定的に利益確定もできていくと思う。
ランダムに銘柄を選択したとき本当に大数の法則に従うのかどうかは、実際にランダムに抽出するテストをやってみればいいと思う。あと、ポジションの取り方だけど、1個の玉の大きさは小さい方が銘柄数を増やせるのでより大数の法則へ従う傾向が強くなる=バックテストの結果に近似していくハズだ。
あと、これは注意深くやるべきだと思うけど、テストの結果が特定の銘柄、特定のトレードに多くを依存していないかを検証した方がいい。すべてのトレードの玉の大きさを同じにする工夫をしていたとしても、エントリーした翌日大爆発して大もうけ!なんてトレードがあったとして、それで期待値が大幅アップしているとしたら、その期待値は全く信用することができない(少なくとも私は)。平均的な性能を知る為にはたとえば10000回のトレードの結果があるとしたら、そこから100個をランダムに抜いてきて統計値をとる、というのを100回やってばらつきがないかを調べるとかすればいいんじゃないでしょうか。

トレードスパンとの関係(短期的なのに回数が少ないケース。または長期的なのに回数が多いケース等。)

ほぼ上で書いちゃってるけど、回数が少ないケースということで考えてみる。これは1つのシステムとして、資金の量を決めて運用すればいいんじゃないかな。高信頼システムであればf値*1を大きくとって1つのポジションを大きくとって勝負にでるような。私の理想は、こんな高信頼システムを10個ぐらい作って回していく事かな。なかなかシグナルが出なくて、資金が浮いているなら、短期システムの資金としてそっちに移動すればいいんだし。信用建余力を、長期システム用にマージンを十分残していればシグナルにも対応できる。もちろんその時は短期システムのポジションを必要なだけ解消しないといけないけど。あれだな2−3日で手仕舞うぐらいのシステムだったらうまいこといくんじゃないかな。

トレードシステムの結果に関する信憑性(売買回数=検証データ が多いほど検証結果は信憑性が増すという理屈)

基本的には統計処理した結果は大数の法則に従うから、信憑性は増す。でもこれからのトレードで近似していくのはバックテストと同じ期間だけ運用した後でしか確認することができない。しかもそれは「平均が」という事でしかなくて、今の市場の状況は「平均」であるとは限らない。もし完全に平均値で平衡状態なんかになったら株式市場は壊滅だ。好景気・不景気の波があって大局的にどっちの方向かってのが必ずある。その全体の方向性が分かれば、過去の似た状況には近似していく可能性が高いと思う。なので闇雲に平均に信頼を置くんじゃなくて、市場の状況を見て判断する必要がある。この辺は各種経済指標とか大手証券のストラテジストのコメントとかを参考にして確認すれいいんじゃないかな。システムとして検証する為には時系列データが入手できる経済指標を使うしかないけどね。
もうひとつ書くと、バックテストに使った期間に好景気・不景気の両方が同じ比率で入っていないと偏った結果になるはず。結果の分析には、期間ごと(シグナルがいっぱい出るなら月単位ぐらいが、私は好き)に性能指標値を算出して、時期による偏りの傾向を見ることが必要だと思う。でも実際コレ出すと、期間によって結果がバラバラで、悲惨な月の負けは、本当にガマンならないレベルになるのが多い。期間ごとの集計結果に偏りがでないシステムが、夢のシステムなんけどね。

総利益額、総損失額

これはシステムの1トレードあたりの平均的な性能と資金の量がわかれば、おのずとどれぐらいのリスクを取れば目標とする利益に到達するかがわかるはず。勝率が高くて、損切りのレベルも小さく(1回の負けの量が小さい)とれるシステムなら証拠金の与信いっぱいまでポジションを取れるかもしれない。勝率が高くても1回の負けが大きい場合はポジションは小さくとらないといけない。
このへんは全トレードで、バックテストで得られるだけの利益を取るんだ!と考えても意味がないと思う。1トレードあたりの平均性能に自分の資金と自分がとるリスクのレベルを入れて、じゃあ1ヶ月でどれぐらい増えそうかが決まる。このあたりは個々のトレード手法の問題じゃなくて、資金管理の問題だと思う。これはこれで別の専門書を買った方がいいかと思います。

バックテストは信頼できるのか?

なんつーか、今までの努力を全否定しそうな勢いのトピックだけど、大切な事だと思うので。各種パラメータをチューニングしたりルールを追加したとしてもそれは分かってしまった過去に対するチューニングでしかなくて、これから起こる市場の動きにフィットするとは誰にも言えない。同じだけの期間トレードを続ければ、統計的には近似していくとは言えるけど、その前に破産する可能性もある。過去に対するチューニングの結果が将来においても有効であるかどうか。そんなテストをウォーク・フォワード・テストと呼んで、やるべき!とするのがロバート・パルドだったはず。自動的にコレをやる為の仕組みを作ろう!とか思っているんだけど、他にもやりたい事があったりしてなかなか手がつけられないんだけども・・・ でもまあ、プログラム実装としても追求していきたいテーマです。

最後に資金管理とシステムの最適化・テストに関する本を一応紹介しておきます。パンローリングなんで「ああ、この本!」って話だとは思いますが。

投資家のためのマネーマネジメント ~資産を最大限に増やすオプティマルf (ウィザードブックシリーズ)

投資家のためのマネーマネジメント ~資産を最大限に増やすオプティマルf (ウィザードブックシリーズ)

ラルフ・ビンスの資金管理の本。この人は最適f値でトレードしろ!と言っているけど、それは結構リスクが高いと思う。多少割り引いたf値でやった方がいいよ!という意見はストリズマンの本に書いてあった。
トレーディングシステム入門 ― 仕掛ける前が勝負の分かれ目  (ウィザードブックシリーズ)

トレーディングシステム入門 ― 仕掛ける前が勝負の分かれ目 (ウィザードブックシリーズ)

  • 作者: トーマス・ストリズマン,Thomas Stridsman,柳谷雅之,二宮正典
  • 出版社/メーカー: パンローリング
  • 発売日: 2002/07/31
  • メディア: 単行本
  • 購入: 1人 クリック: 7回
  • この商品を含むブログ (6件) を見る

あとロバート・パルドの本。

トレーディングシステムの開発と検証と最適化 (ウィザードブックシリーズ)

トレーディングシステムの開発と検証と最適化 (ウィザードブックシリーズ)

このあたりが、今後どうしていくかのヒントになるんじゃないかと思います。

*1:資金に対してどれぐらいのリスクを取るのかを決める値。ラルフ・ビンスの本参照。