ハイブリッド 2 状態 Z スコア定量化戦略

SMA BB
作成日: 2024-05-28 17:38:08 最終変更日: 2024-05-28 17:38:08
コピー: 1 クリック数: 548
1
フォロー
1617
フォロワー

ハイブリッド 2 状態 Z スコア定量化戦略

概要

この戦略は,異なる市場状態を識別するために,二次分布モデルと回帰分析を組み合わせた混合の量化分析方法を使用する.戦略は,まず,SMAとブリン帯の指標を計算し,その後,歴史的なリターンの平均と標準差に基づいてZスコアを計算する.Zスコアが下位値を下回り,価格は下位軌道を下回ったときに,戦略は多めにポジションを開く.Zスコアが上位値を下回り,価格は上位軌道上にあるときに,戦略は平仓する.

戦略原則

この戦略の核心原理は,Zスコアを使用して,現在のリターンと歴史的なリターン分布の位置を測定することです.Zスコアの計算式は: ((現在のリターン - 歴史的リターンの平均) /歴史的リターンの標準差である.Zスコアが高くなるほど,現在のリターンが極限を超え,超買いする可能性が高くなる;Zスコアが低くなるほど,現在のリターンが極限を超え,超売りする可能性が高くなる.また,戦略は,ブリン帯の指標を組み合わせて,価格を突破して下線を二次確認します.Zスコアとブリン帯の信号が同時に条件を満たす場合にのみ,戦略は取引信号の組み合わせを生成します.この組み合わせは,偽信号の発生を効果的に減らすことができます.

戦略的優位性

  1. 定量分析:この戦略は,完全に定量指標に基づいています. 規則は明確で,実行し,測定しやすい.
  2. 双重確認:策略はZスコアとブリン帯の2つの指標を同時に採用し,双重フィルタリング機構を形成し,信号の正確性を向上させる.
  3. 統計学的基礎:Zスコアは,統計学の正規分布理論に由来し,客観的に現在のリターンの極端度を測定できる堅固な理論的基礎を有する.
  4. パラメータの柔軟性:ユーザは,SMA周期,ブリン帯倍数,Z評価値などのパラメータを,必要に応じて調整して,異なる市場に柔軟に適応することができる.

戦略リスク

  1. パラメータに敏感である:異なるパラメータ設定により,戦略のパフォーマンスの大きな差が生じ,十分なパラメータ最適化と安定性テストが必要である.
  2. トレンドリスク:市場が強いトレンドに突入する際,Zスコアは長期にわたって極端な領域に留まることになり,戦略信号が希少または全く存在しない.
  3. 過適合リスク:戦略パラメータを過度に最適化すると,過適合が起こり,サンプル外でのパフォーマンスが悪くなる可能性がある.
  4. 黒天リスク: 極端な状況では,歴史的な統計法則が失効し,戦略は大きな撤回リスクに直面する.

戦略最適化の方向性

  1. 動的パラメータ:市場の変動率,トレンドの強さなどの指標を考慮し,Z評価の値とブリン帯倍数を動的に調整し,適応性を向上させる.
  2. トレンドフィルターを追加:MA交差,DMIなどのトレンド判断指標を既存のメカニズムに重ねて,強いトレンド下で無効な信号が過剰に発生するのを避ける.
  3. 組み合わせ最適化:この戦略を他の定量戦略 (動量,平均回帰など) と組み合わせて,それぞれの優位性を発揮し,安定性を向上させる.
  4. ストップ・ストップ:合理的なストップ・ストップメカニズムを導入し,単一取引のリスク・フローラを制御し,リスク調整後の収益を向上させる.

要約する

ハイブリッドバイモスZスコア定量化策略は,統計学原理に基づく定量化取引策略で,現在のリターンと歴史的リターン分布を比較して,潜在的超買超売の機会を識別する.同時に,戦略はブルリン帯の指標を二度確認して,信号信頼性を向上させる.戦略の規則は明確で,実行しやすく,最適化されるが,同時にパラメータ敏感,トレンドリスク,過適合リスクなどの課題に直面する.将来,ダイナミックなパラメータ,トレンドフィルター,組合せ最適化,ストップダスト,ストップダストなどの側面から戦略を最適化して,その適応性と安定性を向上させる.全体的に,この戦略は,量化取引のためのシンプルで効果的な考え方を提供し,さらなる探索と改善に値する.

ストラテジーソースコード
/*backtest
start: 2023-05-22 00:00:00
end: 2024-05-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Estratégia Híbrida Quantitativa", overlay=true)

// Definição de parâmetros
sma_length = input.int(20, title="Período da SMA")
threshold_high = input.float(1.5, title="Threshold Alto")
threshold_low = input.float(-1.5, title="Threshold Baixo")
lookback_period = input.int(252, title="Período de Retorno Histórico (dias)")

// Funções auxiliares
f_sma(source, length) =>
    ta.sma(source, length)

f_bollinger_band(source, length, mult) =>
    basis = ta.sma(source, length)
    dev = mult * ta.stdev(source, length)
    [basis + dev, basis - dev]

// Cálculo dos indicadores
sma = f_sma(close, sma_length)
[upper_band, lower_band] = f_bollinger_band(close, sma_length, 2)

// Regime de Mercado: Binomial
retornos = ta.change(close, 1)
media_retornos = ta.sma(retornos, lookback_period)
desvio_padrao_retornos = ta.stdev(retornos, lookback_period)

// Indicador de Regime: Z-Score
z_score = (retornos - media_retornos) / desvio_padrao_retornos

// Sinal de Compra e Venda
sinal_compra = z_score < threshold_low and close < lower_band
sinal_venda = z_score > threshold_high and close > upper_band

// Execução de Ordem
if (sinal_compra)
    strategy.entry("Long", strategy.long)
if (sinal_venda)
    strategy.close("Long")

// Plotagem dos Indicadores
plot(sma, title="SMA", color=color.blue)
plot(upper_band, title="Upper Bollinger Band", color=color.red)
plot(lower_band, title="Lower Bollinger Band", color=color.green)
hline(threshold_high, "Threshold Alto", color=color.red, linestyle=hline.style_dashed)
hline(threshold_low, "Threshold Baixo", color=color.green, linestyle=hline.style_dashed)
plot(z_score, title="Z-Score", color=color.purple)