
Bei dieser Strategie handelt es sich um ein quantitatives Handelssystem, das auf den Indikatoren „Moving Average Crossover“ und „RSI“ basiert und hauptsächlich für den Handel auf dem Optionsmarkt verwendet wird. Die Strategie verwendet die Kreuzungssignale der schnellen und langsamen gleitenden Durchschnitte, kombiniert mit den überkauften und überverkauften RSI-Levels, um den Zeitpunkt der Transaktionen zu bestimmen, während gleichzeitig Take-Profit und Stop-Loss zur Kontrolle der Risiken festgelegt werden. Diese Strategie eignet sich für den Handel in einem 5-Minuten-Zeitrahmen.
Die Strategie verwendet zwei wichtige technische Indikatoren: Moving Average (MA) und Relative Strength Index (RSI). Speziell:
Diese Strategie erstellt durch die Kombination der gleitenden Durchschnittskreuzung und der RSI-Indikatoren ein relativ vollständiges Handelssystem. Die Vorteile der Strategie liegen in der mehrfachen Signalbestätigung und dem perfekten Risikomanagement, allerdings muss auch auf die Auswirkungen des Marktumfelds auf die Performance der Strategie geachtet werden. Durch kontinuierliche Optimierung und Verbesserung soll diese Strategie eine stabile Performance auf dem Optionsmarkt erzielen. Händlern wird empfohlen, vor der Echtzeitnutzung ausreichende Backtests und Parameteroptimierungen durchzuführen.
/*backtest
start: 2024-12-06 00:00:00
end: 2025-01-04 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("MA Crossover with RSI Debugging", overlay=true)
// Inputs
fastLength = input.int(7, title="Fast MA Length", minval=1)
slowLength = input.int(13, title="Slow MA Length", minval=1)
rsiLength = input.int(17, title="RSI Length", minval=1)
rsiOverbought = input.int(64, title="RSI Overbought Level", minval=50, maxval=100)
rsiOversold = input.int(43, title="RSI Oversold Level", minval=0, maxval=50)
takeProfitPerc = input.float(4, title="Take Profit (%)", minval=0.1)
stopLossPerc = input.float(0.5, title="Stop Loss (%)", minval=0.1)
// Moving Averages
fastMA = ta.sma(close, fastLength)
slowMA = ta.sma(close, slowLength)
// RSI
rsi = ta.rsi(close, rsiLength)
// Entry Conditions
longCondition = ta.crossover(fastMA, slowMA) and rsi < rsiOversold
shortCondition = ta.crossunder(fastMA, slowMA) and rsi > rsiOverbought
// Plot Debugging Shapes
plotshape(ta.crossover(fastMA, slowMA), color=color.green, style=shape.circle, location=location.belowbar, title="Fast MA Crossover")
plotshape(ta.crossunder(fastMA, slowMA), color=color.red, style=shape.circle, location=location.abovebar, title="Fast MA Crossunder")
plotshape(rsi < rsiOversold, color=color.blue, style=shape.triangleup, location=location.belowbar, title="RSI Oversold")
plotshape(rsi > rsiOverbought, color=color.orange, style=shape.triangledown, location=location.abovebar, title="RSI Overbought")
// Entry and Exit Execution
if (longCondition)
strategy.entry("Buy", strategy.long)
if (shortCondition)
strategy.entry("Sell", strategy.short)
takeProfitPrice = strategy.position_avg_price * (1 + takeProfitPerc / 100)
stopLossPrice = strategy.position_avg_price * (1 - stopLossPerc / 100)
if (strategy.position_size > 0)
strategy.exit("Exit Buy", from_entry="Buy", limit=takeProfitPrice, stop=stopLossPrice)
if (strategy.position_size < 0)
strategy.exit("Exit Sell", from_entry="Sell", limit=takeProfitPrice, stop=stopLossPrice)
// Plot Moving Averages
plot(fastMA, color=color.blue, title="Fast MA")
plot(slowMA, color=color.red, title="Slow MA")
// RSI Levels
hline(rsiOverbought, "RSI Overbought", color=color.red)
hline(rsiOversold, "RSI Oversold", color=color.green)