예스스탁
예스스탁 답변
2023-08-28 14:53:56
안녕하세요
예스스탁입니다.
input : colorNormLength(3),dpoLength(13),moboDisplace(0),moboLength(10);
input : numDevDn(-0.8),numDevUp(0.8);
var : Price(0),xsma(0),DPO(0),Midline(0),sDev(0),LowerBand(0),UpperBand(0);
var : Signal1(False),Signal2(False),wasUp(0),wasDn(0),tx(0);
price = (h+l)/2;
xsma = ma(price[dpoLength / 2 + 1], dpoLength);
DPO = price - xsma;
Midline = ma(DPO, moboLength);
sDev = std(DPO, moboLength);
LowerBand = Midline + numDevDn * sDev;
UpperBand = Midline + numDevUp * sDev;
plot1(DPO,"dpo",yellow);
plot2(Midline,"mid",iff(Midline > Midline[1] , lime , red));
plot3(UpperBand, "upper",black);
plot4(LowerBand, "lower",black);
plot5(0,"0",white);
Signal1 = DPO > UpperBand and DPO[1] < UpperBand[1];
Signal2 = DPO < LowerBand and DPO[1] > LowerBand[1];
wasUp = 1;
wasDn = 1;
wasUp = iff(Signal1 , 1 , IFf(Signal2 , 0 ,wasUp));
wasDn = iff(Signal2 , 1 , iff(Signal1 , 0 ,wasDn));
if Signal1 and wasDn[1] Then
{
tx = Text_New_Self(sDate,sTime,UpperBand,"▲");
Text_SetStyle(tx,2,0);
Text_SetColor(tx,Red);
}
if Signal2 and wasUp[1] Then
{
tx = Text_New_Self(sDate,sTime,LowerBand,"▼");
Text_SetStyle(tx,2,1);
Text_SetColor(tx,Blue);
}
즐거운 하루되세요
> 다올 님이 쓴 글입니다.
> 제목 : 부탁드립니다.
> 변형 부탁 드립니다.
price = input(hl2, "Price")
colorNormLength = input(3, "colorNormLength", input.integer)
dpoLength = input(13, "dpoLength", input.integer)
moboDisplace = input(0, "moboDisplace", input.integer)
moboLength = input(10, "moboLength", input.integer)
numDevDn = input(-0.8, "numDevDn", input.float)
numDevUp = input(0.8, "numDevUp", input.float)
coloredMobo = input(true, "coloredMobo")
coloredFill = input(true, "coloredFill")
breakArrows = input(true, "breakArrows")
moboShowMid = input(true, "moboShowMid")
//def DPO = price - Average(price[DPO_length / 2 + 1], DPO_length);
xsma = sma(price[dpoLength / 2 + 1], dpoLength)
//xsma = sma(price, dpoLength)
DPO = price - xsma
Midline = sma(DPO, moboLength)
sDev = stdev(DPO, moboLength)
LowerBand = Midline + numDevDn * sDev
UpperBand = Midline + numDevUp * sDev
plot(DPO, color=color.yellow,linewidth=2)
plot(Midline, color=Midline > Midline[1] ? color.lime : color.red,linewidth=2)
Upper = plot(UpperBand, color=color.black,linewidth=1)
Lower = plot(LowerBand, color=color.black,linewidth=1)
plot(0, color=color.white,linewidth=1)
Signal1 = DPO > UpperBand and DPO[1] < UpperBand[1]
Signal2 = DPO < LowerBand and DPO[1] > LowerBand[1]
wasUp = 1
wasDn = 1
wasUp := Signal1 ? 1 : (Signal2 ? 0 : nz(wasUp[1]))
wasDn := Signal2 ? 1 : (Signal1 ? 0 : nz(wasDn[1]))
//plotshape(Signal1 and wasDn[1] ? UpperBand : na, style=shape.arrowup, location=location.absolute, size=size.normal, color=color.red)
//plotshape(Signal2 and wasUp[1] ? LowerBand : na, style=shape.arrowdown, location=location.absolute, size=size.normal, color=color.green)
plotshape(Signal1 and wasDn[1] ? UpperBand : na, style=shape.labelup, location=location.absolute, size=size.normal, color=color.green, text="Buy",textcolor=color.white)
plotshape(Signal2 and wasUp[1] ? LowerBand : na, style=shape.labeldown, location=location.absolute, size=size.normal, color=color.red, text="Sell",textcolor=color.white)
fill(Upper, Lower, color=color.purple)
alertcondition(Signal1 and wasDn[1], "Break Out Arrow", "Break Out Arrow")
alertcondition(Signal2 and wasUp[1], "Break Down Arrow", "Break Down Arrow")