SSブログ

「システムトレード」は何故勝てないのか? [システムトレード]

先日、とあるブログを見ていたところ、「システムトレードは勝てない」といった内容の記事がありました。その方は、10年ほど前に半年間ほど検証をした結果、上記の結論に達したとのことです。

ここでは、その真偽について触れるつもりはありません。ただ、そのような結論に至った過程を見ていくと、システムトレードに関するいくつかの「誤解」が見えてきます。
今回は、逆説的ではありますが、表題に掲げた内容について考えてみたいと思います。


1.検証に要する時間

システムトレードについて検証するに当たって、その時間の長さは重要ではありません。確かに、より多くの時間を掛けた方が、より多くの結果を得ることができますが、その全てが有用であるわけではありません。
重要な発見の多くは非常に限られた期間に成されます。ただし、その発見を得るためには、一見何の関係もない多くの無駄が必要です。

これは、偉大な発見を成し得た多くの先人たちが唱えています。偉大な先人たちの足元にも及びませんが、私もまったく同感です。
ある時、突然、それまで分からなかった答えがフッと浮かぶことがあるのは、多くの人も経験したことがあるのではないでしょうか?その背景には、必ず、長く積み上げた経験が生きているのです。

ただし、だからより多くの経験を積まなければならない、というのは、正しくもあり正しくなくもあり、といったところです。
かのニュートンの有名な言葉に、「巨人の肩の上に乗る」という例えがあります。私たちが積むことのできない多くの経験は、先人たちによって蓄積され、体験できるようになっているのです。

2.検証に用いるデータの期間

検証データの期間に関しては、長すぎても短すぎても異論があります。通常は、漠然と10年程度と考えている人が多いのではないでしょうか?
しかし、その根拠は曖昧です。今から10年前を考えた時、それは東日本大震災の年に相当します。そのような特異な年度を、検証の起点にして良いのかという考えもあります。

それよりも短い場合は、アベノミクスやトランプノミクスによる株価高騰の影響が支配的になりますし、それよりも長い場合は、リーマンショックなどの特異点の扱いが問題になります。
検証データ期間が長いほど、より多くの局面を反映することができますが、そのことがシステム開発を難しいものにしていることもまた事実です。

私は、検証期間は特にこだわる必要はないと考えています。ただし、システムが機能する期間は、検証期間の平均2割程度ではないかと思います。
例えば、検証期間を10年とした場合は、その後2年程度しかシステムの機能維持を期待できない、ということです。

この考えに、科学的な裏付けはありません。ただ、80対20の法則に見られるように、経験的には何となくしっくりくるものがあります。
KFシステムクリエイターで作成したトレーディングシステムでも、全検証期間の内、直近2割程度以上は、最適パラメータが変わらない場合が多くあります。

また、「システムトレード 検証と実践」(Pan Rolling刊:ケビン・J・ダービー著)においても、アウトオブサンプルデータとして、全データの10~20%を最適化後の見直し用に取っておくべきとしており、著者推奨のウオークフォワードテストでも、インサンプル期間4年に対して、ウオークフォワード期間(アウトオブサンプル期間)1年(すなわち20%)とすべきとしています。

システムトレード 検証と実践 ──自動売買の再現性と許容リスク (ウィザードブックシリーズ)

システムトレード 検証と実践 ──自動売買の再現性と許容リスク (ウィザードブックシリーズ)

  • 作者: ケビン・J・ダービー
  • 出版社/メーカー: パンローリング株式会社
  • 発売日: 2017/04/16
  • メディア: 単行本


例えば、わずか4年分の検証データで、最初の2年をバックテスト用としてシステム設計に用い、残り2年のデータでシステム性能を検証する、という方法を用いた場合、いくら頑張ったところで、機能するシステムが得られるとは到底考えられないわけです。

3.検証指標の汎用性

トレーディングシステムを設計するに当たって、そのロジック、すなわち売買判定に用いる指標を何にするかは、重要な要素です。
独自の指標を開発する場合もありますが、既存のテクニカル指標を用いることの方が多いかもしれません。

既存のテクニカル指標を用いること自体に、問題があるわけではありません。事実、KFシステムクリエイターにおいても、移動平均やブレイクアウト、RSI等を採用しています。
問題となるのは、それに用いるパラメータはこうあらねばならない、という思い込みです。

例えば、移動平均と株価との関係をシグナルとする売買を考えた時、古くから言われているのは、ゴールデンクロスで買い、デッドクロスで売る、と言った類です。
この場合、それに用いる移動平均の期間にも決まりがあり、大抵は20日移動平均や5日移動平均が用いられたりします。

この20日や5日にも当然深い意味があり、20日は1か月、5日は1週間の立会日数を意味します。すなわち、大抵の人はそのような単位で損益を確認するのだから、その期間を用いるのは至極当然である、というわけです。
だから、それをロジックに採用するに当たっても、それらの期間から大きく逸脱したパラメータは、採用すべきではない、ということになります。

結局、自分だけの売買タイミングでトレードを行っても、他の多くの人たちは20日や5日の移動平均を見て売買しているわけだから、勝てるわけがない、と考えてしまうのです。
でも、よく考えてみましょう。多くの人が同じタイミングで買えば、確かに株価は上がります。一方、そのためには同じタイミングで売る人が必要です。

これって、例えばゴールデンクロスで買いに向かう人がいる一方で、逆にゴールデンクロスで売りに向かう人がいることを意味します。
売り手は、何故このタイミングで売るのでしょう?もちろん、十分な利が乗っているから売るんでしょうが、もしもゴールデンクロスが上昇のサインならば、わざわざこのタイミングで売る必要はないように思います。

その理由は明確です。それは、このタイミングであれば、より多くの売買が成立しやすいからです。多くの持ち株を抱えた売り手にとって、これほど好都合なことはありません。
その後、仮に株価が上昇したとしても、確実に利益を得ることの方が重要なのです。

一般的に、このような著名な方法で収益を上げることは困難とされています。では、人よりも早く仕掛け、人よりも早く手仕舞えばどうでしょう。
理屈では、収益を上げる可能性が高まります。しかし、それは未来予測を行うことと同義であり、実現は困難です。

4.オーバーフィッティング(過剰最適化)

有名な相場格言に、「人の行く裏に道あり花の山」というものがあります。これは、シストレ流に言うならば、「既存指標やパラメータに固執せず制限を取り払えば聖杯が見える」とでもなりましょうか。
システムトレードは、全数検索が大原則だと考えます。できるだけ制約を取り払い、自由な発想で最大限の可能性を追求することにより、光が見えてくるのです。

全銘柄で共通した指標、共通したパラメータで、平均期待値がプラスであるシステムが存在するかどうかは分かりません。しかし、そのような条件を設定すること自体、無用な制約だと考えます。
いくつかの銘柄の株価推移を見るだけでも、それらが大きく異なっていることが分かります。そのような、全くでたらめな推移を、一つの枠に括り付けて制御しようということの方が、無理があります。

もっと自然に考えれば、銘柄ごとに最適な指標があって当然、最適なパラメータが異なって当然なのです。それを無理に一つの枠に押し込めようとするから、歪みが生じます。
その歪みは、聖杯の形を歪め、収益機会を確実に損なっていくのです。

システムトレードで取り得る可能性の極一部しか検証せずに、「システムトレードでは勝てない」と結論付けることはできません。
全ての可能性を検証してみて初めて、システムトレードで勝てるか否かが判明するのです。

しかし、巷では「パラメータの最適化はオーバーフィッティングを生む」と、まことしやかに言われています。このようなことを言う人は、本当に検証を行っているのか疑問です。
そもそも、オーバーフィッティングとは何のことを指すのでしょう?

システム性能が大きく変わってしまう条件の一つに、パラメータの変遷があります。もちろん、これはどのような指標を用いるかによっても違ってくるのですが、大なり小なり、パラメータが変わればシステム性能も変わります。
例えば、移動平均を用いたシステムの場合、移動平均期間の変化幅は1日単位となります。そして、移動平均期間が1日違うだけで、システム性能は変化します。

KFシステムクリエイターでは、例えば2つの移動平均期間を3~150日の間で1日単位で変化させ、最適パラメータを決定します。
その際、パラメータがわずか1日ずれただけで、システム性能が大きく変化することはザラにあります。では、このような条件で得られる、システム性能が最適となるパラメータは、無意味なのでしょうか?

けしてそんなことはありません。確かに、パラメータが1日でもずれれば、性能は大きく損なわれます。しかし、パラメータがずれない限り、性能が大きく変わることはないのです。
そして、実際に検証すれば分かることですが、その最適パラメータは、直近においてずれることはほとんどありません。

それどころか、全検証期間の直近2割以上の長期に渡って、全く変化せずにいることが少なくありません。前述のケビン・J・ダービー氏の言葉を借りるまでもなく、そのようなシステムは、フォワードテストにおいても良好な結果が得られるであろうことが推察できます。

では、ある銘柄で最適パラメータが直近において安定しない場合は、どうすればいいのでしょうか?
答えは簡単です。安定する最適化対象指標を探し、それでもだめなら別のロジックを調べ、それでもだめなら、その銘柄を諦めればいいのです。

システムが安定しない場合に、フィルタ等の条件を付け加えたりする場合がありますが、これは通常、システムの不安定要因として働きます。
ただし、フィルタをシステムと考え、フィルタ単独で評価した際に、正の期待値と十分な安定期間を有する場合は、その限りではありません。

5.システムトレードで勝つには裁量も必要か

これは微妙な命題です。ただし、あながち間違っているわけでもありません。
そもそも、システムトレードにおいて、どこまでをシスティマティックに行うかは人それぞれです。

中には、運用者が行うのはパソコンのスイッチを入れるだけ、というものもあるかもしれませんし、シグナルの発生までをシステムで行い、発注は手動と言うパターンもあります。
ただし、このような事例の場合、裁量が入り込む余地はほとんどありません。

実際に裁量が入ってくる可能性があるのは、建玉数の決定や運用システムの決定等、資金的な制約によるものが多いでしょう。
また、高次のシステムとして、レジームスイッチシステムがありますが、それを自動ではなく手動、すなわち裁量で行う場合もあるかと思います。

結局のところ、システムと呼ばれる部分は多くの場合、シグナルを出すまでであり、それ以降の運用面においては、裁量判断が入ってくる余地が多分にあります。
そもそも、どのシステムを運用に供するかは運用者の判断であり、そのシステムの仕様もまた開発者次第です。

そういった意味で言えば、システムトレードとは言っても、裁量判断が必要であることに違いはありません。では、何を持ってシステムトレードと言うかと申しますと、少なくとも入力(株価)に対して出力(売買シグナル)が唯一定まること、に尽きるのではないかと思います。

もしも、システムによって出力された売買データに対して、運用者が勝手に違う売買行動を取ったとしたら、それはもはやシステムトレードとは言えません。
しかし、レジームに応じて運用システムを変更し、その変更ルールが明確であるならば、それはシステムトレードであり、けして裁量ということではありません。


結局、システムトレードで勝てない多くの場合は、「十分な検証が行われなかったから」の一言に尽きるかと思います。
もちろん、運用面での問題もありますが、それらはむしろ裁量判断の帰結ということになります。

nice!(0)  コメント(0) 
共通テーマ:

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。