SSブログ

バックテストに客観性が求められる理由 [システムトレード]

トレーディングシステムに求められる最も重要な特性は、そのシステムが安定して機能し続けるかどうかです。
バックテストによって、年率100%のシステムが得られたとしても、それが今後も継続するかどうかは、通常は実際にシステムを運用してみないと分かりません。

年率100%が50%に落ちるくらいならまだ良いのですが、運用を開始した途端に資産が減少しだしたら、目も当てられません。
少なくとも、その資産減少が想定されるドローダウンなのか、システムの機能停止なのかを、明確に判断する必要があります。

それでは、システムの運用を開始する前に、システム寿命を判定する方法はないのでしょうか?
そのための方法として、古くから提唱されているのがフォワードテストですが、これは必ずしも客観的な評価に結びついていなかったのではないでしょうか?

このテストを行う場合の多くは、基準日以降の未来のデータは見ないように伏せておいて、基準日以前の過去のデータでバックテストを行い、その条件を未来のデータに適用した時に、資産がどのように推移するかを判定することになります。

しかし、その方法の最大の問題は、バックテストが完全に客観的に行なわれているか、ということです。もちろん、可変パラメータのないシステムの場合は問題ないのですが、もしもバックテストによって何らかのパラメータを最適化する場合は、最適化が完全に機械的に行なわれるようにしておかなければなりません。

例えば、パラメータ分布の中央付近とか、ピークをやや外れたところなどという、主観が入るような判定条件では、客観的な評価とは言えません。
そのようにして決定された最適条件でフォワードテストを行い、その結果が良好だったとしても、それは偶然に過ぎません。

もっと厳密に言いますと、フォワードテストで設定する期間は1通りでは不十分であり、例えば、基準日を1年ずつずらしたりして、それらの基準日以前のデータのみでバックテストを行なって決定した条件を、基準日以降のデータに適用して確認を取る必要があります。

そうした場合、肝心のバックテストの方法が客観的でないと、全く話にならないわけです。また、フォワードテストにおいて、基準日以降のデータを見ないことが推奨されますが、これはまさに、バックテストが客観的に行なわれていない、という前提があるからでしょう。

バックテストが客観的になされ、最適パラメータが完全に機械的に決定できるのであれば、フォワードテストに用いるデータをわざわざ隔離する必要はありません。
そうでないからこそ、データを見ないようにして恣意性を排除する必要があるわけです。

通常、最適パラメータを機械的に決定するには、パラメータ分布のピークを取ることが最も簡単ですが、パラメータ分布のピークを選んではいけない、という、まことしやかな言い伝えが、バックテストの客観性を損ねているという、皮肉な状態になっているのではないかと考えます。

確かに、ある種の性能指標のパラメータ分布は、テスト期間の取り方によってピークが大きくずれてしまいます。
また、皮肉なことに、パラメータ分布が緩やかな性能指標の場合、その分布のピークの判定が難しいという現実があります。

ピークを捉えやすくするには、急峻なパラメータ分布の方が良いのですが、急峻なパラメータ分布を持つ性能指標は、一般にテスト期間の取り方に対して変動が激しくなります。
そのため、急峻な分布よりもなだらかな分布の方が良いと考えられるのでしょう。

しかし、急峻なパラメータ分布を持ちながら、時間軸に対して極めて安定する指標(KFインデックス)が存在することは、これまでのコラムで何度も述べてきました。
そして、その指標があるからこそ、客観的にバックテストを行なうことが可能となり、その結果、客観的なフォワードテストとそれに伴う寿命推定が可能となったわけです。

それらの客観的なテストさえ可能となれば、システムの動的性能評価や寿命推定は、単なるデータ処理でしかありません。
その方法は種々あるでしょうが、元となるデータは共通です。

例えば、基準日を1年ずつずらしてフォワードテストを行い、基準日以降1年後、3年後、5年後の資産増加率を求めて、それぞれの基準日で比較すれば、システム寿命の推定が可能となるでしょう。
年当たり資産増加率が3年後で最も大きく、5年後では低下するならば、そのシステムを最適化した後に機能する期間は、平均で3年前後と見積もることができます。

また、それぞれの基準日における1年後の資産増加率を積算して、幾何平均を取れば平均損益率が、資産増加率の標準偏差を求めて平均損益率を割ればシャープレシオが求まります。
それらは仮想運用の結果ではありますが、客観的な評価に基づいたものとなります。

このように、客観的な評価を行なう、ということを可能とするだけで、システムに対する信頼を深めることができるわけです。
現在運用しているシステムは、信頼できるものでしょうか?そのシステムは、完全に機械的に設計し、運用されているでしょうか?

nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

Facebook コメント

トラックバック 0

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