RSI-Strategie für den Trailing-Stop

Schriftsteller:ChaoZhang, Datum: 2023-09-13 14:26:43
Tags:

Diese Strategie kombiniert RSI und gleitende Durchschnitte für Trendverzerrung und fügt Trailing Stops für das Risikomanagement hinzu.

Strategie Logik:

  1. Berechnen Sie den RSI, um überkaufte/überverkaufte Niveaus zu beurteilen.

  2. Berechnen Sie schnelle und langsame gleitende Durchschnitte. Das goldene Kreuz signalisiert einen Bullentrend.

  3. Ein konsequenter Anstieg des RSI signalisiert auch einen langen Einstieg.

  4. Nach dem Eintritt setzen Sie den Stop Loss und nehmen Sie die Gewinnlinien.

  5. Stop-Loss-Trail unter dem Preis, Profit-Trail oben.

  6. Aussteigen, wenn der Preis Stopp oder Gewinn erreicht.

Vorteile:

  1. RSI vermeidet es, nach oben und unten zu jagen.

  2. Bewegliche Durchschnitte bestimmen die Trendrichtung.

  3. Die Trailing Stops/Gewinne werden dynamisch an den Preis angepasst.

Risiken:

  1. RSI und MAs sind anfällig für falsche Signale in verschiedenen Märkten.

  2. Die Verzögerungsbreite erfordert eine umsichtige Kalibrierung, zu breit oder zu eng ist problematisch.

  3. Unfähig, die Verlustgröße zu begrenzen, riskiert große Verlustgeschäfte.

Zusammenfassend lässt sich sagen, dass diese Strategie RSI und MAs kombiniert und dann Trailing Stops für das Risikomanagement verwendet.


/*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)

Mehr