チェンデモメントオシレーター (CMO) をベースとした平均逆転取引戦略は,特定の期間の価格動力を計算することによって,過買い・過売ゾーンを特定する技術分析戦略である.この戦略は,価格が極端な偏差を示したときに資産価格と取引の動力変化を監視し,平均逆転の機会を把握することを目的としている.CMOが -50を下回るときにロングポジションに入手し,CMOが50を超えたときまたは保有期間が5日を超えると終了する.
戦略の核心は,CMO指標の計算と適用にあります.CMOは,特定の期間における利益と損失の差とその合計の比率を計算することによってモメンタムを測定します.公式は: CMO = 100 × (利益の総和 - 損失の総和) / ((利益の総和 + 損失の総和)
伝統的なRSIとは異なり,CMOは分母で上下両動きを使用し,より対称的なモメンタム測定を提供します.CMOが -50を下回るとロングポジションに入る.CMOが50を超えるとまたは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)