
Die SPY RSI Stochastics Cross Value Reversal Trend Strategy ist eine quantitative Handelsstrategie, die die Kreuzung von schnellen und langsamen Linien des RSI-Indikators verwendet, um eine Preisumkehr zu beurteilen. Die Strategie kombiniert eine langsame Linie, eine schnelle Linie und eine MA-Linie, um unter bestimmten Bedingungen ein Kauf- und Verkaufssignal zu erzeugen, um eine größere Preisumkehrmöglichkeit zu erfassen.
Die Kernlogik der Strategie basiert auf der Kreuzung der schnellen Linien des RSI-Indikators. Der RSI kehrt normalerweise in überkauften und überverkauften Gebieten um, so dass die Zeit, in der sich der Preis umkehren kann, im Voraus ermittelt werden kann, indem man die Gold- und Dead-Forks der schnellen RSI-Linien gegen die schnellen RSI-Linien beurteilt. Insbesondere hängt die Strategie hauptsächlich von folgenden Indikatoren und Bedingungen ab:
Ein Kaufsignal wird erzeugt, wenn der schnelle RSI-Linie der langsame RSI-Linie ((Goldfork) überschritten wird und die schnelle Linie die MA-Linie überschritten hat; ein Verkaufsignal wird erzeugt, wenn der schnelle RSI den langsamen RSI ((Deadfork) unterschritten wird und die schnelle Linie die MA-Linie unterschritten hat.
Die Strategie hat außerdem folgende Logik, um einige Noise-Transactions zu filtern:
Es gibt zwei Bedingungen für den Ausstieg:
Der größte Vorteil der SPY RSI Stochastics Crossover-Trend-Umkehrstrategie ist die Möglichkeit, Trends zu erfassen, bevor eine deutliche Umkehrung der Preise eintritt. Durch die schnelle und langsame Kreuzung der RSI-Linie kann ein Handelssignal für eine gewisse Zeit im Voraus gesendet werden, um Eintrittschancen zu schaffen.
Insgesamt ist die Strategie in Kombination mit Trend-Tracking und Wertumkehr-Ermittlung, die den Zeitpunkt der Preisumkehr bis zu einem gewissen Grad erfassen kann, von großer praktischer Bedeutung.
Obwohl die SPY RSI Stochastics Crossover Trend-Umkehrstrategie einige Vorteile hat, gibt es folgende Hauptrisiken:
Diese Strategie kann in Bezug auf die oben genannten Risiken optimiert und verbessert werden durch:
Die SPY RSI Stochastics-Kreuzwert-Umkehr-Strategie kann vor allem in folgenden Bereichen optimiert werden:
Diese Optimierungen können die Strategieparameter intelligenter und die Signale zuverlässiger machen, aber auch die Strategieregeln an Marktveränderungen anpassen, was die stabile Profitabilität der Strategie erheblich verbessert.
Die SPY RSI Stochastics Cross-Value-Umkehr-Trend-Strategie entwickelt eine relativ einfache und klare Quantifizierungs-Trading-Strategie, indem sie die Kreuzung der RSI-Schnell-Low-Linie beurteilt. Sie kombiniert die Eigenschaften von Trendverfolgung und Umkehrhandel, um den Zeitpunkt der Preisumkehr zu einem gewissen Grad zu erfassen. Die Strategie weist jedoch auch einige inhärente Mängel auf, die durch Parameter, Merkmale und Modelloptimierungen erforderlich sind, um Risiken zu kontrollieren und die Signalqualität zu verbessern.
/*backtest
start: 2024-01-23 00:00:00
end: 2024-02-22 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("SPY Auto RSI Stochastics", pyramiding = 3)
// Input parameters
slowRSILength = input(64, title="SLOW RSI Length")
fastRSILength = input(9, title="FAST RSI Length")
smaRSILength = input(3, title="RSI SMA Length")
RSIUpperThreshold = input(83, title="RSI Upper")
RSILowerThreshold = input(25, title="RSI Lower")
RSIUpperDeadzone = input(61, title='RSI Upper Deadzone')
RSILowerDeadzone = input(39, title='RSI Lower Deadzone')
blockedDays = (dayofweek(time) == 1 or dayofweek(time) == 7)
sessionMarket = input("0900-0900", title="Session Start")
allowedTimes() => time(timeframe = timeframe.period, session = sessionMarket, timezone = "GMT+1")
isvalidTradeTime =true
// RSI and ATR
slowRSI = ta.rsi(close, slowRSILength)
fastRSI = ta.rsi(close, fastRSILength)
smaRSI = ta.sma(fastRSI, smaRSILength)
rsi = fastRSI
// Entry condition
RSIUptrend() => ta.crossover(fastRSI, slowRSI) and ta.crossover(fastRSI, smaRSI)
RSIDowntrend() => ta.crossunder(fastRSI, slowRSI) and ta.crossunder(fastRSI, smaRSI)
isRSIDeadzone() =>
rsi < RSIUpperDeadzone and rsi > RSILowerDeadzone
isBullishEngulfing() =>
close > high[1]
isBearishEngulfing() =>
close < low[1]
// Declare variables
var float initialSLLong = na
var float initialTPLong = na
var float initialSLShort = na
var float initialTPShort = na
//var bool inATrade = false
entryConditionLong = RSIUptrend() and not isRSIDeadzone() and isvalidTradeTime
entryConditionShort = RSIDowntrend() and not isRSIDeadzone() and isvalidTradeTime
exitConditionLong = entryConditionShort or fastRSI > RSIUpperThreshold
exitConditionShort = entryConditionLong or fastRSI < RSILowerThreshold
if (entryConditionLong)
strategy.entry(id = "Long", direction = strategy.long, alert_message = 'LONG! beep boop, all aboard the long train')
if (entryConditionShort)
strategy.entry(id = "Short", direction = strategy.short, alert_message = 'Short! beep boop, all aboard the short train')
if (exitConditionLong)
strategy.exit("Long", from_entry="Long", limit=close, alert_message = 'Stop Long, halt halt, take the profits and runnn')
if (exitConditionShort)
strategy.exit("Short", from_entry="Short", limit=close, alert_message = 'Stop Short, halt halt, take the profits and runnn')
//plot(smaRSI, "RSI MA", color=color.red)
plot(slowRSI, "Slow RSI", color=color.green)
//plot(fastRSI, "Fast RSI", color=color.white)
plot(smaRSI, "SMA RSI", color=color.white)