Takehana Lab

System Trading : MultiCharts, TradingView, Python, R

バックテストの誤謬

自分自身のこれまでのトレーダーとしての経験について, 成功していた時期, 失敗していた時期, 安定していた期間, 不安定だった期間について振り返ってみると, それぞれの期間に明確な特徴があることに最近気付きました.

今回の記事ではその内容について記録しておきたいと思います.

上手くいかない時期に自分が重視していたもの, そのほとんどは「過去のデータ」でした.

裁量にせよシステムにせよ検証をする場合, 過去のデータを使用します. これはもはや常識となっていて, ほとんど疑う余地すらありません. しかし, その過去のデータを使ったテストそのものが大きな失敗の原因となっていたのです.

システムトレーダーも裁量トレーダーも検証をします. 過去のデータに自分の戦略を当てはめて, そこからはじき出されたテスト結果を確認することでエッジを発見できると考えています. しかし現実にはバックテストレポートは戦略の有効性について何一つ証明しません.

たとえ一秒でも過去のことは過去のことであり, 現在とは無関係です. 昔の自分はそれが理解できていませんでした.

モンテカルロシミュレーションを使ったり, ブートストラップを使ったりすることで過去データに対する検証精度を向上しようと努力したことがありましたが, 今にして思えば全て無駄なことです. 過去のデータでしかないものをどれだけサンプリングしたところで時間の無駄です.

過去と現在ではあらゆることが異なります. 市場の環境も出来高も参加者の顔ぶれも, 全てが違うのです. そのような環境でどのようなヒストリカルデータを使った検証も絶対に意味を持ちえません. 過去のデータに対する科学的検証はいかなる意味も持ちません.

このように書くと多くの方が, マーケットには繰り返されるパターンがあり, それを利用するシステムを組めば値動きを捉えられるはずだと反論するでしょう.

確かにその見解はある程度は正しいのですが, パターンは毎回完全に一致することはあり得ません そして毎回発生する僅かなズレがシステムという静的なモデルを長期に渡って運用した場合に, 救いがたいほど大きなブレをリターンにもたらしてしまいます.

自分の収益が安定するようになったのは, 過去データのテスト対する執着を捨て, 自分の全分析を市場の現在に対する評価のみに集中させるようになってからでした.

今の僕は過去のデータにおいて全く有効でないことが示されているシステム(収益曲線が右肩下がりまたは横ばい)でもポートフォリオに加えることがあります. そして多くの方には信じられないでしょうが, そのようなシステムが有効であることは非常に多いです.

過去データでシステムが有効であったかは全く重要ではありません. 今現在ストラテジーが有効である根拠を仮説として立証できて, フォワードテストで期待通りの結果が得られればそれで十分なのです. その場合システムのエッジが示す根拠は明白です. 市場環境を観察してそのエッジが消えたと判断したらそのシステムの運用を停止します. 過去は関係ありません. 現在市場がどのようであるかだけが重要なのです.

トレードに対するアプローチを決めるとき, システムトレードを選択する方の多くは安定またはストレスの軽減を求めていると思います. しかし逆説的なのですが, 安定を求めるほどリターンは不安定になります.

現在のトレードに過去のデータを使った検証が役立たないということは, 要するに何の保証もない場所でリスクを取り続けなくてはならないということです. これはとても恐ろしいことです. ですから多くの方はバックテストで利益が保証されたモデルを使って取引しようとします. しかし実際にはバックテストは何も保証しません. レポートが与えてくれる安心感は仮初のものです.

トレードという世界に取り組む時点でどのような安定もあり得ません. そもそも安定や保証のある人生を望むならベストな選択肢は国家や企業に死ぬまで献身的に仕えることです. トレーダーになった時点で不安定でリスキーな人生を覚悟する必要があります. しかしそれができない人が非常に多いのです. そういう方はトレードに関わらない人生を選択すべきです.

どうしてもシステムトレーダーはバックテストを神聖視してしまいます. 過去のデータを使用したテストの結果が右肩上がりであれば, このストラテジーは継続的に自分に富を約束してくれると本能的に考えてしまうのです. しかしそれはマーケットの現実を考えていないと言えます.

真実は「一秒前のことですら過去である. 現在と過去は完全に無関係であり, 過去のデータは現在がどうであるか, また未来がどうなるかを何一つ保証しない」ということです. そして科学的に正しいバックテストなど存在しません. 強いて言えばバックテストという行為そのものが科学的に正しくありません.