커뮤니티

수식작성 부탁드립니다

프로필 이미지
sdw0920
2023-05-10 11:32:42
970
글번호 168844
답변완료
항상 감사한 마음 뿐입니다. 열심히 공부하고 있으나, 아직 예스랭귀지가 능숙하지 않아서 또 문의 드립니다. 트뷰 파인 언어로 되어 있습니다. 미리 감사드립니다. F로시작하는 것은 사용자 정의 함수입니다. MRC_src = input (defval=hl2, group=group_MRC, title='Price Source') MRC_len = input.int (defval=15, group=group_MRC, title='Lookback Period') MRC_innermult = input.float (defval=1.0, group=group_MRC, title='Inner Channel Size Multiplier') MRC_outermult = input.float (defval=2.0, group=group_MRC, title='Outer Channel Size Multiplier') MRC_extrememult = input.float (defval=3.0, group=group_MRC, title='Outer Channel Size Multiplier') pi = math.pi var MRC_gradsize = 0.5 MRC_mult1 = pi * MRC_innermult MRC_mult2 = pi * MRC_outermult MRC_mult3 = pi * MRC_extrememult F_SM(src, len) => a1 = math.exp(-math.sqrt(2) * pi / len) a2 = 2 * a1 * math.cos(math.sqrt(2) * pi / len) a3 = -math.pow(a1, 2) a4 = a2 a5 = 1 - a4 - a3 result = 0.0 result := a5 * src + a4 * nz(result[1], src[1]) + a3 * nz(result[2], src[2]) result F_MRC(src, len, mult1, mult2, mult3, gradsize) => meanline = src meanrange = F_SM(ta.tr, len) meanline := F_SM(src, len) // criteria lines up1 = meanline + meanrange * mult1 up2 = meanline + meanrange * mult2 up3 = meanline + meanrange * mult3 lo1 = meanline - meanrange * mult1 lo2 = meanline - meanrange * mult2 lo3 = meanline - meanrange * mult3 //extension lines float up2_p4 = up2 + meanrange * gradsize * 0.4 float up2_p3 = up2 + meanrange * gradsize * 0.3 float up2_p2 = up2 + meanrange * gradsize * 0.2 float up2_p1 = up2 + meanrange * gradsize * 0.1 float up2_m1 = up2 + meanrange * gradsize * -0.1 float up2_m2 = up2 + meanrange * gradsize * -0.2 float up2_m3 = up2 + meanrange * gradsize * -0.3 float up2_m4 = up2 + meanrange * gradsize * -0.4 float lo2_p4 = lo2 - meanrange * gradsize * 0.4 float lo2_p3 = lo2 - meanrange * gradsize * 0.3 float lo2_p2 = lo2 - meanrange * gradsize * 0.2 float lo2_p1 = lo2 - meanrange * gradsize * 0.1 float lo2_m1 = lo2 - meanrange * gradsize * -0.1 float lo2_m2 = lo2 - meanrange * gradsize * -0.2 float lo2_m3 = lo2 - meanrange * gradsize * -0.3 float lo2_m4 = lo2 - meanrange * gradsize * -0.4 [meanline, meanrange, up1, up2, up3, lo1, lo2, lo3, up2_m1, up2_m2, up2_m3, up2_m4, up2_p1, up2_p2, up2_p3, up2_p4, lo2_p1, lo2_p2, lo2_p3, lo2_p4, lo2_m1, lo2_m2, lo2_m3, lo2_m4] [meanline, meanrange, up1, up2, up3, lo1, lo2, lo3, up2_m1, up2_m2, up2_m3, up2_m4, up2_p1, up2_p2, up2_p3, up2_p4, lo2_p1, lo2_p2, lo2_p3, lo2_p4, lo2_m1, lo2_m2, lo2_m3, lo2_m4] = F_MRC(MRC_src, MRC_len, MRC_mult1, MRC_mult2, MRC_mult3, MRC_gradsize) p_meanline = plot(meanline, color=color.new(#FFCD00, 0), style=plot.style_line, title=' Mean', linewidth=2) p_up1_00 = plot(up1 , color=color.new(color.green, 50), style=plot.style_circles, title=' U1', linewidth=1) p_up2_00 = plot(up2 , color=color.new(color.red, 50), style=plot.style_line, title=' U2', linewidth=1) p_up3_00 = plot(up3 , color=color.new(color.fuchsia, 50), style=plot.style_line, title=' U3', linewidth=1) p_lo1_00 = plot(lo1 , color=color.new(color.green, 50), style=plot.style_circles, title=' S1', linewidth=1) p_lo2_00 = plot(lo2 , color=color.new(color.red, 50), style=plot.style_line, title=' S2', linewidth=1) p_lo3_00 = plot(lo3 , color=color.new(color.fuchsia, 50), style=plot.style_line, title=' S3', linewidth=1) var color1 = color.new(color=color.rgb(99, 67, 196), transp = 50) var color5 = color.new(color=color.rgb(67, 196, 179), transp = 50) fill(p_up2_p4, p_up2_00, color=color1) fill(p_up2_00, p_up2_m4, color=color5) fill(p_lo2_p4, p_lo2_00, color=color1) fill(p_lo2_00, p_lo2_m4, color=color5)
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2023-05-10 14:04:58

안녕하세요 예스스탁입니다. 1번은 사용자함수, 2번은 지표식입니다. 1 사용자함수명 : F_SM 반환값형 : 숫자형 input : src(Numeric),len(Numeric); var : a1(0),a2(0),a3(0),a4(0),a5(0); a1 = exp(-sqrt(2) * pie / len); a2 = 2 * a1 * cos(sqrt(2) * pie / len); a3 = -pow(a1, 2); a4 = a2 ; a5 = 1 - a4 - a3; F_SM = 0.0; F_SM = a5 * src + a4 * iff(IsNan(F_SM[1])==true,src[1],F_SM[1]) + a3 * iff(IsNan(F_SM[2])==true,src[2],F_SM[2]); 2 input : MRC_len(15),MRC_innermult(1.0), MRC_outermult(2.0),MRC_extrememult(3.0); var : MRC_src(0),pi(0),MRC_gradsize(0.5); var : MRC_mult1(0),MRC_mult2(0),MRC_mult3(0); var : up1(0),up2(0),up3(0),lo1(0),lo2(0),lo3(0); var : up2_p4(0),up2_p3(0),up2_p2(0),up2_p1(0),up2_m1(0),up2_m2(0),up2_m3(0),up2_m4(0); var : lo2_p4(0),lo2_p3(0),lo2_p2(0),lo2_p1(0),lo2_m1(0),lo2_m2(0),lo2_m3(0),lo2_m4(0); var : meanline(0),meanrange(0); MRC_src = (H+L)/2; pi = pie; MRC_mult1 = pi * MRC_innermult; MRC_mult2 = pi * MRC_outermult; MRC_mult3 = pi * MRC_extrememult; meanline = MRC_src; meanrange = F_SM(TrueRange, MRC_len); meanline = F_SM(MRC_src, MRC_len); // criteria lines up1 = meanline + meanrange * MRC_mult1; up2 = meanline + meanrange * MRC_mult2; up3 = meanline + meanrange * MRC_mult3; lo1 = meanline - meanrange * MRC_mult1; lo2 = meanline - meanrange * MRC_mult2; lo3 = meanline - meanrange * MRC_mult3; //extension lines up2_p4 = up2 + meanrange * MRC_gradsize * 0.4; up2_p3 = up2 + meanrange * MRC_gradsize * 0.3; up2_p2 = up2 + meanrange * MRC_gradsize * 0.2; up2_p1 = up2 + meanrange * MRC_gradsize * 0.1; up2_m1 = up2 + meanrange * MRC_gradsize * -0.1; up2_m2 = up2 + meanrange * MRC_gradsize * -0.2; up2_m3 = up2 + meanrange * MRC_gradsize * -0.3; up2_m4 = up2 + meanrange * MRC_gradsize * -0.4; lo2_p4 = lo2 - meanrange * MRC_gradsize * 0.4; lo2_p3 = lo2 - meanrange * MRC_gradsize * 0.3; lo2_p2 = lo2 - meanrange * MRC_gradsize * 0.2; lo2_p1 = lo2 - meanrange * MRC_gradsize * 0.1; lo2_m1 = lo2 - meanrange * MRC_gradsize * -0.1; lo2_m2 = lo2 - meanrange * MRC_gradsize * -0.2; lo2_m3 = lo2 - meanrange * MRC_gradsize * -0.3; lo2_m4 = lo2 - meanrange * MRC_gradsize * -0.4; plot1(meanline, " Mean", Orange); plot2(up1 , " U1", Green); plot3(up2 , " U2", Red); plot4(up3 , " U3", Purple); plot5(lo1 , " S1", Green); plot6(lo2 , " S2", Red); plot7(lo3 , " S3", Purple); 즐거운 하루되세요 > sdw0920 님이 쓴 글입니다. > 제목 : 수식작성 부탁드립니다 > 항상 감사한 마음 뿐입니다. 열심히 공부하고 있으나, 아직 예스랭귀지가 능숙하지 않아서 또 문의 드립니다. 트뷰 파인 언어로 되어 있습니다. 미리 감사드립니다. F로시작하는 것은 사용자 정의 함수입니다. MRC_src = input (defval=hl2, group=group_MRC, title='Price Source') MRC_len = input.int (defval=15, group=group_MRC, title='Lookback Period') MRC_innermult = input.float (defval=1.0, group=group_MRC, title='Inner Channel Size Multiplier') MRC_outermult = input.float (defval=2.0, group=group_MRC, title='Outer Channel Size Multiplier') MRC_extrememult = input.float (defval=3.0, group=group_MRC, title='Outer Channel Size Multiplier') pi = math.pi var MRC_gradsize = 0.5 MRC_mult1 = pi * MRC_innermult MRC_mult2 = pi * MRC_outermult MRC_mult3 = pi * MRC_extrememult F_SM(src, len) => a1 = math.exp(-math.sqrt(2) * pi / len) a2 = 2 * a1 * math.cos(math.sqrt(2) * pi / len) a3 = -math.pow(a1, 2) a4 = a2 a5 = 1 - a4 - a3 result = 0.0 result := a5 * src + a4 * nz(result[1], src[1]) + a3 * nz(result[2], src[2]) result F_MRC(src, len, mult1, mult2, mult3, gradsize) => meanline = src meanrange = F_SM(ta.tr, len) meanline := F_SM(src, len) // criteria lines up1 = meanline + meanrange * mult1 up2 = meanline + meanrange * mult2 up3 = meanline + meanrange * mult3 lo1 = meanline - meanrange * mult1 lo2 = meanline - meanrange * mult2 lo3 = meanline - meanrange * mult3 //extension lines float up2_p4 = up2 + meanrange * gradsize * 0.4 float up2_p3 = up2 + meanrange * gradsize * 0.3 float up2_p2 = up2 + meanrange * gradsize * 0.2 float up2_p1 = up2 + meanrange * gradsize * 0.1 float up2_m1 = up2 + meanrange * gradsize * -0.1 float up2_m2 = up2 + meanrange * gradsize * -0.2 float up2_m3 = up2 + meanrange * gradsize * -0.3 float up2_m4 = up2 + meanrange * gradsize * -0.4 float lo2_p4 = lo2 - meanrange * gradsize * 0.4 float lo2_p3 = lo2 - meanrange * gradsize * 0.3 float lo2_p2 = lo2 - meanrange * gradsize * 0.2 float lo2_p1 = lo2 - meanrange * gradsize * 0.1 float lo2_m1 = lo2 - meanrange * gradsize * -0.1 float lo2_m2 = lo2 - meanrange * gradsize * -0.2 float lo2_m3 = lo2 - meanrange * gradsize * -0.3 float lo2_m4 = lo2 - meanrange * gradsize * -0.4 [meanline, meanrange, up1, up2, up3, lo1, lo2, lo3, up2_m1, up2_m2, up2_m3, up2_m4, up2_p1, up2_p2, up2_p3, up2_p4, lo2_p1, lo2_p2, lo2_p3, lo2_p4, lo2_m1, lo2_m2, lo2_m3, lo2_m4] [meanline, meanrange, up1, up2, up3, lo1, lo2, lo3, up2_m1, up2_m2, up2_m3, up2_m4, up2_p1, up2_p2, up2_p3, up2_p4, lo2_p1, lo2_p2, lo2_p3, lo2_p4, lo2_m1, lo2_m2, lo2_m3, lo2_m4] = F_MRC(MRC_src, MRC_len, MRC_mult1, MRC_mult2, MRC_mult3, MRC_gradsize) p_meanline = plot(meanline, color=color.new(#FFCD00, 0), style=plot.style_line, title=' Mean', linewidth=2) p_up1_00 = plot(up1 , color=color.new(color.green, 50), style=plot.style_circles, title=' U1', linewidth=1) p_up2_00 = plot(up2 , color=color.new(color.red, 50), style=plot.style_line, title=' U2', linewidth=1) p_up3_00 = plot(up3 , color=color.new(color.fuchsia, 50), style=plot.style_line, title=' U3', linewidth=1) p_lo1_00 = plot(lo1 , color=color.new(color.green, 50), style=plot.style_circles, title=' S1', linewidth=1) p_lo2_00 = plot(lo2 , color=color.new(color.red, 50), style=plot.style_line, title=' S2', linewidth=1) p_lo3_00 = plot(lo3 , color=color.new(color.fuchsia, 50), style=plot.style_line, title=' S3', linewidth=1) var color1 = color.new(color=color.rgb(99, 67, 196), transp = 50) var color5 = color.new(color=color.rgb(67, 196, 179), transp = 50) fill(p_up2_p4, p_up2_00, color=color1) fill(p_up2_00, p_up2_m4, color=color5) fill(p_lo2_p4, p_lo2_00, color=color1) fill(p_lo2_00, p_lo2_m4, color=color5)