예스스탁
예스스탁 답변
2024-01-12 10:28:07
안녕하세요
예스스탁입니다.
input : length(20), mult(2.0);
var : source(0),basis(0),dev(0),upper(0),lower(0),bbr(0);
var : basisa(0),deva(0),uppera(0),lowera(0);
var : aboveUp(0),belowDn(0),noTrade(False),col(0);
var : tx(0),box1(0);
source = close;
basis = ma(source, length);
dev = mult * std(source, length);
upper = basis + dev;
lower = basis - dev;
bbr = (source - lower)/(upper - lower);
basisa = ma(bbr, length);
deva = mult * std(bbr, length);
uppera = basisa + deva;
lowera = basisa - deva;
//Added This
aboveUp = iff(bbr > uppera , 1 , 0);
belowDn = iff(bbr < lowera , 1 , 0);
if aboveUp == 1 Then
{
tx = Text_New_Self(sDate,sTime,bbr,"S");
Text_SetStyle(tx,2,1);
Text_SetColor(tx,Red);
}
if belowDn == 1 Then
{
tx = Text_New_Self(sDate,sTime,bbr,"B");
Text_SetStyle(tx,2,0);
Text_SetColor(tx,Green);
}
//Added in BackGround Hilighting
noTrade = aboveUp == 0 and belowDn == 0;
if noTrade == true Then
{
if noTrade[1] == False Then
{
box1 = Box_New_Self(sDate,sTime,9999999,NextBarSdate,NextBarStime,-9999999);
Box_SetColor(box1,Gray);
Box_SetFill(box1,true);
}
Else
Box_SetEnd(box1,NextBarSdate,NextBarStime,-9999999);
}
if aboveUp == 1 Then
{
if aboveUp[1] == 0 Then
{
box1 = Box_New_Self(sDate,sTime,9999999,NextBarSdate,NextBarStime,-9999999);
Box_SetColor(box1,Red);
Box_SetFill(box1,true);
}
Else
Box_SetEnd(box1,NextBarSdate,NextBarStime,-9999999);
}
if belowDn == 1 Then
{
if belowDn[1] == 0 Then
{
box1 = Box_New_Self(sDate,sTime,9999999,NextBarSdate,NextBarStime,-9999999);
Box_SetColor(box1,green);
Box_SetFill(box1,true);
}
Else
Box_SetEnd(box1,NextBarSdate,NextBarStime,-9999999);
}
//Added This
col = iff(bbr < lowera ,lime , IFf(bbr > uppera , red , teal));
//Changed your plot fills from Midline to top of band...and midline to lower band.
plot1(basisa,"basisa", silver);
plot2(uppera,"uppera", red);
plot3(lowera,"lowera", green);
plot4(bbr,"bbr",col);
즐거운 하루되세요
> 이큐 님이 쓴 글입니다.
> 제목 : 수식 도움 요청드립니다
> 수고에 늘 감사드립니다.
예스랭귀지로의 변환을 부탁드립니다.
//Original Code From ucsgears
study(title = "BB %B", shorttitle = "BB %B BB")
source = close
length = input(20, minval=1), mult = input(2.0, minval=0.001, maxval=50)
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev
bbr = (source - lower)/(upper - lower)
//plot(bbr, color=teal)
basisa = sma(bbr, length)
deva = mult * stdev(bbr, length)
uppera = basisa + deva
lowera = basisa - deva
//Added This
aboveUp = bbr > uppera ? 1 : 0
belowDn = bbr < lowera ? 1 : 0
plotchar(aboveUp, title="i", char='S', location=location.top, color=red, transp=0, offset=0)
plotchar(belowDn, title="i", char='B', location=location.bottom, color=green, transp=0, offset=0)
//Added in BackGround Hilighting
noTrade = aboveUp == 0 and belowDn == 0
bgcolor(noTrade ? gray : na, transp=50)
bgcolor(aboveUp ? red : na, transp=60)
bgcolor(belowDn ? green : na, transp=60)
//Added This
col = bbr < lowera ? lime : bbr > uppera ? red : teal
//Changed your plot fills from Midline to top of band...and midline to lower band.
p1 = plot(basisa, color=silver, linewidth=0)
p2 = plot(uppera, color=red, linewidth=2)
p3 = plot(lowera, color=green, linewidth=2)
fill(p1, p2, color=red, transp = 70)
fill(p1, p3, color=green, transp = 70)
plot(bbr, color= col, style=linebr, linewidth=3)