エーラーズ=フィッシャー相対活力指数戦略
概要
本戦略は、ジョン・エーラース氏が著書『株式と先物のコントロール分析』で提唱したエーラース・フィッシャー確率相対活力指数(Ehlers-Fisher Stochastic Relative Vigor Index)指標に基づいて構築されています。この戦略では、エーラース・フィッシャー指標を用いて株式の相対的な強弱を判断し、カスタマイズされた取引ルールに従って買い・売りを行います。
戦略の原理
まず、closing price - opening price(終値 - 始値)を計算します。これは株価の実体部分に相当します。次にhigh price - low price(高値 - 安値)を計算します。これは株価のヒゲ部分に相当します。これらの2つの値のそれぞれの合計を平均することで、株価のモメンタムを算出します。そして、このモメンタム値を株価のボラティリティで割ることで相対活力指数(RVI)を求めます。
さらに、RVIに対してエーラース・フィッシャー指標の計算式を適用し、シグナル値を取得します。シグナル値がトリガー値を上抜けたらロング、下抜けたらショートのポジションを取ります。また、固定ストップロスとトレーリングストップロスを設定してリスクを管理します。
優位性の分析
本戦略は株価のモメンタム特性と確率指標を組み合わせることで、市場の相対的な強弱を効果的に判断できます。エーラース・フィッシャー指標の設計はノイズの影響を低減し、信頼性の高い取引シグナルを生成します。活力指数は株価自身のトレンド性とボラティリティを反映するダイナミックな指標です。
モメンタム指標や確率指標のみを使用する場合と比較して、本戦略は指標とモデルを有機的に統合し、シグナル品質を向上させます。厳格なストップロスルールにより、収益性を確保しつつリスクをコントロールできます。
リスク分析
本戦略は主にエーラース・フィッシャー指標に依存しています。市場に突発的な大きな変化が生じた場合、指標パラメータを新しい環境に適合させるために最適化する必要があります。指標パラメータの設定が不適切な場合、誤ったシグナルやシグナルの遅れが発生する可能性があります。
また、戦略自体にも一定のカーブフィッティングリスクが存在します。テスト中と実運用中の市場環境が大きく異なる場合、戦略のパフォーマンスに大きな乖離が生じる可能性があります。そのような場合には、パラメータの調整や取引ルールの最適化を行い、新しい市場状況に適応させる必要があります。
最適化の方向性
本戦略は以下の点でさらに最適化が可能です。
- エーラース・フィッシャー指標のパラメータを最適化し、より感度を高めるか、ノイズを除去する。
- LSTMなどの機械学習アルゴリズムを用いて指標をモデル化し、より信頼性の高い取引シグナルを生成する。
- 市場のボラティリティ指標(ATRなど)を組み合わせて、ストップロス幅を動的に調整する。
- マルチファクターモデルのサポートを追加し、他のテクニカル指標やファンダメンタル指標を統合してシグナル品質を向上させる。
- ポジションのエントリー・エグジットロジックを最適化し、動的なエントリー・エグジット条件を設定する。適応型ストップロスやテイクプロフィット技術を導入する。
まとめ
本戦略はエーラース・フィッシャー確率相対活力指数指標を用いて市場のトレンドと強弱を判断し、適切なストップロスメカニズムを設定してリスクをコントロールします。単一指標と比較して、本戦略は複数の指標とモデルを有機的に統合し、ノイズを除去して高品質なシグナルを提供します。パラメータ最適化、モデル融合、適応型調整などの手段を通じて、戦略パフォーマンスにはさらなる改善の余地があります。
/*backtest
start: 2022-12-15 00:00:00
end: 2023-12-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Ehlers Fisher Stochastic Relative Vigor Index Strategy", overlay = false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 1, commission_type = strategy.commission.percent, commission_value = 0.1)
p = input(10, title = "Length")
FisherStoch(src, len) =>- 1

