
Die Strategie ist ein Trend-Tracking-Trading-System, basierend auf dem Chadian Dynamic Oscillation Indicator (CMO). Die Strategie sucht nach Kauf- und Verkaufsmöglichkeiten in Überverkaufszonen durch Berechnung und Analyse der Preisdynamik und verwaltet das Risiko in Kombination mit Positionszeitbeschränkungen. Diese Methode erfasst sowohl Chancen für Preisrückläufe als auch vermeidet häufigen Handel in einem wackligen Markt.
Der Kern der Strategie besteht darin, die CMO-Indikatoren zu verwenden, um die Marktdynamik zu messen. Die CMO erzeugt einen Indikatorwert, der zwischen -100 und -100 schwankt, indem sie die Differenz zwischen den Erhöhungen und den Abwärtstropfen zur Summe berechnet. Wenn der CMO unter -50 liegt, was darauf hinweist, dass der Markt überverkauft ist, gibt das System mehrere Signale aus.
Dies ist eine auf Dynamik basierende Trendverfolgungsstrategie, die überkaufende und überverkaufende Gelegenheiten im Markt durch CMO-Indikatoren erfasst. Die Strategie ist vernünftig konzipiert und verfügt über klare Handelsregeln und Risikokontrollmechanismen. Obwohl einige inhärente Risiken bestehen, kann die Stabilität und Profitabilität der Strategie durch Optimierung weiter verbessert werden.
/*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)