Diese Strategie ist ein trendfolgende Handelssystem, das auf dem Chande Momentum Oscillator (CMO) basiert. Es sucht Kaufmöglichkeiten in überverkauften Regionen und Verkaufsmöglichkeiten in überkauften Regionen, während es Zeitlimits für das Halten von Positionen für das Risikomanagement enthält. Dieser Ansatz ermöglicht es, Preisumkehrungen zu erfassen und dabei häufigen Handel in unterschiedlichen Märkten zu vermeiden.
Der Kern der Strategie verwendet den CMO-Indikator, um die Marktdynamik zu messen. CMO erzeugt einen Oszillator im Bereich von -100 bis 100, indem das Verhältnis der Differenz zwischen Aufwärts- und Abwärtsbewegungen zu ihrer Summe berechnet wird. Das System erzeugt ein langes Signal, wenn CMO unter -50 fällt, was auf eine Überverkaufslage hinweist. Positionen werden geschlossen, wenn CMO 50 überschreitet oder wenn die Haltezeit 5 Zyklen überschreitet. Dieses Design erfasst Preis-Rebound-Möglichkeiten, während zeitnahe Gewinn- und Stop-Loss-Maßnahmen umgesetzt werden.
Diese dynamisch basierte Trend-Nachstrategie erfasst Marktüberkauf- und Überverkaufsmöglichkeiten mithilfe des CMO-Indikators. Das Strategiedesign ist rational, mit klaren Handelsregeln und Risikokontrollmechanismen. Obwohl inhärente Risiken bestehen, kann die Optimierung die Strategiestabilität und Rentabilität weiter verbessern. Die Strategie eignet sich besonders für hochvolatile Märkte und kann in klaren Trendphasen gute Renditen erzielen.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-25 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)