
チャンドー・ダイナミクス・オシレータ (CMO) による平均回帰取引戦略は,特定の期間における価格変動の動力を計算することで,過買過売の領域を識別する技術分析戦略である.この戦略は,主に資産価格の動力の変化を監視し,価格が極端な偏差が発生したときに取引し,価格の平均回帰の機会を捕捉する.この戦略は,9日周期の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)