예스스탁
예스스탁 답변
2023-08-03 11:10:08
안녕하세요
예스스탁입니다.
input : lengthK(10),lengthD(3),lengthEMA(3);
var : highestHigh(0),lowestLow(0),highestLowestRange(0),relativeRange(0);
var : SMIv(0);
highestHigh = highest(H,lengthK);
lowestLow = lowest(L,lengthK);
highestLowestRange = highestHigh - lowestLow;
relativeRange = close - (highestHigh + lowestLow) / 2;
SMIv = 200 * (Ema(Ema(relativeRange, lengthD), lengthD) / Ema(Ema(highestLowestRange, lengthD), lengthD));
plot1(SMIv, "SMI",blue);
plot2(ema(SMIv, lengthEMA), "SMI-based EMA", orange);
PlotBaseLine1(0, "Middle Line", gray);
즐거운 하루되세요
> 신대륙발견 님이 쓴 글입니다.
> 제목 : 수식 변환 좀 해주세요.
> //@version=5
indicator("Stochastic Momentum Index", "SMI", timeframe = "", timeframe_gaps = true)
lengthK = input.int(10, "%K Length", minval = 1, maxval = 15000)
lengthD = input.int(3, "%D Length", minval = 1, maxval = 4999)
lengthEMA = input.int(3, "EMA Length", minval = 1, maxval = 4999)
emaEma(source, length) => ta.ema(ta.ema(source, length), length)
highestHigh = ta.highest(lengthK)
lowestLow = ta.lowest(lengthK)
highestLowestRange = highestHigh - lowestLow
relativeRange = close - (highestHigh + lowestLow) / 2
smi = 200 * (emaEma(relativeRange, lengthD) / emaEma(highestLowestRange, lengthD))
smiPlot = plot(smi, "SMI", color = color.blue)
plot(ta.ema(smi, lengthEMA), "SMI-based EMA", color = color.orange)
overbought = hline(40, "Overbought Line")
oversold = hline(-40, "Oversold Line")
fill(overbought, oversold, color = color.new(color.blue, 90))
hline(0, "Middle Line", color = color.new(color.gray, 50))
midLinePlot = plot(0, color = na, editable = false, display = display.none)
fill(smiPlot, midLinePlot, 120, 40, top_color = color.new(#4caf4f, 50), bottom_color = color.new(color.green, 100), title = "Overbought Gradient Fill")
fill(smiPlot, midLinePlot, -40, -120, top_color = color.new(color.red, 100), bottom_color = color.new(color.red, 50), title = "Oversold Gradient Fill")
트레이딩 뷰 지표인데 예스로 좀 변환 해주세요.