
Die Strategie ist ein quantitatives Trading-System, das auf der Theorie der Mean Return-Theorie basiert, kombiniert mit Bollinger Bands, RSI-Indikatoren und ATR-Dynamischen Stop-Loss-Mechanismen. Die Strategie handelt durch die Identifizierung von Extremen, bei denen der Preis von der Mittelwert abweicht.
Die Strategie verwendet die 20-Zyklus-Bulling-Band als Haupttrend-Indikator, wobei die Standard-Differenz-Multiplikatoren auf 2,0 festgelegt sind, um die obere und untere Grenze der Preisfluktuation zu bestimmen. Gleichzeitig wird der 14-Zyklus-RSI als Hilfsindikator eingeführt, wobei der RSI unter 30 als Überverkauf und über 70 als Überkauf angesehen wird. Wenn der Preis den Bulling-Band überschreitet und der RSI unter 30 liegt, zeigt der Markt einen möglichen Überverkauf an, und das System gibt mehr Signale aus.
Die Strategie baut durch die Kombination von Brin-Band und RSI ein vollständiges Mean Return Trading System auf. Die Einführung von ATR-Dynamischen Stop-Losses kontrolliert das Risiko wirksam, so dass die Strategie gute Risiko-Gewinn-Eigenschaften aufweist. Obwohl es einen gewissen Optimierungsraum gibt, ist die Gesamtkonzeption klar und praktisch.
/*backtest
start: 2024-11-19 00:00:00
end: 2024-11-26 00:00:00
period: 15m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("SOL/USDT Mean Reversion Strategy", overlay=true)
// Input parameters
length = input(20, "Bollinger Band Length")
std_dev = input(2.0, "Standard Deviation")
rsi_length = input(14, "RSI Length")
rsi_oversold = input(30, "RSI Oversold")
rsi_overbought = input(70, "RSI Overbought")
// Calculate indicators
[middle, upper, lower] = ta.bb(close, length, std_dev)
rsi = ta.rsi(close, rsi_length)
// Entry conditions
long_entry = close < lower and rsi < rsi_oversold
short_entry = close > upper and rsi > rsi_overbought
// Exit conditions
long_exit = close > middle or rsi > rsi_overbought
short_exit = close < middle or rsi < rsi_oversold
// Strategy execution
if (long_entry)
strategy.entry("Long", strategy.long)
if (short_entry)
strategy.entry("Short", strategy.short)
if (long_exit)
strategy.close("Long")
if (short_exit)
strategy.close("Short")
// Stop loss and take profit
atr = ta.atr(14)
strategy.exit("Long SL/TP", "Long", stop=strategy.position_avg_price - 2*atr, limit=strategy.position_avg_price + 3*atr)
strategy.exit("Short SL/TP", "Short", stop=strategy.position_avg_price + 2*atr, limit=strategy.position_avg_price - 3*atr)
// Plot indicators
plot(middle, color=color.yellow, title="BB Middle")
plot(upper, color=color.red, title="BB Upper")
plot(lower, color=color.green, title="BB Lower")
// Plot entry and exit points
plotshape(long_entry, title="Long Entry", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(short_entry, title="Short Entry", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
plotshape(long_exit, title="Long Exit", location=location.abovebar, color=color.orange, style=shape.circle, size=size.small)
plotshape(short_exit, title="Short Exit", location=location.belowbar, color=color.orange, style=shape.circle, size=size.small)