
Die Strategie basiert auf einem relativ starken Index (RSI) und erzeugt Handelssignale, wenn der RSI-Indikator über den Überkauf- und Überverkauf-Level hinausgeht. Die Strategie verwendet ein einzigartiges dynamisches Depot, um die Handelsleistung zu optimieren, indem die Depotbedingungen auf verschiedenen RSI-Levels festgelegt werden. Die Strategie verwendet ein vollständiges Multi-Stock-Trading-System, um Handelschancen in den Marktbewegungen zu erfassen.
Die Kernlogik der Strategie umfasst die folgenden Schlüsselkomponenten:
Es handelt sich um eine dynamisch konzipierte Strategie zur Erfassung von Marktchancen durch RSI-Indikatoren und dynamische Pivot-Mechanismen. Die Hauptmerkmale der Strategie sind ein hoher Grad an Systematik, eine ausgezeichnete Risikokontrolle und eine starke Anpassungsfähigkeit. Obwohl einige inhärente Risiken bestehen, besteht viel Raum für Verbesserungen durch Parameteroptimierung und Funktionserweiterung.
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("RSI Strategy with Close Levels", shorttitle="RSI Strat", overlay=true)
// RSI Input settings
rsiLength = input.int(14, title="RSI Length")
rsiOverbought = input.int(70, title="RSI Overbought Level")
rsiOversold = input.int(30, title="RSI Oversold Level")
rsiCloseLongLevel = input.int(60, title="RSI Level to Close Long Position")
rsiCloseShortLevel = input.int(40, title="RSI Level to Close Short Position")
// Calculate RSI
rsi = ta.rsi(close, rsiLength)
// Generate buy and sell signals based on RSI levels
buySignal = ta.crossover(rsi, rsiOversold)
sellSignal = ta.crossunder(rsi, rsiOverbought)
// Check if there are open positions
var bool inPosition = na
if (strategy.opentrades > 0)
inPosition := true
else
inPosition := false
// Open long position on buy signal if not already in a position
if (buySignal and not inPosition)
strategy.entry("Buy", strategy.long)
inPosition := true
// Close long position on sell signal or when RSI reaches the close long level
if (inPosition and strategy.position_size > 0 and (sellSignal or rsi >= rsiCloseLongLevel))
strategy.close("Buy")
inPosition := false
// Open short position on sell signal if not already in a position
if (sellSignal and not inPosition)
strategy.entry("Sell", strategy.short)
inPosition := true
// Close short position on buy signal or when RSI reaches the close short level
if (inPosition and strategy.position_size < 0 and (buySignal or rsi <= rsiCloseShortLevel))
strategy.close("Sell")
inPosition := false
// Plot buy and sell signals
//plotshape(series=buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
//plotshape(series=sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Plot RSI for visualization
hline(rsiOverbought, "RSI Overbought", color=color.red)
hline(rsiOversold, "RSI Oversold", color=color.green)
hline(rsiCloseLongLevel, "RSI Close Long Level", color=color.blue)
hline(rsiCloseShortLevel, "RSI Close Short Level", color=color.purple)
plot(rsi, title="RSI", color=color.orange)