Diese Strategie kombiniert die Chandelier Exit-Regel, den Zero-Lag Smoothed Moving Average (ZLSMA) und die Relative Volume (RVOL) Spike-Detektion, um ein vollständiges Handelssystem zu bilden. Die Chandelier Exit-Regel passt die Stop-Loss-Position dynamisch anhand der Average True Range (ATR) an, so dass sie sich besser an Marktveränderungen anpassen kann. Die ZLSMA erfasst Preistrends genau und bietet Richtungsleitungen für den Handel. Die RVOL-Spike-Detektion hilft der Strategie, Niedrigvolatilitätskonsolidierung Märkte zu vermeiden und die Handelsqualität zu verbessern.
Die ZLSMA-erweiterte Chandelier Exit Strategie mit Volume Spike Detection ist eine Trend-following Strategie, die das Handelsrisiko kontrolliert und gleichzeitig Trendchancen durch dynamische Stop-Loss, Trendbeurteilung und Volume Spike Detection erfasst. Die Strategie Logik ist klar und leicht zu verstehen und umzusetzen, muss aber immer noch basierend auf spezifischen Marktmerkmalen und Handelsinstrumenten optimiert und verbessert werden, wenn sie in der Praxis angewendet wird. Durch die Einführung von mehr Signalbestätigungsindikatoren, die Optimierung der Ausgangskonditionen, die angemessene Einstellung von Parametern und die Implementierung eines strengen Positionsmanagements und der Risikokontrolle hat diese Strategie das Potenzial, zu einem robusten und effizienten Handelswerkzeug zu werden.
/*backtest start: 2024-05-01 00:00:00 end: 2024-05-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Chandelier Exit Strategy with ZLSMA and Volume Spike Detection", shorttitle="CES with ZLSMA and Volume", overlay=true, process_orders_on_close=true, calc_on_every_tick=false) // Chandelier Exit Inputs lengthAtr = input.int(title='ATR Period', defval=1) mult = input.float(title='ATR Multiplier', step=0.1, defval=2.0) useClose = input.bool(title='Use Close Price for Extremums', defval=true) // Calculate ATR atr = mult * ta.atr(lengthAtr) // Calculate Long and Short Stops longStop = (useClose ? ta.highest(close, lengthAtr) : ta.highest(high, lengthAtr)) - atr shortStop = (useClose ? ta.lowest(close, lengthAtr) : ta.lowest(low, lengthAtr)) + atr // Update stops based on previous values longStop := na(longStop[1]) ? longStop : close[1] > longStop[1] ? math.max(longStop, longStop[1]) : longStop shortStop := na(shortStop[1]) ? shortStop : close[1] < shortStop[1] ? math.min(shortStop, shortStop[1]) : shortStop // Determine Direction var int dir = na dir := na(dir[1]) ? (close > shortStop ? 1 : close < longStop ? -1 : na) : close > shortStop[1] ? 1 : close < longStop[1] ? -1 : dir[1] // ZLSMA Inputs lengthZLSMA = input.int(title="ZLSMA Length", defval=50) offsetZLSMA = input.int(title="ZLSMA Offset", defval=0) srcZLSMA = input.source(close, title="ZLSMA Source") // ZLSMA Calculation lsma = ta.linreg(srcZLSMA, lengthZLSMA, offsetZLSMA) lsma2 = ta.linreg(lsma, lengthZLSMA, offsetZLSMA) eq = lsma - lsma2 zlsma = lsma + eq // Plot ZLSMA plot(zlsma, title="ZLSMA", color=color.purple, linewidth=3) // Swing High/Low Calculation swingHigh = ta.highest(high, 5) swingLow = ta.lowest(low, 5) // Relative Volume (RVOL) Calculation rvolLength = input.int(20, title="RVOL Length") rvolThreshold = input.float(1.5, title="RVOL Threshold") avgVolume = ta.sma(volume, rvolLength) rvol = volume / avgVolume // Define buy and sell signals based on ZLSMA and Volume Spike buySignal = (dir == 1 and dir[1] == -1 and close > zlsma and rvol > rvolThreshold) sellSignal = (dir == -1 and dir[1] == 1 and close < zlsma and rvol > rvolThreshold) // Define exit conditions based on ZLSMA exitLongSignal = (close < zlsma) exitShortSignal = (close > zlsma) // Strategy Entries and Exits if (buySignal) strategy.entry("Long", strategy.long, stop=swingLow) if (sellSignal) strategy.entry("Short", strategy.short, stop=swingHigh) if (exitLongSignal) strategy.close("Long") if (exitShortSignal) strategy.close("Short") // Alerts alertcondition(buySignal, title='Alert: CE Buy', message='Chandelier Exit Buy!') alertcondition(sellSignal, title='Alert: CE Sell', message='Chandelier Exit Sell!')