PROTECTED SOURCE SCRIPT

Chandelier Exit 優化版

124
//version=5
indicator('Chandelier Exit 優化版', shorttitle='CE優化', overlay=true)

var string calcGroup = 'Calculation'
length = input.int(title='ATR週期', defval=22, group=calcGroup)
mult = input.float(title='ATR倍數', step=0.1, defval=3.0, group=calcGroup)
useClose = input.bool(title='使用收盤價計算高低點', defval=true, group=calcGroup)

var string visualGroup = '視覺設定'
showLabels = input.bool(title='顯示買/賣標籤', defval=true, group=visualGroup)
highlightState = input.bool(title='高亮趨勢區域', defval=true, group=visualGroup)

var string alertGroup = '警報設定'
awaitBarConfirmation = input.bool(title="等待K棒收定再確認訊號", defval=false, group=alertGroup)

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
var color longFillColor = color.new(color.green, 90)
var color shortFillColor = color.new(color.red, 90)
var color textColor = color.white

longStopPlot = plot(dir == 1 ? longStop : na, title='多方停損', style=plot.style_linebr, linewidth=2, color=longColor)
buySignal = dir == 1 and dir[1] == -1
plotshape(buySignal ? longStop : na, title='買進訊號', location=location.absolute, style=shape.circle, size=size.tiny, color=longColor)
plotshape(buySignal and showLabels ? longStop : na, title='買標籤', text='買', location=location.absolute, style=shape.labelup, size=size.tiny, color=longColor, textcolor=textColor)

shortStopPlot = plot(dir == 1 ? na : shortStop, title='空方停損', style=plot.style_linebr, linewidth=2, color=shortColor)
sellSignal = dir == -1 and dir[1] == 1
plotshape(sellSignal ? shortStop : na, title='賣出訊號', location=location.absolute, style=shape.circle, size=size.tiny, color=shortColor)
plotshape(sellSignal and showLabels ? shortStop : na, title='賣標籤', text='賣', location=location.absolute, style=shape.labeldown, size=size.tiny, color=shortColor, textcolor=textColor)

midPricePlot = plot(ohlc4, title='', style=plot.style_circles, linewidth=0, display=display.none, editable=false)

longStateFillColor = highlightState ? dir == 1 ? longFillColor : na : na
shortStateFillColor = highlightState ? dir == -1 ? shortFillColor : na : na
fill(midPricePlot, longStopPlot, title='多方區域', color=longStateFillColor)
fill(midPricePlot, shortStopPlot, title='空方區域', color=shortStateFillColor)

await = true // 立即通知快訊,無需等K棒收定
alertcondition(dir != dir[1] and await, title='警報: 趨勢改變', message='Chandelier Exit 趨勢改變!')
alertcondition(buySignal and await, title='警報: 買進訊號', message='Chandelier Exit 買進訊號!')
alertcondition(sellSignal and await, title='警報: 賣出訊號', message='Chandelier Exit 賣出訊號!')

Penafian

Maklumat dan penerbitan adalah tidak dimaksudkan untuk menjadi, dan tidak membentuk, nasihat untuk kewangan, pelaburan, perdagangan dan jenis-jenis lain atau cadangan yang dibekalkan atau disahkan oleh TradingView. Baca dengan lebih lanjut di Terma Penggunaan.