Die Three EMA Stochastic RSI Crossover Golden Cross Strategie ist eine Trendfolgestrategie, die den Three EMA Indikator und den Stochastic Relative Strength Index kombiniert, um Eingangssignale basierend auf dem Crossover der beiden Indikatoren zu bestimmen.
Die Signaldetermination dieser Strategie beruht auf der folgenden Logik:
Drei EMA, um den Trend zu bestimmen: eine 8-tägige EMA oben, eine 14-tägige EMA in der Mitte und eine 50-tägige EMA unten bilden einen Aufwärtstrend; umgekehrt bilden sie einen Abwärtstrend.
Nur lang gehen; kurz wird für jetzt nicht in Betracht gezogen.
Drei EMA filtern kurzfristige Geräusche aus und schließen mittelfristige Trends ein.
Der Stochastische RSI Goldene Kreuz bestätigt einen starken Aufwärtstrend.
ATR-Smart-Stop-Loss- und Take-Profit-Sperren für Gewinne.
Einfache und klare Strategie-Logik, leicht zu verstehen und umzusetzen.
Die wichtigsten Risiken dieser Strategie sind:
Zu den wichtigsten Optimierungsrichtungen gehören:
Optimierung der EMA-Parameter zur Verbesserung der Trendbestimmung.
Fügen Sie Volatilitätsindikatoren wie ATR hinzu, um Stops und Limits zu verbessern.
Einfügen Sie Lautstärke, um falsche Ausbrüche zu vermeiden.
Verwenden Sie maschinelles Lernen usw. für Parameteroptimierung.
Zusammenfassend lässt sich sagen, dass die Three EMA Stochastic RSI Crossover Strategie durch die Kombination von Dual-Indikator-Bestimmung die Konsolidierung und Trends effektiv herausfiltert, wodurch sie zu einer einfachen und praktischen Trendfolgestrategie wird.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-25 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="Stoch RSI Crossover Strat + EMA", shorttitle="Stoch RSI Cross + EMA Strat", overlay = true) // Time Range FromMonth=input(defval=1,title="FromMonth",minval=1,maxval=12) FromDay=input(defval=1,title="FromDay",minval=1,maxval=31) FromYear=input(defval=2020,title="FromYear",minval=2017) ToMonth=input(defval=1,title="ToMonth",minval=1,maxval=12) ToDay=input(defval=1,title="ToDay",minval=1,maxval=31) ToYear=input(defval=9999,title="ToYear",minval=2017) start=timestamp(FromYear,FromMonth,FromDay,00,00) finish=timestamp(ToYear,ToMonth,ToDay,23,59) window()=>true // See if this bar's time happened on/after start date afterStartDate = time >= start and time<=finish?true:false //STOCH RSI smoothK = input(3, minval=1) smoothD = input(3, minval=1) lengthRSI = input(14, minval=1) lengthStoch = input(14, minval=1) src = input(close, title="RSI Source") rsi1 = rsi(src, lengthRSI) k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK) d = sma(k, smoothD) //ATR lengthATR = input(title="ATR Length", defval=14, minval=1) atr = atr(lengthATR) //MULTI EMA emasrc = close, len1 = input(8, minval=1, title="EMA 1") len2 = input(14, minval=1, title="EMA 2") len3 = input(50, minval=1, title="EMA 3") ema1 = ema(emasrc, len1) ema2 = ema(emasrc, len2) ema3 = ema(emasrc, len3) col1 = color.lime col2 = color.blue col3 = color.orange //EMA Plots //plot(ema1, title="EMA 1", linewidth=1, color=col1) //plot(ema2, title="EMA 2", linewidth=1, color=col2) //plot(ema3, title="EMA 3", linewidth=1, color=col3) crossup = k[0] > d[0] and k[1] <= d[1] emapos = ema1 > ema2 and ema2 > ema3 and close > ema1 barbuy = crossup and emapos //plotshape(crossup, style=shape.triangleup, location=location.belowbar, color=color.white) plotshape(barbuy, style=shape.triangleup, location=location.belowbar, color=color.green) longloss = sma(open, 1) //plot(longloss, color=color.red) //Buy and Sell Factors profitfactor = input(title="Profitfactor", type=input.float, step=0.1, defval=2) stopfactor = input(title="Stopfactor", type=input.float, step=0.1, defval=3) bought = strategy.position_size[1] < strategy.position_size longcondition = barbuy if (longcondition) and (afterStartDate) and strategy.opentrades < 1 strategy.entry("Long", strategy.long) if (afterStartDate) and strategy.opentrades > 0 barsbought = barssince(bought) profit_level = strategy.position_avg_price + (atr*profitfactor) stop_level = strategy.position_avg_price - (atr*stopfactor) strategy.exit("Take Profit/ Stop Loss", "Long", stop=stop_level[barsbought], limit=profit_level[barsbought])