커뮤니티

수식 문의

프로필 이미지
흑수돌
2022-06-08 14:18:11
1132
글번호 159680
답변완료
아래는 Jurik Volatility Bands 라는 지표입니다. 아래 수식을 예트 수식으로 변환하고 싶습니다. 링크를 첨부 하였으니 한번 읽어보시고 여러 회원님들께도 도움되시기 바랍니다. 부탁 드리겠습니다. 감사합니다. //PRC_Jurik Volatility Bands | indicator //31.08.2020 //Nicolas @ www.prorealcode.com //Sharing ProRealTime knowledge //converted from MT4 //https://www.prorealcode.com/topic/jurik-volatility-bands/ //// --- settings Length = 14 Shift = 0 ShowMiddle = 1 ZeroBind = 1 Normalize = 0 // --- end of settings Price = customclose if barindex>Length then vprice = average[1](Price)[shift] cprice = average[1](Price) hprice = highest[length](vprice) lprice = lowest[length](vprice) len1 = Max(Log(Sqrt(0.5*(length-1)))/Log(2.0)+2.0,0) pow1 = Max(len1-2.0,0.5) del1 = hprice - bsmax[1] del2 = lprice - bsmin[1] volty = 0 if(Abs(del1) > Abs(del2)) then volty = Abs(del1) endif if(Abs(del1) < Abs(del2)) then volty = Abs(del2) endif vsum = vsum[1] + 0.1*(volty-volty[10]) avg = vsum avgLen=65 for k=1 to avgLen-1 do avg = avg+vsum[k] next avg = avg/k avolty = avg if avolty > 0 then dVolty = volty/avolty else dVolty = 0 endif if dVolty>exp((1/pow1)*log(len1)) then dVolty=exp((1/pow1)*log(len1)) endif if (dVolty < 1) then dVolty = 1.0 endif pow2 = exp(pow1*log(dVolty)) len2 = Sqrt(0.5*(length-1))*len1 Kv = exp(sqrt(pow2)*log(len2/(len2+1))) if (del1 > 0) then bsmax = hprice else bsmax = hprice - Kv*del1 endif if (del2 < 0) then bsmin = lprice else bsmin = lprice - Kv*del2 endif dnValue = bsmin upValue = bsmax miValue = (upValue+dnValue)/2.0 //// if (ZeroBind) then if (Normalize) then upValues = 1 dnValues = -1 diff = (upValue-miValue) if (diff <> 0) then price = (cprice-miValue)/diff else price = 0 endif else upValues = upValue-miValue dnValues = dnValue-miValue price = (cprice-miValue) endif else upValues = upValue dnValues = dnValue price = cprice endif if (ShowMiddle) then if (ZeroBind) then miValues = 0 else miValues = miValue endif endif endif return upValues coloured(0,191,255) as "up value", dnValues coloured(219,112,147) as "dn value", miValues coloured(105,105,105) style(dottedline) as "mi value", price coloured(0,191,255) style(line,2) as "price"
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-06-08 15:13:12

안녕하세요 예스스탁입니다. input : Length(14),Shift(0),ShowMiddle(1),ZeroBind(1),Normalize(0); var : price(0),vprice(0),cprice(0),hprice(0),lprice(0),len1(0),pow1(0),del1(0),del2(0); var : volty(0),vsum(0),avgv(0),avolty(0),bsmax(0),bsmin(0),avgLen(0),k(0),Diff(0); var : dVolty(0),pow2(0),len2(0),kv(0),dnValue(0),upValue(0),dnValues(0),upValues(0),miValue(0),miValues(0); Price = c; if barindex > Length then { vprice = ma(price,1)[shift]; cprice = ma(price,1); hprice = highest(vprice,length); lprice = lowest(vprice,length); len1 = Max(Log(Sqrt(0.5*(length-1)))/Log(2.0)+2.0,0); pow1 = Max(len1-2.0,0.5); del1 = hprice - bsmax[1]; del2 = lprice - bsmin[1]; volty = 0; if(Abs(del1) > Abs(del2)) then volty = Abs(del1); if(Abs(del1) < Abs(del2)) then volty = Abs(del2); vsum = vsum[1] + 0.1*(volty-volty[10]); avgv = vsum; avgLen = 65; for k=1 to avgLen-1 { avgv = avgv+vsum[k]; } avgv = avgv/k; avolty = avgv; if avolty > 0 then dVolty = volty/avolty; else dVolty = 0; if dVolty>exp((1/pow1)*log(len1)) then dVolty=exp((1/pow1)*log(len1)); if (dVolty < 1) then dVolty = 1.0; pow2 = exp(pow1*log(dVolty)); len2 = Sqrt(0.5*(length-1))*len1; Kv = exp(sqrt(pow2)*log(len2/(len2+1))); if (del1 > 0) then bsmax = hprice; else bsmax = hprice - Kv*del1; if (del2 < 0) then bsmin = lprice; else bsmin = lprice - Kv*del2; dnValue = bsmin; upValue = bsmax; miValue = (upValue+dnValue)/2.0; if (ZeroBind) then { if (Normalize) then { upValues = 1; dnValues = -1; diff = (upValue-miValue); if (diff <> 0) then price = (cprice-miValue)/diff; else price = 0; } else { upValues = upValue-miValue; dnValues = dnValue-miValue; price = (cprice-miValue); } } else { upValues = upValue; dnValues = dnValue; price = cprice; } if (ShowMiddle) then { if (ZeroBind) then miValues = 0; else miValues = miValue; } } Plot1(upvalues); Plot2(mivalues); Plot3(dnvalues); 즐거운 하루되세요 > 흑수돌 님이 쓴 글입니다. > 제목 : 수식 문의 > 아래는 Jurik Volatility Bands 라는 지표입니다. 아래 수식을 예트 수식으로 변환하고 싶습니다. 링크를 첨부 하였으니 한번 읽어보시고 여러 회원님들께도 도움되시기 바랍니다. 부탁 드리겠습니다. 감사합니다. //PRC_Jurik Volatility Bands | indicator //31.08.2020 //Nicolas @ www.prorealcode.com //Sharing ProRealTime knowledge //converted from MT4 //https://www.prorealcode.com/topic/jurik-volatility-bands/ //// --- settings Length = 14 Shift = 0 ShowMiddle = 1 ZeroBind = 1 Normalize = 0 // --- end of settings Price = customclose if barindex>Length then vprice = average[1](Price)[shift] cprice = average[1](Price) hprice = highest[length](vprice) lprice = lowest[length](vprice) len1 = Max(Log(Sqrt(0.5*(length-1)))/Log(2.0)+2.0,0) pow1 = Max(len1-2.0,0.5) del1 = hprice - bsmax[1] del2 = lprice - bsmin[1] volty = 0 if(Abs(del1) > Abs(del2)) then volty = Abs(del1) endif if(Abs(del1) < Abs(del2)) then volty = Abs(del2) endif vsum = vsum[1] + 0.1*(volty-volty[10]) avg = vsum avgLen=65 for k=1 to avgLen-1 do avg = avg+vsum[k] next avg = avg/k avolty = avg if avolty > 0 then dVolty = volty/avolty else dVolty = 0 endif if dVolty>exp((1/pow1)*log(len1)) then dVolty=exp((1/pow1)*log(len1)) endif if (dVolty < 1) then dVolty = 1.0 endif pow2 = exp(pow1*log(dVolty)) len2 = Sqrt(0.5*(length-1))*len1 Kv = exp(sqrt(pow2)*log(len2/(len2+1))) if (del1 > 0) then bsmax = hprice else bsmax = hprice - Kv*del1 endif if (del2 < 0) then bsmin = lprice else bsmin = lprice - Kv*del2 endif dnValue = bsmin upValue = bsmax miValue = (upValue+dnValue)/2.0 //// if (ZeroBind) then if (Normalize) then upValues = 1 dnValues = -1 diff = (upValue-miValue) if (diff <> 0) then price = (cprice-miValue)/diff else price = 0 endif else upValues = upValue-miValue dnValues = dnValue-miValue price = (cprice-miValue) endif else upValues = upValue dnValues = dnValue price = cprice endif if (ShowMiddle) then if (ZeroBind) then miValues = 0 else miValues = miValue endif endif endif return upValues coloured(0,191,255) as "up value", dnValues coloured(219,112,147) as "dn value", miValues coloured(105,105,105) style(dottedline) as "mi value", price coloured(0,191,255) style(line,2) as "price"