Strategi ini menggunakan indikator Chandelier Exit untuk menentukan arah dan momentum harga dan menghasilkan sinyal beli dan jual.
Strategi ini didasarkan pada indikator Chandelier Exit yang menetapkan garis stop-loss berdasarkan tertinggi tertinggi, terendah terendah dan Rentang Benar Rata-rata. Secara khusus, strategi ini menghitung ATR 22 hari dan mengalikannya dengan koefisien (default 3) untuk memperoleh nilai untuk garis stop panjang dan pendek. Strategi ini menghasilkan sinyal jual ketika harga melanggar di bawah stop panjang ketika panjang, dan sinyal beli ketika harga melanggar di atas stop pendek ketika pendek.
Strategi ini hanya melakukan operasi beli. Ini memicu entri panjang ketika harga pecah di atas garis stop panjang sebelumnya, dan menciptakan sinyal keluar ketika harga jatuh di bawah garis stop pendek, menutup posisi panjang.
Pengurangan Risiko:
Strategi ini mengidentifikasi peluang pembalikan menggunakan garis stop dinamis dari indikator Chandelier Exit. Strategi ini membeli pada pemutusan ke atas dari garis stop panjang dan menjual ketika harga jatuh di bawah garis stop pendek, menerapkan strategi satu sisi sederhana yang menghindari pembalikan ke atas / ke bawah. Strategi ini secara efektif mengendalikan risiko tetapi tidak memiliki ketentuan stop loss dan take profit.
/*backtest start: 2023-12-28 00:00:00 end: 2024-01-04 00:00:00 period: 10m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Chandelier Exit Strategy", overlay=true) length = input(title='ATR Period', defval=22) mult = input.float(title='ATR Multiplier', step=0.1, defval=3.0) showLabels = input(title='Show Buy/Sell Labels ?', defval=true) useClose = input(title='Use Close Price for Extremums ?', defval=true) highlightState = input(title='Highlight State ?', defval=true) atr = mult * ta.atr(length) longStop = (useClose ? ta.highest(close, length) : ta.highest(length)) - atr longStopPrev = nz(longStop[1], longStop) longStop := close[1] > longStopPrev ? math.max(longStop, longStopPrev) : longStop shortStop = (useClose ? ta.lowest(close, length) : ta.lowest(length)) + atr shortStopPrev = nz(shortStop[1], shortStop) shortStop := close[1] < shortStopPrev ? math.min(shortStop, shortStopPrev) : shortStop var int dir = 1 dir := close > shortStopPrev ? 1 : close < longStopPrev ? -1 : dir var color longColor = color.green var color shortColor = color.red longStopPlot = plot(dir == 1 ? longStop : na, title='Long Stop', style=plot.style_linebr, linewidth=2, color=color.new(longColor, 0)) buySignal = dir == 1 and dir[1] == -1 plotshape(buySignal ? longStop : na, title='Long Stop Start', location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(longColor, 0)) plotshape(buySignal and showLabels ? longStop : na, title='Buy Label', text='Buy', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(longColor, 0), textcolor=color.new(color.white, 0)) shortStopPlot = plot(dir == 1 ? na : shortStop, title='Short Stop', style=plot.style_linebr, linewidth=2, color=color.new(shortColor, 0)) sellSignal = dir == -1 and dir[1] == 1 plotshape(sellSignal ? shortStop : na, title='Short Stop Start', location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(shortColor, 0)) plotshape(sellSignal and showLabels ? shortStop : na, title='Sell Label', text='Sell', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(shortColor, 0), textcolor=color.new(color.white, 0)) changeCond = dir != dir[1] alertcondition(changeCond, title='Alert: CE Direction Change', message='Chandelier Exit has changed direction!') alertcondition(buySignal, title='Alert: CE Buy', message='Chandelier Exit Buy!') alertcondition(sellSignal, title='Alert: CE Sell', message='Chandelier Exit Sell!') // Define initial capital initial_capital =25 // Trigger buy order and close buy order on sell signal if buySignal strategy.entry("Buy", strategy.long, qty = initial_capital / close) if sellSignal strategy.close("Buy")