커뮤니티

수식 문의

프로필 이미지
부똘이
2022-07-01 08:33:37
1450
글번호 160341
답변완료
아래의 수식을 예트의 수식으로 변환해 주시기를 요청 드립니다. 엔밸롭지표에 RSI와 ART 변동성을 추가한 지표라고 합니다. 아래 링크를 참고 하시기 바랍니다. https://www.tradingview.com/scr ipt/MKPAvSrz-RS-MTF-RSI-Weighted-Range-Envelope-V0/ 덕분에 예트에서 벗어나지 못하고 있습니다. 항상 친절한 답변 미리 감사드립니다. //@version=2 study(title='[RS]MTF RSI Weighted Range Envelope V0', shorttitle='E', overlay=true) tf = input('5') src = input(open) ema_length = input(1) rsi_length = input(20) atr_length = input(20) atr_offset = input(1) ob_value = input(70)*0.01 os_value = input(30)*0.01 rsi = rsi(ema(src, ema_length), rsi_length) range = atr(atr_length)[atr_offset] * (0.01*rsi_length) h = src + ((100 - rsi) * range) l = src - (rsi * range) sh = security(tickerid, tf, h) sl = security(tickerid, tf, l) sob = sl + ((sh - sl)*ob_value) sm = sl + ((sh - sl)*0.50) sos = sl + ((sh - sl)*os_value) p100 = plot(series=sh, title='', color=black, style=line, transp=0, linewidth=1) pob = plot(series=sob, title='', color=red, style=circles, transp=0, linewidth=1) pm = plot(series=sm, title='', color=black, style=circles, transp=0, linewidth=1) pos = plot(series=sos, title='', color=lime, style=circles, transp=0, linewidth=1) p0 = plot(series=sl, title='', color=black, style=line, transp=0, linewidth=1) fill(pos, pob, color=purple, transp=90)
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-07-01 14:03:23

안녕하세요 예스스탁입니다. rsi = rsi(ema(src, ema_length), rsi_length) range = atr(atr_length)[atr_offset] * (0.01*rsi_length) h = src + ((100 - rsi) * range) l = src - (rsi * range) 올리신 내용은 위 수식의 타주기를 계산해 그리는 지표입니다. 5분 주기 내용을 그려야 하므로 1분 차트에 적용하셔야 합니다. 예스랭귀지에서는 기본차트 데이타를 이용해 타주기를 계산하는 것은 기본차트 주기로 배수로 높은 주기만 계산해 그릴수 있습니다. input : tf(5),ema_length(1),rsi_length(20),atr_length(20),atr_offset(1),ob_value(70),os_value(30); var : S1(0),D1(0),TM(0),분(0); var : cnt(0),OO(0),HH(0),LL(0),prec(0),sumTR(0),ATRV(0); var : ep(0),SigSum(0),count2(0),RSIsig(0); Var : Counter(0), DownAmt(0), UpAmt(0), UpSum(0), DownSum(0), UpAvg(0), DownAvg(0); var : idx(0), PreUpAvg(0), preDownAvg(0),RSIV(0); var : hv(0),lv(0),sob(0),sos(0),sm(0); Array : TH[100](0),TL[100](0),src[100](0); Ep = 2/(ema_length+1); if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; 분 = TM%TF; if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF > 1 and 분 < 분[1]) or (Bdate == Bdate[1] and TF > 1 and TM >= TM[1]+TF) or (Bdate == Bdate[1] and TF == 1 and TM > TM[1]) Then { for cnt = 99 downto 1 { TH[cnt] = TH[cnt-1]; TL[cnt] = TL[cnt-1]; src[cnt] = src[cnt-1]; } OO = O; HH = H; LL = L; prec = C[1]; PreUpAvg = UpAvg[1]; preDownAvg = DownAvg[1]; idx = idx + 1; } if H > HH Then HH = H; if L < LL Then LL = L; TH[0] = max(prec,HH); TL[0] = Min(prec,LL); if idx <= 1 then src[0] = OO; else src[0] = OO * EP + src[1] * (1-EP); if TH[ATR_Length+atr_offset-1] > 0 and TL[ATR_Length+atr_offset-1] > 0 then { sumTR = 0; for cnt = 0+atr_offset to ATR_Length+atr_offset-1 { sumTR = sumTR + (TH[cnt]-TL[cnt]); } ATRV = sumTR/ATR_Length; } If idx == rsi_length+1 Then { UpSum = 0; DownSum = 0; For Counter = 0 To rsi_length - 1 { UpAmt = src[Counter] - src[Counter+1]; If UpAmt >= 0 Then DownAmt = 0; Else{ DownAmt = -UpAmt; UpAmt = 0; } UpSum = UpSum + UpAmt; DownSum = DownSum + DownAmt; } UpAvg = UpSum / rsi_length; DownAvg = DownSum / rsi_length; } If idx > rsi_length Then { UpAmt = src[0] - src[1]; If UpAmt >= 0 Then DownAmt = 0; Else { DownAmt = -UpAmt; UpAmt = 0; } UpAvg = (PreUpAvg * (rsi_length - 1) + UpAmt) / rsi_length; DownAvg = (preDownAvg * (rsi_length - 1) + DownAmt) / rsi_length; } If UpAvg + DownAvg <> 0 Then RSIv = 100 * UpAvg / (UpAvg + DownAvg); Else RSIv = 0; hv = src[0] + ((100 - RSIv) * ATRV); lv = src[0] - (RSIv-ATRV); sob = hv + ((hv - lv)*(ob_value/100)); sm = lv + ((hv - lv)*0.50); sos = lv + ((hv - lv)*(os_value/100)); Plot1(hv,"hv",Black); plot2(sob,"sob",Red); plot3(sm,"sm",Black); plot4(sos,"sos",Lime); plot5(lv,"lv",Black); } 즐거운 하루되세요 > 부똘이 님이 쓴 글입니다. > 제목 : 수식 문의 > 아래의 수식을 예트의 수식으로 변환해 주시기를 요청 드립니다. 엔밸롭지표에 RSI와 ART 변동성을 추가한 지표라고 합니다. 아래 링크를 참고 하시기 바랍니다. https://www.tradingview.com/scr ipt/MKPAvSrz-RS-MTF-RSI-Weighted-Range-Envelope-V0/ 덕분에 예트에서 벗어나지 못하고 있습니다. 항상 친절한 답변 미리 감사드립니다. //@version=2 study(title='[RS]MTF RSI Weighted Range Envelope V0', shorttitle='E', overlay=true) tf = input('5') src = input(open) ema_length = input(1) rsi_length = input(20) atr_length = input(20) atr_offset = input(1) ob_value = input(70)*0.01 os_value = input(30)*0.01 rsi = rsi(ema(src, ema_length), rsi_length) range = atr(atr_length)[atr_offset] * (0.01*rsi_length) h = src + ((100 - rsi) * range) l = src - (rsi * range) sh = security(tickerid, tf, h) sl = security(tickerid, tf, l) sob = sl + ((sh - sl)*ob_value) sm = sl + ((sh - sl)*0.50) sos = sl + ((sh - sl)*os_value) p100 = plot(series=sh, title='', color=black, style=line, transp=0, linewidth=1) pob = plot(series=sob, title='', color=red, style=circles, transp=0, linewidth=1) pm = plot(series=sm, title='', color=black, style=circles, transp=0, linewidth=1) pos = plot(series=sos, title='', color=lime, style=circles, transp=0, linewidth=1) p0 = plot(series=sl, title='', color=black, style=line, transp=0, linewidth=1) fill(pos, pob, color=purple, transp=90)