Diese Strategie kombiniert den RSI-Indikator, den MACD-Indikator und doppelte gleitende Durchschnitte, um Trendverfolgungs- und Positionierungseffekte auf dem Volatilitätsmarkt zu erzielen.
Berechnung der Preisänderung Aufwärtstrend und Abwärtstrend
Berechnung des RSI auf der Grundlage der Preisänderung
Bestimmung der überkauften und überverkauften Niveaus
Berechnung der schnellen MA, der langsamen MA und der Signalleitung
Eintritt auf dem goldenen Kreuz und Ausgang auf dem Todeskreuz
Zeichnen Sie die Crossover-Situationen
Berechnen Sie schnelle und langsame gleitende Durchschnitte
Handel nur in Betracht ziehen, wenn ein schneller MA über einen langsamen MA überschreitet
Filtern Sie Lärm und folgen Sie dem Trend
Filter Eingangssignal mit RSI, MACD und doppelter MA
Verbesserung der Genauigkeit und Stabilität der Strategie
Kombination mehrerer Indikatoren verbessert die Genauigkeit
Nachfolgender Trend filtert Lärm und verbessert die Stabilität
Der RSI erkennt potenzielle Umkehrpunkte
MACD-Crossover liefert einfache Ein- und Ausstiegssignale
Doppel-MA beseitigt die meisten Gegentrendgeschäfte
Einfach zu verstehen mit wenigen Parametern, gut zum Lernen
Risiko einer Überanpassung mehrerer Indikatoren
Doppel-MA bringt Flexibilität zum Opfer und kann Chancen verpassen
RSI- und MACD-Parameter müssen sorgfältig ausgewählt werden
Achten Sie auf den Stop-Loss auf Basis des Symbols
Erfordert regelmäßige Neuausrichtung der Parameter
Anpassung der RSI-Parameter für verschiedene Symbole
Optimierung der doppelten MA-Perioden für eine bessere Nachverfolgung
Hinzufügen von Stop Loss zur Kontrolle von Einzelhandelsverlusten
Mehr Indikatoren hinzufügen, um die Kombination zu bereichern
Entwicklung eines anpassungsfähigen Parametermodells für die automatische Abstimmung
Diese Strategie kombiniert RSI, MACD und doppelte MA, um Trends zu identifizieren und zu verfolgen und Filtersignale durch mehrere Ebenen zu filtern. Sie eignet sich sehr gut für Anfänger, um zu lernen und zu verbessern. Der Vorteil liegt in ihrer Einfachheit und Anpassungsfähigkeit. Die feine Abstimmung von Parametern kann anständige stetige Renditen erzielen.
/*backtest start: 2023-09-22 00:00:00 end: 2023-10-22 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 // strategy(title="RSI MACD", precision = 6, pyramiding = 1, default_qty_type = strategy.percent_of_equity, default_qty_value = 99, commission_type = strategy.commission.percent, commission_value = 0.25, initial_capital = 1000) // Component Code Start // Example usage: // if testPeriod() // strategy.entry("LE", strategy.long) testStartYear = input(2017, "Backtest Start Year") testStartMonth = input(01, "Backtest Start Month") testStartDay = input(2, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testStopYear = input(2019, "Backtest Stop Year") testStopMonth = input(7, "Backtest Stop Month") testStopDay = input(30, "Backtest Stop Day") testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0) // A switch to control background coloring of the test period testPeriodBackground = input(title="Color Background?", type=bool, defval=true) testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na bgcolor(testPeriodBackgroundColor, transp=97) testPeriod() => true // Component Code Stop //standard rsi template src = ohlc4, len = input(14, minval=1, title="Length") up = rma(max(change(src), 0), len) down = rma(-min(change(src), 0), len) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) plot(rsi, color=#87ff1a) band1 = hline(80) band = hline(50) band0 = hline(20) fill(band1, band0, color=purple, transp=90) //macd fast_length = input(title="Fast Length", defval=9) slow_length = input(title="Slow Length", defval=72) signal_length = input(title="Signal Length", defval=9) fast_ma = sma(rsi, fast_length) slow_ma = sma(rsi, slow_length) shortma = sma(ohlc4, fast_length) longma = sma(ohlc4, slow_length) controlmainput = input(title = "Control MA", defval = 234) controlma = sma(ohlc4, controlmainput) macdx = fast_ma - slow_ma signalx = sma(macdx, signal_length) hist = macdx - signalx ma_hist = shortma - controlma macd = macdx + 50 signal = signalx + 50 plot(macd,"macd", color = fuchsia) plot(hist,"hist", style = histogram, color = fuchsia) //plot(ma_hist,"ma hist", style = histogram, color = orange) plot(signal,"signal", color = white) //input control_buy_toggle = input(true, "Buy on crossover control MA?", type = bool) buy_on_control = control_buy_toggle == true? true : false //conditions buy = buy_on_control == true? ma_hist > 0 and shortma > longma and crossover(macd,signal) or crossover(shortma, controlma) : ma_hist > 0 and shortma > longma and crossover(macd,signal) sell = ma_hist > 0 and shortma > longma and crossunder(macd,signal) stop = crossunder(shortma, longma) or crossunder(shortma, controlma) plotshape(buy,"buy", shape.triangleup, location.bottom, green, size = size.tiny) plotshape(sell,"sell", shape.triangledown, location.bottom, red, size = size.tiny) plotshape(stop,"stop",shape.circle,location.bottom, white, size = size.tiny) if testPeriod() strategy.entry("buy", true, when = buy, limit = close) strategy.close("buy", when = sell) strategy.close("buy", when = stop)