KFシステムクリエイター取扱説明書(14)

記事
マネー・副業
6.最適化

(1)最適化とは

KFシステムクリエイターにおいて、システムをセットアップしただけでは、期待値の高い有効なシステムを得ることは出来ません。 
パラメータを最適化することによって初めて、運用に耐えうるシステムを得ることが出来ます。

KFシステムクリエイターでは、最適化対象となる変更可能なパラメータを、各ロジック毎に最大2つまで設定できます。 
例えば、累乗平均システムでは、独立した2つの累乗平均の直近算定期間をパラメータとして用いています。これらと株価との大小関係によって、買いあるいは売りのシグナルを出すことになります。

これら2つのパラメータを変えると、システム性能が変化します。最適化とは、システム性能が最大化するパラメータの組を見つけ出す分析作業、ということに他なりません。 
そして、システム性能が最大化するパラメータを、最適パラメータと呼びます。

最適パラメータには、一般的に決まった値、こうあるべき値というものはありません。それらはロジックによって異なりますし、最適化を行う期間によっても異なります。何よりもシステムの対象銘柄によって大きく異なります。 

テクニカル分析では、例えば20日移動平均と5日移動平均との関係や、それらと株価との関係を見て、売買判断を行うことを推奨します。 
しかし、これらのパラメータ(移動平均期間)は大抵の場合、システム的には最適パラメータではありません。

多くのテクニカル分析の解説にあるように、ある銘柄の株価と20日及び5日移動平均を示したチャートの一部を抜き出して、どれそれのタイミングで買いを入れて、どこそこのタイミングで手仕舞いすれば、あたかも利益になっているように見せることは出来ます。 

しかし、十分長期に渡って、全ての推奨タイミングで売買を行った場合の累計成績を示している事例は、残念ながらほとんどありません。 
ましてや、20日と5日に固定した移動平均のみを用いて、少なくとも過半数の銘柄で安定的に収益を上げる方法など、お目にかかったことはありません。

では、どうすればいいのでしょうか? 

大変面倒ですが、結局のところ、銘柄毎にそしてロジック毎に最適パラメータを求める必要があります。そして、それらの中から比較的良好な性能を有するシステムを選択するしかないのです。 
その最適パラメータを求めるに当たっても、可能性のある全ての組み合わせを総当たりで検証してやる必要があるのです。

KFシステムクリエイターでは、システムの最適化演算(最適パラメータを求める演算)を自動で行うことが出来ます。 
最適化の方法は、大きく分けて3つあります。

一つ目は、エクセルのテーブル計算機能を使用する方法です。 
これは、最適パラメータを求めるには精度を欠きますが、システム性能のパラメータ分布を求めグラフ化する際に有用です。

二つ目は、マクロを用いて最適パラメータを求める方法です。 
これは、精度良く最適パラメータを求めることが出来ますが、パラメータ分布までは分かりません。また、広い範囲を走査する場合は、非常に時間が掛かります。
そのため、ある程度範囲を絞って、最適パラメータに変化がないか日々確認する用途に向いています。

そして三つ目は、時系列分析です。起点日から終点日(直近日)に至る全ての日付で、主要な性能指標に対して、最適パラメータを求める方法です。 
直近までの期間の最適パラメータの安定性を見ることで、安定に機能するシステムを選定することが出来ます。システムを新たに作成する際に必須の機能ですが、分析には膨大な時間が掛かります。

KFシステムクリエイターでは、これらの最適化演算を駆使して、システムの作成、管理、そして分析を行うことが出来ます。 


(2)最適化条件と対象指標

最適化を行うに当たり、何を持って最適とすべきなのかという問題があります。この場合、最適化の対象とする指標の直接的な値ではなく、値に無関係な特徴点を指定する必要があります。 
それは例えば最大値であり、指標によっては最小値でもあります。大きければ大きいほど良い指標に対しては最大値、逆に小さければ小さいほど良い指標に対しては最小値を指定します。

理想的には、最大値ではなく極大値、最小値ではなく極小値を求めるべきなのですが、最大値や最小値がパラメータ走査範囲の端部に位置する場合は、それらは必ずしも極大値や極小値にはなり得ません。 
そのため、パラメータの走査範囲が(3,3)~(150,150)であるとした場合、例えば(3,3)が最適パラメータとして求められた時は、得られたシステムの性能を十分に検証する必要があります。

最適化を行うに当たり、どの性能指標に対して行うのかは、極めて重要な選択となります。一口に性能指標といいましても、期待効率や損益累計、プロフィットファクター、勝率など、数え上げればきりがありません。 
それらを最大化もしくは最小化する最適パラメータは、性能指標によって異なります。

一方、同一銘柄、同一ロジック、同一期間のシステムでは、パラメータのペアと全ての性能指標との関係は1対1で決まります。 
そのため、パラメータの異なったシステムは、性能の異なった別のシステムとして機能します。すなわち、最適化対象とする性能指標に何を選ぶかで、得られるシステムは全く異なってくるのです。

では、具体的にどのような性能指標を最適化対象として選ぶべきでしょうか? 

KFシステムクリエイターでは、KFインデックスというファクターを定義し、それが最大となるパラメータを最適パラメータとすることを推奨しています。 
KFインデックスは、直近において大きい方が良い指標と、長期にわたって安定した方が良い指標とを組み合わせた複合指標であり、この値が大きいほど期待値が高くかつ安定性に優れる、ということになります。

KFインデックスを最適化対象指標とすることで、比較的期待値が高く、長期に渡って安定が見込まれるシステムを得ることが出来ます。 
なお、KFインデックスには単株ベースと単利ベースの2通りがあり、最終的な運用方法を見越した上で決定する必要があります。

ちなみに、平均損益率が売買手数料率よりも小さいと正の期待値が得られないため、KFインデックスにはそのような場合を除外するフィルターが備わっています。 
また、トレード数が極端に少ないと統計的信頼性に乏しくなるため、同様にそれを除外するフィルターを設定することが出来ます。



サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す