Strategi Keluar Chandelier

Penulis:ChaoZhang, Tarikh: 2024-01-05 15:57:51
Tag:

img

Ringkasan

Strategi ini menggunakan penunjuk Chandelier Exit untuk menentukan arah dan momentum harga dan menjana isyarat beli dan jual.

Logika Strategi

Strategi ini berdasarkan pada penunjuk Chandelier Exit yang menetapkan garis stop-loss berdasarkan tertinggi tertinggi, terendah terendah dan Julat Benar Purata. Khususnya, ia mengira ATR 22 hari dan mengalikannya dengan pekali (default 3) untuk memperoleh nilai untuk garis berhenti panjang dan pendek. Strategi ini menghasilkan isyarat jual apabila harga melanggar di bawah berhenti panjang apabila panjang, dan isyarat beli apabila harga melanggar di atas berhenti pendek apabila pendek.

Strategi ini hanya melakukan operasi beli. Ia mencetuskan entri panjang apabila harga memecahkan di atas garis berhenti panjang sebelumnya, dan mewujudkan isyarat keluar apabila harga jatuh di bawah garis berhenti pendek, menutup kedudukan panjang.

Analisis Kelebihan

  • Menggunakan garis stop loss dinamik dari Chandelier Exit untuk mengawal risiko dengan berkesan
  • Menggabungkan penembusan harga untuk menangkap pergerakan trend
  • Melaksanakan strategi yang mengelakkan pembalikan ke atas / ke bawah dengan hanya membeli
  • Keadaan amaran mencetuskan pemberitahuan untuk memantau status strategi

Analisis Risiko

  • Chandelier Exit sensitif kepada pengembangan turun naik yang boleh menyebabkan isyarat palsu
  • Tidak ada stop loss selepas membeli untuk mengehadkan kerugian
  • Tiada mekanisme mengambil keuntungan untuk mengunci keuntungan

Pengurangan Risiko:

  1. Tambah penapis dengan penunjuk lain untuk mengelakkan isyarat palsu
  2. Melaksanakan stop loss untuk mengehadkan kerugian maksimum %
  3. Menggabungkan hentian keuntungan, seperti pelarasan dinamik baris jual atau keluar separa

Peluang Peningkatan

  1. Uji set parameter yang berbeza untuk mengoptimumkan kemasukan dan keluar
  2. Tambah penapis penunjuk untuk mengesahkan isyarat dan mengelakkan isyarat palsu
  3. Pertimbangkan untuk membenarkan kedua-dua operasi membeli dan menjual
  4. Memperkenalkan mekanisme stop loss dan mengambil keuntungan

Kesimpulan

Strategi ini mengenal pasti peluang pembalikan menggunakan garis berhenti dinamik dari penunjuk Chandelier Exit. Ia membeli pada pembiakan ke atas garis berhenti panjang dan menjual apabila harga jatuh di bawah garis berhenti pendek, melaksanakan strategi satu sisi yang mudah yang mengelakkan pembalikan ke atas / ke bawah. Ia mengawal risiko dengan berkesan tetapi tidak mempunyai peruntukan stop loss dan mengambil keuntungan. Peluang pengoptimuman termasuk menambah penapis dan mekanisme mengambil kerugian / keuntungan berhenti untuk menjadikan strategi lebih mantap.


/*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")


Lebih lanjut