Diese Strategie ist ein quantitatives Handelssystem, das die Prinzipien der mittleren Reversion mit den technischen Indikatoren MACD und ATR kombiniert. Es verwendet Bollinger-Bänder zur Identifizierung von Kursdifferenzen, MACD für die Momentumbestätigung und ATR für das dynamische Risikomanagement. Das Kernkonzept besteht darin, mittlere Reversionsmöglichkeiten zu erfassen, wenn die Preise eine signifikante Abweichung zeigen, die durch mehrere technische Indikatoren validiert wird.
Die Strategie setzt drei technische Indikatoren ein, die zusammenarbeiten: Erstens bestimmen Bollinger-Bänder signifikante Preisentfernungen; zweitens validiert der MACD die Kursdynamik, um sicherzustellen, dass die Handelsrichtung mit den Markttrends übereinstimmt; schließlich setzt der ATR dynamische Stop-Loss- und Take-Profit-Levels. Konkret werden Long-Signale erzeugt, wenn der Preis unterhalb des unteren Bollinger-Bands mit der MACD-Linie über seiner Signallinie bricht, während Kurzsignale auftreten, wenn der Preis über dem oberen Bollinger-Band mit der MACD-Linie unter seiner Signallinie bricht. ATR passt die Stop-Loss- und Take-Profit-Level dynamisch an, basierend auf der Marktvolatilität.
Diese Strategie kombiniert klassische technische Analyse mit modernen quantitativen Handelsmethoden. Durch den koordinierten Einsatz mehrerer Indikatoren erhalten sie die Kernvorteile der mittleren Reversion bei, während sie die Einschränkungen einzelner Indikatoren überwindet. Die Strategie ist sehr erweiterbar, kann durch Parameteroptimierung und zusätzliche funktionelle Module kontinuierlich verbessert werden. Inzwischen gewährleistet ihr umfassender Risikokontrollmechanismus Stabilität.
/*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")