예스스탁
예스스탁 답변
2020-04-28 15:53:08
안녕하세요
예스스탁입니다.
input : lenR(10),sigMode("Zero-Cross");
var : x(0),y(0),r(0),sig(0),outVal(0),outColor(0);
x = ((close - open) + 2 * (close[1] - open[1])+ 2 * (close[2] - open[2]) + (close[3] - open[3])) / 6;
y = ((high - low) + 2 * (high[1] - low[1]) + 2 *(high[2] - low[2]) + (high[3] - low[3])) / 6;
r = ma(x, lenR) / ma(y, lenR);
sig = (r + 2 * r[1] + 2 * r[2] + r[3]) / 6;
if (sigMode == "Zero-Cross") then
{
outVal = r;
outColor = iff(r >= 0 , green ,red);
}
else if (sigMode == "Increasing/Decreasing") then
{
outVal = r;
outColor = iff(r >= r[1] ,green,red);
}
else
{
outVal = r- sig;
outColor = iff(r - sig >= 0 , green , red);
}
plot1(outVal, "RVI",outColor);
즐거운 하루되세요
> 물고기 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> relVigor(len)=>
x = ((close - open) + 2 * (close[1] - open[1])+ 2 * (close[2] - open[2]) + (close[3] - open[3])) / 6
y = ((high - low) + 2 * (high[1] - low[1]) + 2 *(high[2] - low[2]) + (high[3] - low[3])) / 6
r = sma(x, len) / sma(y, len)
sig = (r + 2 * r[1] + 2 * r[2] + r[3]) / 6
[r, sig]
out(sigMode, rVal, sVal)=>
var color outColor = na
var float outVal = na
if (sigMode == "Zero-Cross")
outVal := rVal
outColor := rVal >= 0 ? color.green : color.red
else
if (sigMode == "Increasing/Decreasing")
outVal := rVal
outColor := rVal >= rVal[1] ? color.green : color.red
else
outVal := rVal - sVal
outColor := rVal - sVal >= 0 ? color.green : color.red
[outVal, outColor]
study("Relative Vigor Index")
lenR = input(14, title="Length of Relative Vigor", type=input.integer, minval=1)
mode = input(title="Mode", type=input.string, options=["Zero-Cross", "Increasing/Decreasing", "Signal Comparison"], defval="Increasing/Decreasing")
[rv, signal] = relVigor(lenR)
[plt, col] = out(mode, rv, signal)
p0 = plot(plt, title="RVI", style=plot.style_histogram, color=col, linewidth=3, transp=0)
안녕하세요
옵션 중 Zero-Cross만 변환하여 사용할 수 있을까하여 글 올리게 되었습니다.
항상 감사드립니다.
좋은 하루되세요