ベイズ分類器及び特異スペクトル解析法に基づく指標を用いた市場動向の予測

Roman Korotchenko | 19 7月, 2017


はじめに

今日、アルゴリズム取引は証券取引所での取引の約60〜70%、FORTSとFOREX市場の約90%を占めており、したがって、実際の取引量におけるロボットのシェアが増加しています。これは、「持ち切り」戦略が短期間での活発な変動を持近代市場には合わないという事実によります。効率的な取引には、受動的投資から活発な取引への移行が必要です。現代市場での成功は、勝ちトレードの数を増やして負けトレードの数を減らし、損失を最小限に抑えることができる効果的なアルゴリズムと一連のシステムルールの使用に基づいています。

これを達成するための有望な方法の1つは、ベイズの定理に基づいた特異スペクトル分析(SSA)と重要な機械学習法の予測機能を組み合わせることで、時間効率の良い取引のための推奨システムを構築することです。選択されたアプローチの価値は、データの処理が排他的に統計的分析方法に基づいており、根拠のない仮定を含まないということです。これは、この方法の能力と限界の両方、つまり自動化された取引システムを作成するという視点を明確に示しています。

このシステムの開発では、5分から1時間の時間枠の単位の範囲に焦点を当てました。理論的に成功した統計的方法の記述の大多数においては基本的に数時間及び数日といった長めのスケールがより一般的です(カオス的な構成要素の寄与の減少による)が、そのような方法は、個々の投機的取引の実用においてはほとんど役に立つものではありません。

SSAを用いた価格シリーズの応用と予測の特徴

SSAメソッドは、次のような問題を解決するために使用されます。

  • 時系列の主成分(動向、季節変動、変動)とノイズフィルタリングの分離
  • 周期性の検索
  • コンポーネントのセットを制限することによるソースデータの平滑化
  • 観察された依存性のさらなる挙動の予測

SSAは非定常系列で作業する際に使用される数少ない統計的方法の1つです。動向、バースト、インパルス放出を伴う一連の市場価格は、このような系列の好例です。同時に、価格は異なる衝撃の強さと期間を持つ独立した非ランダム要因の影響を受けて形成されます。市場がほとんどの場合にそのような力に依存していると仮定すると、異なるスケール成分の合計に基づくモデルを使用することが可能で、これはSSAアプローチに対応します。

SSAとその「Caterpillar」バージョンの数学的基礎に関する情報は、[1](本稿末尾の参考文献リストを参照)にあります。実用的な観点からは、最近までデータ処理におけるSSAの普及に影響を与えた主な理由の1つは、FFTに似た高速アルゴリズムの不在であったということに留意することが重要です。この問題はもはや存在しません。そのようなアルゴリズムは開発されており、その有効性は証明されています(本稿末尾の参考文献リスト[2]を参照)。

SSAを使用した予測は、隠れた周期性のモデルを使用します。データ系列を解析中にその挙動が特定されたコンポーネントに分割し、これらのコンポーネントを挙動パラメータに従って拡張し、結果を要約することが可能です。 成果物は予測結果であり、その品質はコンポーネントの最初のセットが元のデータをどの程度うまく定義しているかによって決まります。当然のことながら、予測はカオス的に揮発性を持つ系列では信頼できませんが、比較的小さなノイズをもち安定した要因の影響下で形成された価格では正当化できるでしょう。さらに、非アクティブに取引された商品を扱う場合は、統計分析に頼ることはお勧めできません。そのような場合の個々の要因と「主要」プレイヤーの影響は、予測不可能で危険です。

指標の組み合わせによる予測信頼性の向上

考察中のアイディアに従って3つの予測指標が開発されています。動向の識別とその予測 - 高速変換、SSACD(MACDの修正版)とSSAストキャスティクスに基づくSSA動向予測と高速予測各指標には、簡略化されたものと拡張されたものの2種類があります。 

すべての指標は同じデータを使用しますが、プロセスのさまざまな特性に向いているため、それぞれに長所と短所があります。すべての指標を組み合わせ、相乗効果を達成し、一般的な状況を評価する効率性、堅牢性、正確性を高めることが自然な望みです。

投機的戦略の観点から明白に要求されるのは「近い将来に価格がどこに向かうのか」という疑問に答える情報です。価格には上昇、変動、下降の3つの選択肢があります。

動向識別に従って価格を予測する指標については、価格が上昇または下降するときに、その微分のアナログが正または負でなければならないことは明らかです。条件はEPSの誤差レベルを設定することによって定義されます。「微分」が半径がε(EPS)のゼロ近傍にある場合、価格の変化は無視できます。

SSACD指標は、移動平均では一般的な情報の遅延を回避するために修正されたMACDです。あまりにも多くの用語を使用しないようにするために、以下ではこれをMACDと呼ぶことにします。MACDはヒストグラムとその平滑化された指数移動平均(Signal)としてチャートに表示されます。したがって、平滑化された線の変化は、MACDに比べてわずかに遅れており、価格が上昇すると (MACD-Signal)>0 、下降すると(MACD-Signal)<0 となります。EPSの特定の近傍をゼロの近くで設定して、不安定な価格行動の遷移ゾーンを定義します。

SSA Stochastic指標は、前の場合と同様に、遅延を除去するために修正された高速ストキャスティクスです。ストキャスティクスの線は、典型的には、それらの局所的な動向と同方向です。すなわち、価格の上昇、下降、変動の条件の定式化は、イプシロン近辺での、正か負のストキャスティクスの「微分」を介して可能です。

指標は局地の予測を提供するため、上記の測定値の評価によって近い将来の価格行動に関する情報が得られます。指標値の一致によって予測の信頼性が高まり、エラーの可能性が低くなります。

選択された手法の正確性を検証するためには、指標の組み合わせが履歴データの致命的な予測誤差の数をどう減少させるかを評価する必要があります。誤差とは、短期予測が一方向を示し、価格が逆方向に変化した状況を意味します。

上記の指標を使って作業しているユーザーは、おそらく制御パラメータの選択値と理由に関心があるでしょう。しかし、最も関心深いのは最近予測点で、これらのパラメータを特別に長期的に選択する必要はありません。指標の適切なパラメータとはその挙動を系列の主な(予測的ではない)部分と合わせるもので、価格の挙動の平滑さと詳細さを組み合わせ、幅広い種類の金融商品に適しています。選択されたのは下記です。

  1. 動向に基づいた価格予測 (SSA Fast Trend Forecastバージョン2.5):
    アルゴリズム:リカレント予測
    N: データフラグメント = 256
    時間依存の遅れ = N/3
    動向高周波数限度= 0.25
    予測高周波数限度= 0.25
    予測変換 = S[i]/Max(:)
    予測平滑化 = Smoothing MA(3)
  2. SSACD Forecast (Limited) バージョン 2.5:
    アルゴリズム:リカレント予測
    N:データフラグメント = 512 
    時間依存の遅れ = N/4
    高速動向高周波数限度 = 0.4
    低速動向高周波数限度 = 0.6
    シグナルSMA期間 = 4
    データ準備 = {ln(S[i]-Smin+1)}/Max(:)
    予測準備 = S[i] /Max(:)
    予測平滑化 = Smoothing MA(3)
  3. SSA Stochastic (Limited)バージョン 2.0:
    アルゴリズム:リカレント予測
    N: データフラグメント = 256
    時間依存の遅れ = N/4
    %K 高周波数限度 = 0.3
    %D 高周波数限度 = 0.6
    データ準備 = S[i] /Max(:)
    予測平滑化 = Smoothing MA(3)

分析のための履歴データは、異なる時間間隔で採取されています。

GOLD先物 — M5、M15、H1

BRENT — M5、M15

Si-USD/RUB — M15

EUR/USDの為替相場 - M15

異なる期間を持つ異なる取引商品が固定された指標パラメータで処理され、予測値の安定性と品質を考慮することができました。データ系列の各1000点で予測を計算することで、予測と事実を比較する機会が得られました。

チャートの終値データに基づいた指標の予測結果を説明しましょう。



図1 実際の終値、その予測値と3ポイントで平滑化された予測値との比較の断片

図1は、「動向による」予測がほとんどの場合わずかに遅れていることを示しています。これは驚くべきことではありません。動向ベースの価格予測は、さまざまな金融商品のアプリケーションの多用途性に合わせて設定されており、高周波振動の重要な部分が除外されるため、平滑です。異なる時間枠(5分と1時間)で、他の製品(BRENT、GOLD)についても同様の予測が行われます。

別の指標評価(MACD-Signal)の予測とその実際の値を比較してみましょう。


図2 MACD指標による物価上昇方向の実際値と予測値の断片 


図3 MACDによる価格変動の予測と価格変動で形成された動向の一貫性

方向不確定性(EPS)の境界は、系列値(MACD-Signal)の正規化された(最大振幅によって)を標準として0.25に設定されました。

"SSA Stochastic" 指標の助けを借りて各点で形成された確率的予測と予備的予測の比較の断片を以下の図に示します。


図4 Stochasticの実際の値と予測値 

図2と図4は、SSACDとSSA Stochasticのデータによる予測と実際の結果のほぼ完全な等位相条件を示しています。これはおそらくSSA予測を多くのオシレーターに適用したときにも期待できます。

図1に提示されている価格予測の方向性には一連の誤差が含まれているので、これらの指標の組み合わせによってそのような誤差の数をどのように減らすことができるかを見てみましょう。図1の実際価格と予測価格の差は、一致した位置にあるときに損失を引き起こさないため、無関係です。 

(MACD-Signal)、実際価格と予測価格の系列の差の微分、3つの点で平滑化されたストキャスティクスの値があります。以前に定義した価格変動の方向性を示す条件の一貫性は、その組み合わせの効率を分析するためにさらに使用されます。 


図5 3つの指標を用いた場合の価格変動の実際方向と予測方向の並行性

 

図6 動向に基づいたの予測のみを用いた場合の価格変動方向の予測におけるかなりの誤差


図7 動向と(MACD-Signal)に基づく価格予測の組み合わせでの予測誤差


図8 動向、MACD及びストキャスティクスに基づく価格予測の組み合わせの予測誤差

図6~図8は、3つの指標の相乗効果を示しています。指標関数の合意された値を用いた価格変動方向予測の粗誤差の数は、5~7倍減ります。 

指標の予測値に基づく確率的な価格変動のベイズ分類器

ベイズの定理は、確率論の基本的な過程で提示され、事象yが起こった場合の事象xの条件付き確率に関連するものです。

ここではxとyの結合確率であり、p(x)p(y) は個々の事象の確率と定義されます。したがって、結合確率は2つの方法で表現することができます。

ベイズの定理:

ベイズの定理

 

考察中の指標に基づく価格変動方向の予測では、この定理は次の形式で書き直すことができます。


ここで

V — 所定の方向への実際の価格の動きに対応する事象(その変化の符号)で、3つの可能なオプションは、V1 = -1「下降」、V2 = 0「不確定」、V3 = +1「上昇」

F — 価格方向の予測または予測された微分の符号に対応する事象で、3つの可能なオプションは、F1 = -1「下降」、F2 = 0「不確実」、F3 = +1「上昇」

M — 価格挙動と一貫した(MACD-Signal)符号の予測に対応する事象で、3つの可能なオプションは、M1 = -1「下降」、M2 = 0「不確実」、M3 = +1「上昇」

S — 予測されたストキャスティクスの微分の符号に対応する事象で、3つの可能なオプションは、S1 = -1「下降」、S2 = 0「不確実」、S3 = +1「上昇」

数式の左の部分を人が判読できる形式に変換すると「予測指標がF、M、Sの特定の値を与える場合、価格がVk={-1,0,1}の方向に移動する確率は何か?」となります。

次に、説明を簡略化するために、指標が-1、0、+1の値をとって、微分の符号または (MACD-Signal)の符号を意味するものとします。 

価格が下降/上昇するかどうか、またはわずかに変動し続けるかどうかの評価と確率の比較を行うには、数式の右側の値を知る必要があります。これを行うには、下記の2つのタスクが解決されます。

  1. 履歴データに対して「学習」を実行する
  2. 訓練期間外のデータに対する学習結果の「安定性」を検討する

訓練は、異なる時間枠及び製品での異なるデータで実行されています。教師データの長さは数百バーです。その結果は、本稿第3章で検討された指標の選択されたパラメータの普遍性によって、予想通りに同様であることが判明しました。

USD/RUB 15 Mでの先物の「終値」データでの分析結果を説明しましょう。 

取引の開始または決済を決定する際の基準として使用されるのは価格が「上昇」または「下降」する確率なので、これを調べることに専念します。

価格が実質的に下降する場合、指標シグナルもまた負(「下」)またはゼロに近く(「中性」)なければならないことは明らかです。これは、価格が下降した場合の共同予測事象の条件付き確率の最初の評価によって確認されます。しかし、USD/RUB-15M先物のデータでの訓練の結果から得られる他の確率は、表1及び表2に示されるように期待値からの逸脱の可能性を示しています。

表1及び表2


ベイズの公式に基づく計算結果は、指標値に応じた実際の移動確率の分布に関する興味深い情報を提供します。予測値に応じて価格が下降(事象V1 = -1)及び上昇(事象V3 = +1)する最大条件付き確率を表3及び表4に示します。

表3及び表4


分類レベルは単純です。「下降」事象の条件付き確率が現時点で0.5より高いと同時に「上昇」確率より高い場合、下降が予測されます。価格「上昇」の条件は似ています。

下記は分類票を用いた価格表の形での訓練結果です。

図9 訓練データに基づいて計算されたUSD/RUB-15先物の価格の動きの予測分類 

図9に示す分類結果は注目に値します。最も近い将来の方向の予測の方向が迅速に切り替わって維持されます。 

一番大事な問題はまだ調査されていません。それは、条件付き確率行列P(V|FMS)によって提示された訓練結果の(訓練データと比較して)外部状況に伝播できるような頑健性です。

堅牢性の確認には他の時間枠での他金融商品の履歴系列が使われます。個々の瞬間について既知の指標の予測値を用いて、USD/RUB-M15の先物について計算された条件付き確率行列を用いて、方向別に分類し、分類結果を実際の状況と比較します。

図10 EUR/USD-15M相場の動きの予測分類(USD/RUB-15M先物で訓練)


図11 GOLD-15Mの先物の予測分類( USD/RUB-15M先物で訓練)


図12 GOLD-5Mの先物の予測分類( USD/RUB-15M先物で訓練)


図13 BRENT-5Mの先物の予測分類( USD/RUB-15M先物で訓練)

図10〜13に示された結果は非常に楽観的です。USD/RUB-15Mの先物を使用して準備された分類器は、他の時間枠及び他の金融商品にも有効です。

ベイズ分類器に基づく推奨システム

提示された分類器は、生産的な推奨システムを設計するための基礎として、次に制御パラメータがほとんどない取引システムとして使用することができます。パラメータの数を制限することで効果的な最適化が可能になります。

根拠付けのために、履歴データにシステムを適用することを考えてみましょう。もちろん、すべてが基本的に単純化されているので、結果は実際の状況とは遠い関係にありますが、システムに潜在する可能性を示しています。

4つの主な制御パラメータがあります。

  1. Risk Ratio — ボラティリティの倍数としてのストップレベル
  2. Risk Fix     — 取引を開始し収益性の高いポジションを保つための反対方向の許容変動(ボラティリティの倍数として)
  3. Probability Trade Min — 取引を維持するための許容確率
  4. Probability Trade OK — 取引が推奨されるための確率
この場合、ボラティリティは、処理されたデータの始値と終値の差の二乗平均平方根によって測定されます。ストップレベルは前の終値と結びついており、一方向にシフトされます。ポジションへの参入とエグジットの決定はバーが閉じられた後に行われます。

USD/RUB-15M先物データで訓練されたシステムの推奨は、図11に示す終値の履歴及び制御パラメータ3及び4によって制御される予測分類に従って個別にGOLD-15M先物取引をシミュレートするために使用されました。下のチャートは、バーの数で測定した「時間」による収益性の変化を示しています。


図14 GOLD-15M先物の個別取引の収益性に対する取引推奨の確率値の影響(USD/RUB-15M先物で訓練)


図15 GOLD-15M先物の個別取引の収益性に対するストップレベルパラメータの影響(USD/RUB-15M先物で訓練)


図16EUR/USD-15M相場の個別取引の収益性に対する取引推奨の確率値の影響(USD/RUB-15M先物で訓練)

図14〜図16に示すシミュレーション結果は、大規模な損失のない安定した収益性の向上を示しています。収益性の向上に対するパラメータ値の影響は、最適化の可能性と効率性を示します。 

市場動向の迅速な評価のためのプログラム

次に、自動取引システムの構造、ルール、及びテスト結果について説明しますが、状況を迅速に評価するためのソフトウェアモジュールと、ライブ取引中の「推奨事項」を提供することは理にかなっているでしょう。これには、分類の問題を解決し、さまざまな指標の対を使用するモジュールが付属しています。a) SSACD Forecast LimitedSSA Stochastic Limited、b) SSACD ForecastSSA Stochasticです。SSACDはバージョン2.5以上、Stochasticはバージョン2.0以上でなければなりません。フルバージョン指標は分類制御パラメータのより良いカスタマイズを可能にし、異なるデータに対する訓練のオプションを提供し、予測分類のために準備された「最も近い」モデルを選択することができます。「動向による」予測はモジュール内で実行されるため、SSA Fast Trend Forecastの別のインスタンスは必要ありません。

ただし、プログラムは組み込まれたモデルを使用するため、積極的に取引される商品の価格の発展を保証するのではなく評価するのに役立ちます。少数の取引を伴う状況では個々の刺激があまりにも大きな影響を与える可能性があるため、価格の統計的予測には頼るべきではありません。価格が「ギャップ」のような挙動を持つ時間間隔や期間にも同じ事が当てはまります。

このエキスパートアドバイザーはSSAベイズオブサーバーと呼ばれ、起動時には、上記で考察されたパラメータ値を設定します。

図17 SSAベイズオブサーバーのデフォルトパラメータでの起動

オブサーバーの主な値に加えて、動向ベースの予測指標であるSSACD及びSSA Stochasticのパラメータの設定も可能です。その意味と目的は指標自体の説明で議論されていますが、あらかじめ設定されたデフォルト値に頼ることは可能です。

最新バージョンのSSACD指標とSSA Stochastic指標がシステムにインストールされている場合、ユーザーには次のようなインターフェイスが表示されます。


図18 SSAベイズオブサーバープログラムのインターフェイス

現在の設定は、プログラムの実行中に対応するタブを選択して変更することができます。


図19 分類パラメータ 

分類の基準として使用されるモデルはMODELSタブで選択できます。

図20 訓練モデルを選択するためのタブ

図18〜図20に示された制御パラメータは、プログラムの実行中に調整することができます。訓練モデルは、SSACD指標とSSA Stochastic指標のフルバージョンが利用可能な場合にのみ選択できます。

操作中のインターフェイスは次のようです。


図21 SSAベイズオブサーバーの操作モード 

図20が示すように、インターフェイスウィンドウの下の行には、異なる取引モードのFIX及びSTOPレベルが表示されており、価格がそれを超えている場合にポジションを終了する役目を果たします。FIXレベルは、約定が正常に行われた場合のために設計されています。STOPレベルは、ポジションの無条件の終了を意味します。ポジションを終了する決定は、分析された時間間隔が完了した後(READYラベル)に行われたものとみなされます。

終わりに

本稿は、ベイズの定理に基づいた特異スペクトル解析(SSA)と重要な機械学習法の予測機能を組み合わせて、時間効率の良い取引のための推奨システムを構築するというイデオロギーと方法論を提示しています。特定のデータセットに対して訓練されたシステムを別の時間枠及び金融商品の時系列分析に適用する可能性を決定するためにモデリングが実施され、実際のデータの分析に対する本方法の適用の実現可能性を検討することを可能にするプログラムが提示されています。プログラムの構造とコードの説明については、次の記事でカバーします。

実時間での分類の実際的な適用によって多くの問題が明らかにされ、これらは取引の自動化に適した戦略を策定するために解決されなければなりません。これについても、次の部で説明します。

グラフィックインターフェイス[3]の開発をしたAnatoli Kazharski氏 に特別な感謝を表したいと思います。 その使用は困難で時間のかかる作業からもたらされたものです。また、優れたALGLIB数学ライブラリのMQL実装 [4]を提供しているスペシャリストにも感謝しています。

参考文献リスト

  1. N. E. Golyandina The "Caterpillar"-SSA method: forecast of time series. Study Guide. Saint-Petersburg, 2004.
  2. Korobeynikov, A. Computation- and space-efficient implementation of SSA. // Statistics and Its Interface. 3, 2010, 3, 357-368.
  3. https://www.mql5.com/ja/articles/3173
  4. https://www.mql5.com/ja/code/1146