SSブログ

最適パラメータの設定方法案 [システムトレード]

システムの堅牢性を判断する手法としては、フォワードテストやウォークフォワードテストが一般に用いられるかと思います。
これらについては、次の書籍等で詳しく説明されています。

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

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

  • 作者: ロバート・パルド
  • 出版社/メーカー: パンローリング
  • 発売日: 2006/01/16
  • メディア: 単行本



高勝率トレード学のススメ (ウィザードブックシリーズ)

高勝率トレード学のススメ (ウィザードブックシリーズ)

  • 作者: マーセル・リンク
  • 出版社/メーカー: パンローリング
  • 発売日: 2006/09/14
  • メディア: 単行本


さて、これらのテストは確かに効果的なのですが、今まさにこれから運用しようとしているシステムに関しては、なかなか適用し辛いものがあります。

現時点で手元にあるシステムは、通常、最高性能にチューニングされたものであり、それに対してフォワードテストなどを行ったとしても、その結果を現在のシステムにどのようにフィードバックしてやればよいのか、判断が難しいのではないかと思います。

本来であれば、全期間に渡るバックテストを行う前に、フォワードテストを行う必要があるのでしょうが、では、フォワードテストを行ったとしても、最終的なパラメータはどのように決定すべきなのかが、今ひとつ明確ではありません。

フォワードテストの結果得られたパラメータがあったとして、はたしてそれが最適なトレードを約束するものなのでしょうか?
私たちが必要とするものは、堅牢で高性能なシステムであり、それを保証するパラメータなのです。

仮にフォワードテストで性能が劣化しないパラメータを選んだとした場合、逆に、そのようなパラメータを選ぶ行為が最適化そのものなのではないかとも思えてしまいます。
では、もっと合理的なパラメータの設定方法はないのでしょうか?

今回は、そのような方法について考えてみたいと思います。

昨日のコラムでも示しましたように、堅牢なシステムは、時間軸を変更しても最適パラメータがほとんど変化しません。
そこで、時間軸を変更した場合に、最適パラメータがどのように変化するかを測定すれば、そのシステムの堅牢性が判定できることになります。

最適パラメータは、システムで最も重視する性能指標の値が最大、もしくは最小となる時のパラメータ値として決定します。
テスト開始日を固定し、テスト終了日を直近日から例えば1年ずつ過去に遡ってバックテストを行い、その時々の最適パラメータを測定します。

ある程度堅牢なシステムであるならば、最適パラメータはある範囲に集中するでしょう。例えば、パラメータが2つのシステムの場合、最適パラメータはxy座標上の1点と見なすことができます。
それぞれのテスト終了日毎に、座標上に点を打ち、時間の経過と共にそれらを線で結んでいけば、最適パラメータがどのように推移しているのかが分かります。

それらの最適パラメータを内包する最小の円を考え、その円の中心を実際に運用する場合の最適パラメータに設定してやれば、堅牢なシステムが得られる可能性が高くなります。
もちろん、そのパラメータを設定しても、十分な性能が得られていることが大前提となります。

そのようにして決められた最適パラメータは、時間軸に対して強い堅牢性を発揮することが期待できます。
何故ならば、過去からの最適パラメータ推移に最も近いパラメータだからです。

すなわち、今後、システムの最適パラメータがどちらにずれて行ったとしても、それは過去に得られた最高性能に近い性能を得る可能性が高い、ということです。

もちろん、最適パラメータが時間と共に大きくずれていってしまう場合は、システムそのものに欠陥があると考えるべきであり、システムの見直しを行う必要があります。
ただし、その推移に明らかな法則性が認められる場合は、ひょっとしたら最適パラメータを先読みして設定してみても面白いかもしれません。

これらは、まだアイデア段階ですが、時間さえ掛ければ確認そのものは簡単です。確認し次第、結果をご報告いたします。

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

nice! 0

コメント 0

コメントを書く

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

Facebook コメント

トラックバック 0

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