
Die Strategie ist ein Handelssystem, das auf dem RSI2-Indikator basiert und mit einem Moving Average kombiniert wird. Es fängt potenzielle Überschneidungsmöglichkeiten vor allem durch die Überwachung des RSI-Indikators in den Überverkaufszonen auf, während der Moving Average als Trendfilter verwendet wird, um die Handlungsgenauigkeit zu verbessern. Die Strategie verwendet eine feste Ausstiegsmechanik, die automatisch nach dem Erreichen der vorgesehenen Haltungsphase platziert.
Die Kernlogik der Strategie umfasst die folgenden Schlüsselelemente:
Es handelt sich um eine strukturierte, logisch klare Handelsstrategie, die Marktchancen durch RSI-Überverkaufs-Umkehrsignale in Kombination mit Gleichgewichtstrendfilterung erfasst. Der Vorteil der Strategie besteht darin, dass die Parameter flexibel und die Windkontrolle vernünftig sind, jedoch muss auf False-Breakout-Risiken und Parameter-Sensitivität geachtet werden. Durch die empfohlene Optimierungsrichtung besteht noch viel Raum für Verbesserungen, die ihre Anpassungsfähigkeit in verschiedenen Marktumgebungen weiter verbessern können.
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("RSI 2 Strategy with Fixed Lines and Moving Average Filter", overlay=true)
// Input parameters
rsiPeriod = input.int(2, title="RSI Period", minval=1)
rsiBuyLevel = input.float(25, title="RSI Buy Level", minval=0, maxval=100)
maxBarsToHold = input.int(5, title="Max Candles to Hold", minval=1)
maPeriod = input.int(50, title="Moving Average Period", minval=1) // Moving Average Period
useMAFilter = input.bool(true, title="Use Moving Average Filter") // Enable/Disable MA Filter
// RSI and Moving Average calculation
rsi = ta.rsi(close, rsiPeriod)
ma = ta.sma(close, maPeriod)
// Moving Average filter conditions
maFilterCondition = useMAFilter ? close > ma : true // Condition: price above MA
// Buy conditions
rsiIncreasing = rsi > rsi[1] // Current RSI greater than previous RSI
buyCondition = rsi[1] < rsiBuyLevel and rsiIncreasing and strategy.position_size == 0 and maFilterCondition
// Variables for management
var int barsHeld = na // Counter for candles after purchase
var float buyPrice = na // Purchase price
// Buy action
if buyCondition and na(barsHeld)
strategy.entry("Buy", strategy.long)
barsHeld := 0
buyPrice := close
// Increment the candle counter after purchase
if not na(barsHeld)
barsHeld += 1
// Sell condition after the configured number of candles
sellCondition = barsHeld >= maxBarsToHold
if sellCondition
strategy.close("Buy")
// Reset variables after selling
barsHeld := na
buyPrice := na