
Die Dynamic Moving Average Crossover Strategy ist eine typische Trend-Tracking-Strategie. Sie erzeugt Kauf- und Verkaufssignale, um die Wendepunkte der Markttrends zu erfassen, indem sie einen schnellen (Fast MA) und einen langsamen (Slow MA) Moving Average berechnet und bei deren Kreuzung ein Kauf- und Verkaufssignal erzeugt.
Die Kernlogik dieser Strategie ist: Ein Kaufsignal wird erzeugt, wenn der schnelle bewegliche Durchschnitt von unten durch den langsamen beweglichen Durchschnitt geht; ein Verkaufsignal wird erzeugt, wenn der schnelle bewegliche Durchschnitt von oben durch den langsamen beweglichen Durchschnitt geht.
Bewegliche Durchschnittswerte wirken wirkungsvoll auf Marktgeräusche und erfassen Preistrends. Schnelle bewegliche Durchschnitte sind empfindlicher und können Trendänderungen rechtzeitig erfassen. Langsame bewegliche Durchschnittswerte sind stabiler und wirken wirkungsvoll auf kurzfristige Schwankungen.
Die Strategie sendet sofort ein Handelssignal aus, wenn die Gleichung gekreuzt wird, und verwendet eine Trendverfolgungsstrategie, um die Markttrends zu verfolgen und einen größeren Gewinn zu erzielen. Gleichzeitig setzt die Strategie einen Stop-Loss- und einen Stop-Stop-Satz ein und kontrolliert das Risiko streng.
Das kann durch Optimierung der Parameter, Anpassung der Länge der Durchschnittszyklus oder Hinzufügen von Filterbedingungen verbessert werden.
Die Dynamische Gleichlinien-Kreuzung ist eine sehr effektive Strategie, die durch die Anpassung der Parameter-Optimierung weiter verbessert werden kann. Die Strategie ist einfach umzusetzen und eignet sich für Anfänger.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Simple Moving Average Crossover", shorttitle="SMAC", overlay=true)
// Define input parameters
fast_length = input.int(9, title="Fast MA Length")
slow_length = input.int(21, title="Slow MA Length")
stop_loss = input.float(1, title="Stop Loss (%)", minval=0, maxval=100)
take_profit = input.float(2, title="Take Profit (%)", minval=0, maxval=100)
// Calculate moving averages
fast_ma = ta.sma(close, fast_length)
slow_ma = ta.sma(close, slow_length)
// Define conditions for long and short signals
long_condition = ta.crossover(fast_ma, slow_ma)
short_condition = ta.crossunder(fast_ma, slow_ma)
// Plot moving averages on the chart
plot(fast_ma, title="Fast MA", color=color.blue)
plot(slow_ma, title="Slow MA", color=color.red)
// Execute long and short trades
if (long_condition)
strategy.entry("Long", strategy.long)
if (short_condition)
strategy.entry("Short", strategy.short)
// Set stop loss and take profit levels
stop_loss_price = close * (1 - stop_loss / 100)
take_profit_price = close * (1 + take_profit / 100)
strategy.exit("Take Profit/Stop Loss", stop=stop_loss_price, limit=take_profit_price)
// Plot signals on the chart
plotshape(series=long_condition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=short_condition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)