
Die Strategie ist ein quantitatives Handelssystem, das die Mean Return-Prinzipien mit den technischen Indikatoren MACD und ATR kombiniert. Die Strategie identifiziert Preisverzerrungen durch Bollinger Bands, nutzt die MACD-Bestätigungsdynamik und führt dynamische Risikomanagement in Verbindung mit ATR durch. Die Kernidee der Strategie ist es, bei bedeutenden Preisverzerrungen die Chancen für eine Preisrückkehr durch die Überprüfung mehrerer technischer Indikatoren zu erfassen.
Die Strategie arbeitet mit drei technischen Indikatoren zusammen: erstens, um zu beurteilen, ob die Preise deutlich abweichen, indem sie die Bollinger Bands auf und abgleiten; zweitens, um die Preisbewegung mit den MACD-Indikatoren zu überprüfen, um sicherzustellen, dass die Handelsrichtung mit dem Markttrend übereinstimmt; schließlich, um die Stop-Loss- und Gewinnposition der ATR-Indikatoren einzuführen. Konkret erzeugt das System mehrere Signale, wenn die Preise die Bollinger Bands auf und abbrechen und die MACD-Linie über die Signallinie liegt; und wenn die Preise die Bollinger Bands auf und die MACD-Linie über die Signallinie liegen, erzeugt das System ein Leerstandssignal.
Es ist eine Strategie, die klassische technische Analyse mit modernen quantitativen Handelsmethoden kombiniert. Durch die kombinierte Verwendung von mehreren Indikatoren werden sowohl die Kernvorteile der Mittelwertrücklaufstrategie bewahrt als auch die Einschränkungen eines einzelnen Indikators überwunden. Die Strategie ist stark skalierbar und kann durch die Optimierung von Parametern und die Hinzufügung von Funktionsmodulen ihre Leistung in verschiedenen Marktumgebungen kontinuierlich verbessern.
/*backtest
start: 2024-11-12 00:00:00
end: 2024-12-11 08:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Enhanced Mean Reversion with MACD and ATR", overlay=true)
// Nastavenia Bollinger Bands
bbLength = input(20, title="Bollinger Bands Length")
bbMult = input(2, title="Bollinger Bands Multiplier")
basis = ta.sma(close, bbLength)
dev = ta.stdev(close, bbLength)
upperBand = basis + bbMult * dev
lowerBand = basis - bbMult * dev
// MACD indikátor
macdShort = input(12, title="MACD Short Length")
macdLong = input(26, title="MACD Long Length")
macdSignal = input(9, title="MACD Signal Length")
[macdLine, signalLine, _] = ta.macd(close, macdShort, macdLong, macdSignal)
// ATR pre dynamický Stop Loss a Take Profit
atrLength = input(14, title="ATR Length")
atrMultiplier = input(1.5, title="ATR Multiplier")
atrValue = ta.atr(atrLength)
// Vstupné podmienky pre long pozície
longCondition = ta.crossover(close, lowerBand) and macdLine > signalLine
if (longCondition)
strategy.entry("Long", strategy.long)
// Vstupné podmienky pre short pozície
shortCondition = ta.crossunder(close, upperBand) and macdLine < signalLine
if (shortCondition)
strategy.entry("Short", strategy.short)
// Dynamický Stop Loss a Take Profit na základe ATR
longSL = strategy.position_avg_price - atrValue * atrMultiplier
longTP = strategy.position_avg_price + atrValue * atrMultiplier * 2
shortSL = strategy.position_avg_price + atrValue * atrMultiplier
shortTP = strategy.position_avg_price - atrValue * atrMultiplier * 2
// Pridanie stop loss a take profit
if (strategy.position_size > 0)
strategy.exit("Take Profit/Stop Loss", "Long", stop=longSL, limit=longTP)
if (strategy.position_size < 0)
strategy.exit("Take Profit/Stop Loss", "Short", stop=shortSL, limit=shortTP)
// Vizualizácia Bollinger Bands a MACD
plot(upperBand, color=color.red, title="Upper Bollinger Band")
plot(lowerBand, color=color.green, title="Lower Bollinger Band")
plot(basis, color=color.blue, title="Bollinger Basis")
hline(0, "MACD Zero Line", color=color.gray)
plot(macdLine - signalLine, color=color.blue, title="MACD Histogram")
plot(macdLine, color=color.red, title="MACD Line")
plot(signalLine, color=color.green, title="Signal Line")
// Generovanie alertov
alertcondition(longCondition, title="Long Alert", message="Long Entry Signal")
alertcondition(shortCondition, title="Short Alert", message="Short Entry Signal")