Die schwebende Durchschnitts-Crossover-MACD-Handelsstrategie ist eine quantitative Handelsstrategie, die die Crossover-Situationen von kurz- und langfristigen exponentiellen gleitenden Durchschnitten (EMA) verfolgt und Kauf- und Verkaufsaktionen durchführt, wenn ein goldenes Kreuz und ein totes Kreuz auftreten.
Diese Strategie stützt sich hauptsächlich auf den 12-Tage-EMA, den 26-Tage-EMA und den MACD-Indikator.
Darüber hinaus legt diese Strategie auch einige Filterbedingungen fest:
Diese Strategie kombiniert den gleitenden Durchschnitts-Crossover und den MACD-Indikator, der die Wendepunkte der kurz- und mittelfristigen Marktentwicklung effektiv erfassen kann.
Diese Strategie birgt auch einige Risiken:
Entsprechende Minderungsmethoden:
Zu den wichtigsten Aspekten für die Optimierung dieser Strategie gehören:
Die Moving Average Crossover MACD-Handelsstrategie erzeugt Handelssignale durch einfaches Trendverfolgen und kontrolliert Risiken effektiv mit geeigneten Filterbedingungen. Es ist eine effektive quantitative Handelsstrategie. Die Strategie kann in Form von Parameteroptimierung, Hinzufügen von Stop-Loss-Mechanismen, Einbeziehung mehr Hilfsindikatoren usw. verbessert werden.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMMA", max_bars_back = 200) var up1 = #26A69A var up2 = #B2DFDB var down1 = #FF5252 var down2 = #FFCDD2 var confirmationLength = 2 var earliest = timestamp("20 Jan 2024 00:00 +0000") // Regn u shortEMA = ta.ema(close, 12) longEMA = ta.ema(close, 26) macd = shortEMA - longEMA signal = ta.ema(macd, 9) delta = macd - signal absDelta = math.abs(delta) previousDelta = delta[1] signalCrossover = ta.crossover(macd, signal) signalCrossunder = ta.crossunder(macd, signal) harskiftetdag = hour(time[confirmationLength]) > hour(time) enterLongSignal = signalCrossover[confirmationLength] and (macd > signal) and (absDelta >= 0.08) exitLongSignal = signalCrossunder[confirmationLength] and (macd < signal) enterShortSignal = signalCrossunder[confirmationLength] and (macd < signal) and (absDelta >= 0.08) exitShortSignal = signalCrossover[confirmationLength] and (macd > signal) // Så er det tid til at købe noe qty = math.floor(strategy.equity / close) if time >= earliest and not harskiftetdag if exitLongSignal strategy.close("long") else if enterLongSignal strategy.close("short") strategy.entry("long", strategy.long, qty = qty) if exitShortSignal strategy.close("short") else if enterShortSignal strategy.close("long") strategy.entry("short", strategy.short, qty = qty) // Så er det tid til at vise noe plot(macd, color=color.blue) plot(signal, color=color.orange) // bgcolor(color = delta > 0.1 ? color.new(color.green, 90) : color.new(color.green, 100)) // bgcolor(color = signalCrossover ? color.purple : signalCrossunder ? color.aqua : color.new(color.green, 100)) histogramColor = delta > 0 ? (previousDelta < delta ? up1 : up2) : (previousDelta > delta ? down1 : down2) plot( delta, style=plot.style_columns, color=histogramColor )