RSI-gleitender Durchschnitt, gleitender Stop-Loss und Take-Profit-Strategie


Erstellungsdatum: 2023-09-13 14:26:43 zuletzt geändert: 2023-09-13 14:26:43
Kopie: 0 Klicks: 671
1
konzentrieren Sie sich auf
1617
Anhänger

Diese Strategie kombiniert die RSI-Indikatoren mit den Moving Averages, um Trends zu beurteilen und Handelssignale zu erzeugen, und verwendet eine mobile Stop-Loss-Methode, um Gewinne zu sichern und Risiken zu kontrollieren. Sie ist eine typische Trend-Tracking-Handelsstrategie.

Die Strategie:

  1. Der RSI wird berechnet, um zu überkaufen und zu verkaufen. RSI über 50 ist ein Mehrkopfsignal.

  2. Berechnen Sie einen schnellen und langsamen Moving Average mit einem goldenen Kreuz in Form eines mehrköpfigen Signals.

  3. Der kontinuierliche Anstieg des RSI kann auch als ein Signal für mehr Handel dienen.

  4. Nach dem Eintritt setzen Sie eine mobile Stop-Line und eine Stop-Stop-Line.

  5. Die Stop-Loss-Linie ist unterhalb des Kurses und die Stop-Stop-Linie ist oberhalb des Kurses.

  6. Der Preis hat die Stop-Loss-Stop-Line erreicht und ist platziert.

Die Vorteile der Strategie:

  1. Der RSI-Indikator beurteilt überkauft und überverkauft und vermeidet die Verfolgung von Höhen und Tiefen.

  2. Bewegliche Mittel erkennen die Richtung der Trends. Kombinationen erhöhen die Richtigkeit der Beurteilung.

  3. Die Stop-Loss-Methode ist mobil und kann die Stop-Loss-Position anhand von Preisänderungen in Echtzeit anpassen.

Die Risiken dieser Strategie:

  1. Der RSI und die Durchschnittslinie sind anfällig für Fehlsignale bei Schwankungen.

  2. Die mobile Stop-Loss-Sperre muss vorsichtig eingestellt werden, zu groß oder zu klein ist problematisch.

  3. Es gibt keine Einschränkung für die Höhe der Einzelschäden, es besteht die Gefahr, dass es zu großen Verlusten kommt.

Zusammenfassend lässt sich sagen, dass die Strategie die Vorzüge des RSI und des Durchschnittsindikators zusammenbringt und das Risiko mit einem mobilen Stop-Loss-Stopp-Verfahren verwaltet. Im Hinblick auf die Optimierung der Parameter und die Risikokontrolle kann eine Verbesserung erzielt werden.

Strategiequellcode
/*backtest
start: 2022-09-06 00:00:00
end: 2023-09-12 00:00:00
period: 4d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("RSI and MA Strategy with Trailing Stop Loss and Take Profit",
         overlay=true,
         initial_capital=1000,
         process_orders_on_close=true,
         default_qty_type=strategy.percent_of_equity,
         default_qty_value=100,
         commission_type=strategy.commission.percent,
         commission_value=0.1)

showDate = input(defval=true, title='Show Date Range')
timePeriod = time >= timestamp(syminfo.timezone, 2022, 1, 1, 0, 0)
notInTrade = strategy.position_size <= 0

//==================================Buy Conditions============================================

//RSI
length = input(14)
rsi = ta.rsi(close, length)
buyCondition1 = rsi > 50

//MA
SMA9 = ta.sma(close, 9)
SMA50 = ta.sma(close, 50)
SMA100 = ta.sma(close, 100)
plot(SMA9, color = color.green)
plot(SMA50, color = color.orange)
plot(SMA100, color = color.blue)
buyCondition2 = SMA9 > SMA50//ta.crossover(SMA9, SMA100)

//RSI Increase
increase = 5
buyCondition3 = (rsi > rsi[1] + increase)


if (buyCondition1 and buyCondition2 and buyCondition3 and timePeriod) //and buyCondition
    strategy.entry("Long", strategy.long)

//==================================Sell Conditions============================================

//Trailing Stop Loss and Take Profit
longTrailPerc = input.float(title='Trail Long Loss (%)', minval=0.0, step=0.1, defval=2) * 0.01
shortTrailPerc = input.float(title='Trail Short Loss (%)', minval=0.0, step=0.1, defval=1) * 0.01

longStopPrice = 0.0
shortStopPrice = 0.0

longStopPrice := if strategy.position_size > 0
    stopValue = close * (1 - longTrailPerc)
    math.max(stopValue, longStopPrice[1])
else
    0

shortStopPrice := if strategy.position_size < 0
    stopValue = close * (1 + shortTrailPerc)
    math.min(stopValue, shortStopPrice[1])
else
    999999


strategy.exit(id="Exit", stop = longStopPrice, limit = shortStopPrice)