Stochastische RSI-Handelstrategie
Diese Strategie basiert auf Crossover-Signalen des Stochastic RSI-Indikators.
Die spezifischen Eingangsregeln sind:
Eingabe von Long, wenn der Stochastische RSI über 30 liegt
Eintritt kurz, wenn der Stochastische RSI unter 70 fällt
Zusätzliche Eingangsfilter:
Longs erfordern eine 9-Perioden-SMA über einer 21-Perioden-SMA
Der Wert der Vermögenswerte, die für die Berechnung der Vermögenswerte verwendet werden.
Langes nur unter VWAP, Shorts nur über VWAP
Die Strategie verwendet Stop Loss und Take Profit für das Risikomanagement:
Stop-Loss-Satz bei 20 Ticks für Longs und Shorts
Gewinnspanne bei 25 Ticks für Longs und Shorts
Der Hauptvorteil besteht darin, den stochastischen RSI zu verwenden, um überkaufte/überverkaufte Regionen in Kombination mit SMA- und VWAP-Filtern zu identifizieren, um falsche Signale zu reduzieren.
/*backtest start: 2023-09-03 00:00:00 end: 2023-09-10 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © thedoggwalker //@version=4 strategy("Stochastic RSI Strategy", overlay=true) // Stochastic RSI length = input(14, title="Length") src = input(close, title="Source") smoothK = input(3, title="K") smoothD = input(3, title="D") rsiValue = rsi(src, length) highestRSI = highest(rsiValue, length) lowestRSI = lowest(rsiValue, length) k = (rsiValue - lowestRSI) / (highestRSI - lowestRSI) * 100 d = sma(k, smoothD) // Moving averages maShort = sma(close, 9) maLong = sma(close, 21) // Spread between moving averages spread = maShort - maLong // VWAP vwapValue = vwap(hlc3) // Entry conditions longCondition = crossover(k, 30) and spread > 0 and close < vwapValue shortCondition = crossunder(k, 70) and spread < 0 and close > vwapValue // Entry orders if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) // Exit orders // longStopLoss = close - 20 * syminfo.mintick // longTakeProfit = close + 25 * syminfo.mintick // strategy.exit("Exit Long", "Long", stop=longStopLoss, limit=longTakeProfit) // shortStopLoss = close + 20 * syminfo.mintick // shortTakeProfit = close - 25 * syminfo.mintick // strategy.exit("Exit Short", "Short", stop=shortStopLoss, limit=shortTakeProfit)