SSブログ

トレーディングシステムにおける最適パラメータの決定方法 [システムトレード]

自己相関型のトレーディングシステムにおいては、その性能を最大限発揮させるために、パラメータを最適化する必要があります。
その際、どの性能を最も重視するかによって、一般に最適パラメータの値は異なります。この最重視する性能を、最適化対象指標と呼びます。

例えば2変数のパラメータの組み合わせは、システムのロジックにも拠りますが、凡そ1万~2万通りあります。理想的には、これらの膨大な組み合わせを全て確認し、性能が比較的良好なシステムを抽出することになります。
それは一つとは限りません。数値的には、様々な最適化対象指標を極大化する組み合わせを選ぶことになりますが、それらは必ずしも同一であるとは限らず、それらの中のどのシステムを採択するかが非常に重要となります。

さらに厄介なことに、その最適パラメータの直近継続期間も考慮する必要があります。いくら直近における性能が優れていたとしても、最適パラメータが頻繁に変わるようなシステムでは、安定運用は期待できません。
このように、時間軸も含めて最低でも3次元の変数を考慮し、それらの中から運用に値するシステムを採択する必要があるわけです。

ただし、最適化対象指標は、最も良好なシステムを見出すための指針に過ぎません。ここで言う良好なシステムとは、資産カーブの直線性(ロバスト性)が高く、その傾きが大きいシステムです。
更には、その性能を維持する直近期間が出来るだけ長いシステムでなければ、実際の運用には適しません。

資産カーブの直線性が高いとは、資産カーブとその回帰直線との乖離が小さい、ということです。これは通常、標準誤差の大きさで示されます。
すなわち、システムとしては資産カーブの標準誤差が小さいほど良い、ということになります。これはタグチメソッドで言うところの、ノイズに相当します。

一方、資産カーブの傾きが大きいとは、期待効率が高いことを意味します。これは、単位時間当たりどれだけの収益を上げることが出来るか、ということです。
例えば、資産の増加率が1年当たり30%である場合は、期待収益率30%/年などと表記します。これはタグチメソッドで言うところの、シグナルに相当します。

タグチメソッドでは、優れたシステムを得るためにはSN比を最大化すべし、としています。そうすることで、外乱に強い安定したシステムを実現することが出来ます。
私が以前から提唱しているEER(Efficiency to Error Ratio)は、正にこの考えに基づいています。なお、EERは一般に「energy efficiency ratio:エネルギー効率比」を示す場合が多いようです。

そこで、EERを最適化対象指標にし、この値が最大になるパラメータを最適パラメータとすれば、そのロジックにおける最も優れたシステムになるのではないかと考えることは当然です。
しかし、現実はそう簡単ではありません。

EERもしくは単利EERは、本来であれば最適化対象指標として最も適切なファクターです。しかし、この指標は最適化対象の全期間に渡る平均的な性能を評価してしまいます。
それはある意味、理想には違いないのですが、例えばそれらの期間の中でレジームが変化していたりすると、必ずしも直近における性能が最善になるとは限りません。

それならば、最適化対象期間をある程度絞って最適化を行えば良いという考えもありますが、統計的な安定性を高めるためには、最適化対象期間は本来十分長くあるべきです。
そのため、通常はある程度の性能低下を許容した上で、最適化対象期間を可能な限り長く採ることを優先します。

KFインデックスは、EERのそのような課題を解消する手段の一つとして考案しました。
KFインデックスは、次式で定義されます。

 KFインデックスA=平均損益率フィルタ*CSR*期待効率/(2*ETD標準偏差-平均ETD)
 KFインデックスB=トレード数フィルタ*KFインデックスA
 KFインデックスC=(EER*勝率)^指数*KFインデックスB
 KFインデックス=エラー処理*KFインデックスA~C選択

CSRは、年率リターンと平均リターンの比で、英語で複利(compound)の頭文字のCと、単利(simple)の頭文字のSと、割合(ratio)の頭文字のRをつなげたものです。
通常、この値が大きいほど資産推移の変動が少なく、複利効果が大きいことを示します。理想的には1以上が求められます。詳細については、2008年1月24日の記事「CSRの補足説明」などをご参照ください。

ETDはエンドトレード・ドローダウンのことで、仕掛けてから手仕舞いするまでの間に、直近最大含み益からどれくらい資産が減少したかを示します。
詳細については、2007年8月6日の記事「ドローダウンあれこれ」、及び、その中で紹介している書籍などをご覧ください。

平均損益率フィルタは、損益率がある値より小さい時に0、そうでない時に1となります。損益率が手数料率よりも小さいと、どんなに性能が良さそうに見えても、実際には全く利益を上げることが出来ません。
このフィルタを設けることにより、そのようなシステムを排除し、収益が見込めるシステムのみを選択します。

トレード数フィルタは、トレード数がある値よりも少ない時に0、そうでない時に1となります。トレード数があまりにも少ないと、そのシステムはどんなに性能が良さそうに見えても、信頼性が担保できません。
このフィルタを設けることにより、そのようなシステムを排除し、信頼に足るシステムのみを選択します。

EERにおける「効率」に相当する部分は、EER同様に期待効率ですが、KFインデックスではそれに補正係数としてCSRを乗じています。これにより、より複利効果が大きいシステム、すなわち、直近性能にやや比重を置いたシステムを採択しやすくなっています。

CSRが低いということは、過去において比較的大きなドローダウンがあったり、短期的な急落であるドロップダウンが頻発していたことを意味します。
CSRを乗じることにより、そのような過去の経緯があるシステムを排除しやすくなります。

また、「誤差」に相当する部分では、標準誤差ではなくETDを用いています。標準誤差は、資産カーブ全体のばらつきの度合いを示しますが、ETDは個々のトレードにおけるドローダウンの大きさを示しています。
すなわち、トレードにおける上振れ部分は考慮せず、あくまで下振れ部分のみを考える、ということです。

ちなみに、ETD標準偏差の2倍から平均ETDを引いているのは、平均ETDの絶対値にETD標準偏差の2倍を加える、すなわち、ETDの正規分布を考えた時にその標準偏差の2倍までを考慮する、ということです。
ただし、ETDはその定義から負の値しか取り得ないため、正規分布を仮定することは厳密には正しくありません。ここではあくまで近似値として用いています。

KFインデックスAやBは、上記の基本的な部分にフィルタを乗じただけですが、KFインデックスCについては、やや考えが異なります。

トレーディングシステムにおいては、本来、勝率というファクターは資産カーブを上向かせるためには重要ではないのですが、実際にシステムを運用する場面においては、ある程度勝率が高くないとモチベーションが持続しません。

そこで、KFインデックスに勝率を乗じることにより、勝率が高いシステムが選択されやすいようにしてみたのですが、結果的に直線性の悪いシステムを選んでしまう場合が多々あることが分かりました。
結局、更にEERを乗じることによって直線性を担保すると共に、ある程度勝率も考慮するように変更しました。

この部分はシスティマティックではなく、かなり裁量的な項目であり、銘柄やロジックによっては、好ましくない方向に働く可能性があります。
そのため、この項目を累乗することにより、寄与度を調整できるようにしました。累乗の指数部分は標準では1ですが、これを0にするとKFインデックスC=KFインデックスBとなります。指数を大きくするほど、この項目の寄与度が増加します。

このような考えによって導入したKFインデックスですが、それを最適化対象指標にした際に、比較的良く機能する場合とそうでもない場合とがあります。
これは、上記の勝率項によるものと考えられます。

また、元々はEERと近い考え方であるため、それを最適化対象指標とした場合と同一の最適パラメータを選出することも少なくありません。
ただ、KFインデックスの採用が、有効なシステム選択の一助になっていることは、間違いありません。

KFシステムクリエイターでは、単株、単利について、それぞれのKFインデックスやEERなどを最適化対象として、時系列で最適パラメータを決定することが出来ます。
最終的には、その分析結果から、資産カーブの直線性が良好で、かつ、最適パラメータの直近継続期間が十分長いシステムを採択することになります。

勝率が高いシステムや、プロフィットファクター(PF)が大きいシステムを、優れたシステムとする記述を見かけることがありますが、それは正しくありません。
重要なのは、資産カーブの直線性であり、更にはその性能が持続される直近継続期間の長さなのです。

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

nice! 0

コメント 0

コメントを書く

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

Facebook コメント

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