커뮤니티

수식 문의드립니다.

프로필 이미지
cooparoo
2024-05-30 03:24:07
734
글번호 180175
답변완료
안녕하세요. 항상 감사드립니다. 다음은 파인스크립트 수식인데 예스로 변환 부탁드립니다. //@version=4 study("Donchian Trend", overlay = true) dlen = input(defval = 20, title = "Donchian Channel Period", minval = 10) lwidth = input(defval = 3, title = "Line Width", minval = 1, maxval = 4) dchannel(len)=> float hh = highest(len) float ll = lowest(len) int trend = 0 trend := close > hh[1] ? 1 : close < ll[1] ? -1 : nz(trend[1]) [hh, ll, trend] dchanneltr(len)=> float hh = highest(len) float ll = lowest(len) int trend = 0 trend := close >= hh[1] ? 1 : close <= ll[1] ? -1 : nz(trend[1]) [upper, lower, maintrend] = dchannel(dlen) tt = maintrend == 1 ? 10 : -10 [u1, l1, t1] = dchannel(dlen -1 ) tt := tt - (sign(dchanneltr(dlen - 1)) != sign(maintrend) ? int(sign(maintrend)) : 0) tt := tt - (sign(dchanneltr(dlen - 2)) != sign(maintrend) ? int(sign(maintrend)) : 0) tt := tt - (sign(dchanneltr(dlen - 3)) != sign(maintrend) ? int(sign(maintrend)) : 0) tt := tt - (sign(dchanneltr(dlen - 4)) != sign(maintrend) ? int(sign(maintrend)) : 0) tt := tt - (sign(dchanneltr(dlen - 5)) != sign(maintrend) ? int(sign(maintrend)) : 0) tt := tt - (sign(dchanneltr(dlen - 6)) != sign(maintrend) ? int(sign(maintrend)) : 0) tt := tt - (sign(dchanneltr(dlen - 7)) != sign(maintrend) ? int(sign(maintrend)) : 0) tt := tt - (sign(dchanneltr(dlen - 8)) != sign(maintrend) ? int(sign(maintrend)) : 0) tt := tt - (sign(dchanneltr(dlen - 9)) != sign(maintrend) ? int(sign(maintrend)) : 0) getcolor(trend)=> _ret = trend >= 10.0 ? #00FF00ff : trend >= 9.0 ? #00FF00e5 : trend >= 8.0 ? #00FF00cc : trend >= 7.0 ? #00FF00b2 : trend >= 6.0 ? #00FF0099 : trend >= 5.0 ? #00FF007f : trend >= 4.0 ? #00FF0066 : trend >= 3.0 ? #00FF004c : trend >= 2.0 ? #00FF0033 : trend >= 1.0 ? #00FF0019 : trend == 0.0 ? color.new(color.white, 100) : trend >= -1.0 ? #FF000019 : trend >= -2.0 ? #FF000033 : trend >= -3.0 ? #FF00004c : trend >= -4.0 ? #FF000066 : trend >= -5.0 ? #FF00007f : trend >= -6.0 ? #FF000099 : trend >= -7.0 ? #FF0000b2 : trend >= -8.0 ? #FF0000cc : trend >= -9.0 ? #FF0000e5 : #FF0000ff tline = maintrend == 1 ? lower : upper tcol = (maintrend == 1 and nz(maintrend[1]) == 1) or (maintrend == -1 and nz(maintrend[1]) == -1) ? getcolor(tt) : na plot(tline, color = tcol, linewidth = lwidth) plotchar(maintrend == 1 and tt > 2 and (tt < 10 or low == lower) ? lower : na, char = "↑", color = color.green, location = location.absolute, size = size.small) plotchar(maintrend == -1 and tt < -2 and (tt > -10 or high == upper) ? upper : na, char = "↓", color = color.olive, location = location.absolute, size = size.small)
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2024-05-30 11:37:48

안녕하세요 예스스탁입니다. 지표내용만 변환해 드립니다. input : dlen(100),lwidth(3); var : hh(0),ll(0),trend(0); var : upper(0),lower(0),maintrend(0); var : tline(0),tx1(0),tx2(0); hh = highest(h,dlen); ll = lowest(l,dlen); trend = iff(close > hh[1] , 1 , iff(close < ll[1] , -1 , trend)); upper = hh; lower = ll; maintrend = trend; tline = IFf(maintrend == 1 , lower , upper); if maintrend == 1 Then plot1(tline,"tline",Green); Else NoPlot(1); if maintrend != 1 Then plot2(tline,"tline",Red); Else NoPlot(2); 즐거운 하루되세요 > cooparoo 님이 쓴 글입니다. > 제목 : 수식 문의드립니다. > 안녕하세요. 항상 감사드립니다. 다음은 파인스크립트 수식인데 예스로 변환 부탁드립니다. //@version=4 study("Donchian Trend", overlay = true) dlen = input(defval = 20, title = "Donchian Channel Period", minval = 10) lwidth = input(defval = 3, title = "Line Width", minval = 1, maxval = 4) dchannel(len)=> float hh = highest(len) float ll = lowest(len) int trend = 0 trend := close > hh[1] ? 1 : close < ll[1] ? -1 : nz(trend[1]) [hh, ll, trend] dchanneltr(len)=> float hh = highest(len) float ll = lowest(len) int trend = 0 trend := close >= hh[1] ? 1 : close <= ll[1] ? -1 : nz(trend[1]) [upper, lower, maintrend] = dchannel(dlen) tt = maintrend == 1 ? 10 : -10 [u1, l1, t1] = dchannel(dlen -1 ) tt := tt - (sign(dchanneltr(dlen - 1)) != sign(maintrend) ? int(sign(maintrend)) : 0) tt := tt - (sign(dchanneltr(dlen - 2)) != sign(maintrend) ? int(sign(maintrend)) : 0) tt := tt - (sign(dchanneltr(dlen - 3)) != sign(maintrend) ? int(sign(maintrend)) : 0) tt := tt - (sign(dchanneltr(dlen - 4)) != sign(maintrend) ? int(sign(maintrend)) : 0) tt := tt - (sign(dchanneltr(dlen - 5)) != sign(maintrend) ? int(sign(maintrend)) : 0) tt := tt - (sign(dchanneltr(dlen - 6)) != sign(maintrend) ? int(sign(maintrend)) : 0) tt := tt - (sign(dchanneltr(dlen - 7)) != sign(maintrend) ? int(sign(maintrend)) : 0) tt := tt - (sign(dchanneltr(dlen - 8)) != sign(maintrend) ? int(sign(maintrend)) : 0) tt := tt - (sign(dchanneltr(dlen - 9)) != sign(maintrend) ? int(sign(maintrend)) : 0) getcolor(trend)=> _ret = trend >= 10.0 ? #00FF00ff : trend >= 9.0 ? #00FF00e5 : trend >= 8.0 ? #00FF00cc : trend >= 7.0 ? #00FF00b2 : trend >= 6.0 ? #00FF0099 : trend >= 5.0 ? #00FF007f : trend >= 4.0 ? #00FF0066 : trend >= 3.0 ? #00FF004c : trend >= 2.0 ? #00FF0033 : trend >= 1.0 ? #00FF0019 : trend == 0.0 ? color.new(color.white, 100) : trend >= -1.0 ? #FF000019 : trend >= -2.0 ? #FF000033 : trend >= -3.0 ? #FF00004c : trend >= -4.0 ? #FF000066 : trend >= -5.0 ? #FF00007f : trend >= -6.0 ? #FF000099 : trend >= -7.0 ? #FF0000b2 : trend >= -8.0 ? #FF0000cc : trend >= -9.0 ? #FF0000e5 : #FF0000ff tline = maintrend == 1 ? lower : upper tcol = (maintrend == 1 and nz(maintrend[1]) == 1) or (maintrend == -1 and nz(maintrend[1]) == -1) ? getcolor(tt) : na plot(tline, color = tcol, linewidth = lwidth) plotchar(maintrend == 1 and tt > 2 and (tt < 10 or low == lower) ? lower : na, char = "↑", color = color.green, location = location.absolute, size = size.small) plotchar(maintrend == -1 and tt < -2 and (tt > -10 or high == upper) ? upper : na, char = "↓", color = color.olive, location = location.absolute, size = size.small)