(2)システム間の相関
KFシステムクリエイターでは、追加システムと並んで合成システムを作成する機能があります。
合成システムは、2つもしくはそれ以上の同一銘柄の異なったシステムを合成するもので、リスクを低減したり性能を向上させたりすることが出来ます。また、合成数を増やすことで、うねり取りシステムを作成することが可能となります。
合成システムの詳細については次項で説明しますが、本項ではシステム合成の前提となるシステム間の相関について解説いたします。
システムの合成に当たって、ほとんど同じ性能を有するシステム同士を合成しても、リスク低減や性能向上の効果は得られません。
資産カーブで考えればそれは明白です。システムを合成するということは、資産カーブを重ね合わせて平均を取ることと同じです。なお、以下では重ね合わせて平均を取ることを、単に重ね合わせることとします。
ほとんど同じ形状の資産カーブを重ね合わせると、その資産カーブは元システムの資産カーブとほとんど変わりません。
すなわち、その合成システムは元システムとほとんど同じ性能しか、有していないことになります。
では、ある期間において、システムAの資産カーブはその回帰直線の上方で推移し、システムBの資産カーブはその回帰直線の下方で推移していた場合、それら2つのシステムを合成したらどうなるでしょう。
その場合、合成システムの同期間における資産カーブは、その回帰直線に近い位置にあるはずです。すなわち、資産カーブが平準化され、リスクが低減したと言うことが出来ます。
このように、各々の資産カーブの回帰直線を中心として、資産カーブの位置関係が相対している場合、各システム間の相関は小さくなります。
そのようなシステム同士を合成すれば、リスク低減や性能向上効果が期待できます。
そのためには、システム間の相関を知る必要があります。なお、ここで言う相関とは、あくまで回帰直線を中心とした資産カーブの分布間の相関を意味します。
それを調べるために、KFシステムクリエイター(KFシステムコントローラ)では「相関係数算出マクロ」を提供しています。
相関係数算出マクロでは、複数のシステム間の相関係数を求め、それらの相関図を表示することが出来ます。これにより、合成システムに採用する元システムを、効率的に選択することが可能となります。
以下に、相関係数算出マクロの使い方について、説明いたします。
なお、同マクロはKFシステムクリエイター操作時に自動生成される、データファイルを参照します。データファイルは、他のブックやマクロからシステムを参照する際、システムブックを直接参照すると、負荷が急激に増大してしまうことを防ぐ役目があります。
生成されるデータファイルの容量は700kB程度ですが、元システムの容量の1~2%程度であり、保存容量全体への影響は軽微です。
また、データファイル名は、元システムのファイル名の先頭に"dat"を追加したファイル名となっており、原則として元システムと同じフォルダに作成されます。
データファイルの生成は、元システムを保存した直後に自動的に行なわれ、ご利用者が意識する必要はありません。
なお、既存システムからのセットアップなどにより、別名保存される場合は、新たなシステムに対してデータファイルが生成されます。すなわち、元システムの最新データファイルが、勝手に書き換わるということはありません。
ちなみに、データファイルが作成されるのは、元システムの保存を行なった後、最初にセルを移動するか、シートを切り替えるか、あるいはブックを閉じる時です。
これらは一度実行されれば、その後の同様の操作で再度データファイルが作成されることはありません。
作成されるデータファイルは、サマリーシートと時系列データシートとからなり、サマリーシートは従来のサマリーと全く同一です。
時系列データシートには、次図に示しますように、直近保存時の銘柄名と日付、各株価、出来高、各損益累計、保有状態、各保有日数が記録されます。
さて、相関係数算出マクロは、異なったシステムにおける損益累計の残差間の相関係数を求めるもので、次図に示すシステム登録シートに、相関係数を求めたいシステムを登録しておくだけで、それらのシステム間の相関係数一覧を作成することができます。
システムの登録に当たっては、システムのフォルダ名とファイル名を設定すると共に、システムのタイプ(ドテン、買い、売り)を選択し、そのシステムを表す記号を重複しないように設定してください。記号は出来るだけ短く、かつ分かりやすいものとしてください。
なお、フォルダ名が異なるファイルを登録する場合は、F列を再表示してそこにフォルダ名を設定してください。
それ以外の項目(No.、システム名、銘柄名)は相関係数の算出には影響しませんが、後で確認しやすいように適宜入力しておいてください。
ちなみに、代表銘柄名には、銘柄名の最初の行の値が自動設定されます。
ファイルTypeについては、ファイルの確認用として使用し、マクロの直接的な動作とは無関係です。「システム/prm/dat/smr」のいずれかを設定し、ファイル名をダブルクリックすることで、そのファイルを開くことが出来ます。
設定完了後、「相関係数算出」ボタンを押すと、各システムの計算シート(次図上段)が作成され、それらの間の相関係数一覧が相関係数シート(次図下段)に作成されます。
相関係数は、テスト期間、運用期間、全期間の3つの期間で算出され、テスト終了日(ベージュ部分)を変更することで、テスト期間と運用期間を後から変更することが可能です。
なお、一覧表の最終列には各システム・各期間のEERとRSQを表示していますので、性能が比較的良好なシステムのみを効率的に選択することができます。
また、相関係数一覧表における各システムの記号(B列あるいは8行)セルをダブルクリックすると、それらの元システムが開きますので、システムの詳細を確認することができます。
さらに、表中の相関係数部分をダブルクリックすると、その組み合わせの散布図(次図)が表示されます。散布図を確認することによって、相関係数だけではつかみにくいシステム間の関係を確認することが可能となります。
散布図を閉じるには、図を選択した状態で削除(Deleteキー押下)を行なってください。なお、散布図を閉じずに他のセルをダブルクリックすると、それに対応した新たな散布図が追加されます。
ちなみに、登録システムの数が多くなると、再計算に非常に時間が掛るようになります。特に、そのような状態で元システムを開くと、表示までにかなりの時間が掛ってしまう場合があります。
また、ファイルサイズも非常に大きくなってしまいます。
そのような場合、システム登録シートにおいて「結果固定2」ボタンを押すと、システム登録シートと相関係数シート以外のシートは全て削除され、さらに相関係数の値は固定されて、再計算時間を大幅に短縮すると共に、ファイルサイズを小さくすることができます。
ただし、テスト期間および運用期間の変更や散布図の表示ができなくなりますので、ご注意ください。なお、相関係数シートからの元システムのオープンは可能です。
また、散布図の表示機能を残したい場合は、「結果固定1」ボタンを押してください。すると、数式が全て値で上書きされ、再計算ができなくなりますが、散布図の表示は可能となります。
ファイル容量は半分程度にしか削減できませんが、再計算処理がなくなるため、ファイルの呼び出しや散布図の表示が高速化されます。
「結果固定1」または「結果固定2」を解除したい場合は、「相関係数算出」ボタンを押せば元に戻せますが、データファイルが更新されていると、終了日が更新される場合があります。その際は、相関係数シートにおける運用期間の終了行(I5セル)を手動で変更すれば、任意の終了日に設定可能です。
なお、本マクロにデータ更新機能はありませんので、データを更新したい場合は、データファイルを更新した上で、「相関係数算出」ボタンを再度押してください。
ちなみに、「結果固定2」は「結果固定1」の後に実行しても構いません。