예스스탁
예스스탁 답변
2025-07-08 16:30:07
안녕하세요
예스스탁입니다.
input : length(22);
input : mult(3.0);
input : useClose(1);#1:true,2:False
vaR : alpha(0),A(0),ATR(0);
var : longStop(0),longStopPrev(0),shortStop(0),shortStopPrev(0);
alpha = 1 / length ;
A = IFf(IsNan(A[1]) == true, ma(TrueRange,length) , alpha * TrueRange + (1 - alpha) * IFf(isnan(A[1])==true,0,A[1]));
atr = mult * A;
longStop = IFf(useClose == 1 , highest(close, length) , highest(h,length)) - atr;
longStopPrev = iff(isnan(longStop[1])==true,longStop,longStop[1]);
longStop = iff(close[1] > longStopPrev , max(longStop, longStopPrev) , longStop);
shortStop = IFf(useClose == 1 , lowest(close, length) , lowest(l,length)) + atr;
shortStopPrev = iff(IsNan(shortStop[1])==true, shortStop,shortStop[1]);
shortStop = iff(close[1] < shortStopPrev , min(shortStop, shortStopPrev) , shortStop);
var : dir(1);
dir = iff(close > shortStopPrev , 1 , IFf( close < longStopPrev , -1 , dir));
var : longColor(green);
var : shortColor(red);
var : longFillColor(green);
var : shortFillColor(red);
var : textColor(Black);
var : buySignal(False),sellSignal(False),tx(0);
if dir == 1 Then
plot1(longStop,"Long Stop",longColor);
Else
NoPlot(1);
if dir != 1 then
plot2(shortStop, "Short Stop",shortColor);
Else
NoPlot(2);
buySignal = dir == 1 and dir[1] == -1;
sellSignal = dir == -1 and dir[1] == 1;
if buySignal == true Then
{
tx = Text_New(sDate,sTime,longStop,"▲");
Text_SetStyle(tx,2,0);
Text_SetColor(tx,longColor);
Text_SetSize(tx,20);
}
if sellSignal == true Then
{
tx = Text_New(sDate,sTime,longStop,"▼");
Text_SetStyle(tx,2,1);
Text_SetColor(tx,shortColor);
Text_SetSize(tx,20);
}
즐거운 하루되세요
> 고도산 님이 쓴 글입니다.
> 제목 : 수식 부탁드립니다
> 다음 트레이딩뷰 수식을 아무리 변환해도 이상하게 표시되어 부탁드리게 되었씁니다. 미리 감사드립니다.
//@version=5
indicator('Chandelier Exit[everget]', shorttitle='CE', overlay=true)
var string calcGroup = 'Calculation'
length = input.int(title='ATR Period', defval=22, group=calcGroup)
mult = input.float(title='ATR Multiplier', step=0.1, defval=3.0, group=calcGroup)
useClose = input.bool(title='Use Close Price for Extremums', defval=true, group=calcGroup)
var string visualGroup = 'Visuals'
showLabels = input.bool(title='Show Buy/Sell Labels', defval=true, group=visualGroup)
highlightState = input.bool(title='Highlight State', defval=true, group=visualGroup)
var string alertGroup = 'Alerts'
awaitBarConfirmation = input.bool(title="Await Bar Confirmation", defval=true, 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.new(color.white, 0)
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=textColor)
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=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='Long State Filling', color=longStateFillColor)
fill(midPricePlot, shortStopPlot, title='Short State Filling', color=shortStateFillColor)