Autonome Buy-Swing-Scalper-Strategie basierend auf stochastischem RSI und EMA


Erstellungsdatum: 2023-10-31 11:34:47 zuletzt geändert: 2023-10-31 11:34:47
Kopie: 0 Klicks: 808
1
konzentrieren Sie sich auf
1617
Anhänger

Autonome Buy-Swing-Scalper-Strategie basierend auf stochastischem RSI und EMA

Überblick

Die Strategie zielt darauf ab, eine Scalper-Trading-Strategie zu implementieren, bei der Währungen auf Basis von Random-Index-Glattbewegungs-Durchschnitten (RSI) und Index-Bewegungs-Durchschnitten (EMA) automatisch gekauft und gehalten werden. Sie ist für die 5-Minuten-K-Linie geeignet und für BTC optimiert. Die Strategie zielt darauf ab, so viele Währungen wie möglich zu halten, wenn sie sich überschneiden oder nicht stark fallen.

Strategieprinzip

Die Strategie nutzt den RSI, um zu bestimmen, ob sich ein Überkauf in einer Überverkaufszone befindet, und kombiniert die K- und D-Werte eines zufälligen RSI-Indikators, um ein Kauf- und Verkaufssignal zu senden.

Wenn die K-Linie des zufälligen RSI unter 20 liegt, wird als Überverkauf angesehen und ein Kaufsignal erzeugt, wenn die K-Linie größer als die D-Linie ist. Anschließend wird nach drei Bedingungen entschieden, ob ein Verkauf erfolgt: 1) Ein EMA-Umkehrung nach einem Preisanstieg von mehr als 1%; 2) Wenn die K-Linie des zufälligen RSI unter der D-Linie liegt; 3) Wenn der Stop-Loss-Preis 98.5% des Einstiegspreises erreicht.

Außerdem wird ein kurzfristiger EMA, der nach einem Anstieg nach unten umgedreht wird, als Verkaufssignal angesehen.

Strategische Vorteile

  • Die Verwendung eines zufälligen RSI-Indikators zur Ermittlung des Kaufzeitpunktes ist zuverlässiger und kann Falschbrüche wirksam filtern.
  • In Kombination mit den EMA-Indikatoren kann man besser erkennen, wann sich der Trend ändert.
  • Der Einsatz von Stop-Loss kann die Verluste wirksam kontrollieren.
  • Wenn Sie so viele Währungen wie möglich besitzen, reduzieren Sie die Häufigkeit der Transaktionen und die Gebühren.

Strategisches Risiko

  • Die Wahrscheinlichkeit, dass der RSI falsche Signale sendet. Die RSI-Parameter können entsprechend angepasst werden, um sie zu optimieren.
  • Ein zu niedriger Stop-Loss-Preis kann zu einer Vergrößerung der Verluste führen. Der Stop-Loss-Wert kann entsprechend angepasst werden.
  • Eine falsche Einstellung der EMA-Indikatorparameter kann die Zeit für eine Trendänderung verpassen. Die Parameter für verschiedene EMA-Zyklen können getestet werden.

Optimierungsrichtung

  • Testen Sie verschiedene RSI- und Zufalls-RSI-Parameter-Sets, um die optimale Kombination von Parametern zu finden
  • Versuche verschiedene Stop-Loss-Grenzen, um Verluste zu verhindern und Gewinne zurückzuziehen
  • Testen Sie EMAs mit einer Kombination aus Lang- und Kurzzeitperioden, um die Parameter zu ermitteln, die am besten eine Trendwende bestimmen
  • Es kann in Erwägung gezogen werden, weitere Indikatoren einzubeziehen, um die Genauigkeit der Kauf- und Verkaufszeit zu verbessern.

Zusammenfassen

Die Strategie integriert die Vorzüge mehrerer Indikatoren, wie beispielsweise der ZufallsrSI und der EMA, und nutzt eine robustere Methode, um zu entscheiden, wann man kauft und verkauft. Durch die Optimierung der Parameter und das Risikomanagement kann die Ertragskraft und Stabilität der Strategie weiter verbessert werden. Insgesamt ist die Strategie logisch und lohnt sich, in der Praxis zu überprüfen und zu optimieren.

Strategiequellcode
/*backtest
start: 2023-09-30 00:00:00
end: 2023-10-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="Stochastic RSI W Auto Buy Scalper Scirpt III ", shorttitle="Stoch RSI_III", format=format.price, precision=2)
smoothK = input.int(3, "K", minval=1)
smoothD = input.int(3, "D", minval=1)
lengthRSI = input.int(14, "RSI Length", minval=1)
lengthStoch = input.int(14, "Stochastic Length", minval=1)
src = input(close, title="RSI Source")
rsi1 = ta.rsi(src, lengthRSI)
k = ta.sma(ta.stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = ta.sma(k, smoothD)
plot(k, "K", color=#2962FF)
plot(d, "D", color=#FF6D00)
h0 = hline(80, "Upper Band", color=#787B86)
hline(50, "Middle Band", color=color.new(#787B86, 50))
h1 = hline(20, "Lower Band", color=#787B86)

longStopLoss  = strategy.opentrades.entry_price(0)* (.985)

stochDropping = ta.falling(k,2)
shortSma = ta.sma(hlc3,12)
shorterSma = ta.sma(hlc3,3)
plot(shortSma[3])

shortSmaFlip = (ta.change(shortSma,3)>0) and ta.falling(hlc3,1)
shorterSmaFlip = (ta.change(shorterSma,2)>0) and ta.falling(hlc3,1)
messageSellText ='"type": "sell", "symbol": "BTCUSD", "marketPosition": "{{strategy.market_position}}"'

messageBuyText ='"type": "buy", "symbol": "BTCUSD", "marketPosition": {{strategy.market_position}}"'

fill(h0, h1, color=color.rgb(33, 150, 243, 90), title="Background")

strategy.entry("Tech", strategy.long, when=(strategy.position_size <= 0 and k<17 and k>d),alert_message=messageBuyText)
//original: strategy.close("TL", when=(strategy.position_size >= 0 and (k>90 and k<d)))

takeProfit = hlc3 > strategy.opentrades.entry_price(0)*1.01
//longStopLoss  = strategy.opentrades.entry_price(0)* (.995)

strategy.close("Tech", when=(strategy.position_size >= 0 and (k>90 and k<d and stochDropping)) or close<longStopLoss, comment="rsi or Stop sell",alert_message=messageSellText)
//strategy.close("Tech", when=(strategy.position_size >= 0 and close<longStopLoss), comment="stopLoss sell",alert_message=messageSellText)

strategy.close("Tech", when=(shortSmaFlip and k>20 and takeProfit),comment="Sma after profit",alert_message=messageSellText)