この戦略は,チェンデリア出口規則,ゼロ・ラグスムーズ・ムービング・平均値 (ZLSMA),および相対ボリューム (RVOL) スパイク検出を組み合わせて,完全な取引システムを形成する.チェンデリア出口規則は,平均真の範囲 (ATR) に基づいてストップ・ロスのポジションを動的に調整し,市場の変化により適应できるようにする.ZLSMAは価格動向を正確に把握し,取引の方向性指針を提供します.RVOL スパイク検出は,戦略が低波動性の市場統合を回避し,取引品質を改善するのに役立ちます.
ZLSMA強化チェンデリア出口戦略は,動的ストップ損失,トレンド判断,およびボリュームスパイク検出を通じてトレンド機会を把握しながら取引リスクを制御するトレンドフォロー戦略である.戦略論理は明確で理解し,実装しやすいが,実際には適用される場合,特定の市場特性および取引機器に基づいて最適化および改善する必要がある.より多くの信号確認指標を導入し,出口条件を最適化し,合理的にパラメータを設定し,厳格なポジション管理とリスク管理を実装することにより,この戦略は堅牢で効率的な取引ツールになる可能性がある.
/*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!')