シャンデ・モメンタム・オシレーターに基づく適応型平均回帰取引戦略

CMO SMO RSI SMA MR TS
作成日: 2024-12-11 17:17:50 最終変更日: 2024-12-11 17:17:50
コピー: 2 クリック数: 396
1
フォロー
1617
フォロワー

シャンデ・モメンタム・オシレーターに基づく適応型平均回帰取引戦略

概要

チャンドー・ダイナミクス・オシレータ (CMO) による平均回帰取引戦略は,特定の期間における価格変動の動力を計算することで,過買過売の領域を識別する技術分析戦略である.この戦略は,主に資産価格の動力の変化を監視し,価格が極端な偏差が発生したときに取引し,価格の平均回帰の機会を捕捉する.この戦略は,9日周期のCMO指標を核心信号として採用し,CMOが50を下回るときに多額のポジションを開き,CMOが50上回るときまたは5日以上のポジション保持時に平仓する.

戦略原則

戦略の核心は,CMO指標の計算と適用である.CMOは,一定の周期で上昇と減少の差値と総和の比率を計算することによって,動力を測定する.具体的計算式は次のとおりである. CMO = 100 × (上昇と下降の和) / (上昇と下降の和)

伝統的なRSIとは異なり,CMOは,分子の中で同時に上昇と下落のデータを使用し,より対称な動力の測定を提供します.戦略は,CMOが50を下回ったときに,市場が過剰に売り切れていると考え,価格が上昇すると予想されるので,より多くポジションを開きます.CMOが50以上または5日以上ポジションを開くと,戦略は,平仓停止または停止します.

戦略的優位性

  1. 信号明晰度 - CMOは,明瞭な超買超売判断基準を提供し,取引信号が明晰で曖昧な状況を生じさせない
  2. リスク管理が完ぺきです - 長期の監禁のリスクを回避するために,最大保有期間を設定します
  3. 適応性 - 戦略は,異なる市場状況に応じてパラメータを調整することができ,良好な適応性を持っています
  4. 理論的基礎は堅固で,学術的な支持が信頼される成熟した平均回帰理論に基づいています.
  5. 計算が簡単 - 指数計算方法は単純で直感的で,理解しやすく,実行可能

戦略リスク

  1. トレンド市場リスク - 強いトレンドの市場では,平均回帰戦略は頻繁に損をする可能性があります
  2. 参数感性 - CMOサイクルと値の選択が戦略のパフォーマンスに大きく影響する
  3. 偽信号のリスク - 市場が激しく波動するときに偽信号が生じる可能性
  4. 時間のリスク - 固定の平定時間は,よりよい利益の機会を逃す可能性があります.
  5. 滑落リスク - 流動性の低い市場では大きな滑落に直面する可能性がある

戦略最適化の方向性

  1. トレンドフィルターの導入 - 長期トレンド指標を追加し,順位が上がっているときにポジションを開きます
  2. ダイナミックパラメータ最適化 - CMOサイクルと値下げを市場の変動率に動的に調整する
  3. 損失の停止の改善 - ダイナミックな損失を増加させ,既得利益を保護する
  4. ポジション保持時間を最適化 - 変動率の動向に合わせて最大保持時間を調整できる
  5. 交付量確認の増加 - 交付量指標の組み合わせにより信号の信頼性が向上

要約する

この戦略は,CMO指数によって,市場の超買超売の機会を捕捉し,固定時間ストップと組み合わせて,堅牢な平均回帰取引システムを構築する.戦略の論理は明確で,リスク管理は合理的で,実用的な価値があります.パラメータをさらに最適化し,補助指標を増やすことで,戦略の安定性と収益性をさらに向上させることができます.

ストラテジーソースコード
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-09 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Chande Momentum Oscillator Strategy", overlay=false)

// Input for the CMO period
cmoPeriod = input.int(9, minval=1, title="CMO Period")

// Calculate price changes
priceChange = ta.change(close)

// Separate positive and negative changes
up = priceChange > 0 ? priceChange : 0
down = priceChange < 0 ? -priceChange : 0

// Calculate the sum of ups and downs using a rolling window
sumUp = ta.sma(up, cmoPeriod) * cmoPeriod
sumDown = ta.sma(down, cmoPeriod) * cmoPeriod

// Calculate the Chande Momentum Oscillator (CMO)
cmo = 100 * (sumUp - sumDown) / (sumUp + sumDown)

// Define the entry and exit conditions
buyCondition = cmo < -50
sellCondition1 = cmo > 50
sellCondition2 = ta.barssince(buyCondition) >= 5

// Track if we are in a long position
var bool inTrade = false

if (buyCondition and not inTrade)
    strategy.entry("Long", strategy.long)
    inTrade := true

if (sellCondition1 or sellCondition2)
    strategy.close("Long")
    inTrade := false

// Plot the Chande Momentum Oscillator
plot(cmo, title="Chande Momentum Oscillator", color=color.blue)
hline(-50, "Buy Threshold", color=color.green)
hline(50, "Sell Threshold", color=color.red)