커뮤니티

문의드립니다

프로필 이미지
뉴스타트
2013-06-05 06:44:53
284
글번호 63994
답변완료
input:left(5),right(5),구분(1); var:j(0),prehv(0),prelv(0),prehb(0),prelb(0),tmpv(0),tmpb(0), ovr(0),반등(1),반락(-1); array:hv[10](0),lv[10](0),hb[10](0),lb[10](0), r[8](0),fr[8](0); r[0] = 0; r[1] = 0.236; r[2] = 0.382; r[3] = 0.50; r[4] = 0.618; r[5] = 0.764; r[6] = 1; r[7] = 1.618; #==============================================================================# # 변곡점 계산 #==============================================================================# //파동선 작성 설명은 자주 했으므로 생략 if highest(h[1],left) <= h then { prehv = h; prehb = 0; } else prehb = prehb + 1; if lowest(l[1],left) >= l then { prelv = l; prelb = 0; } else prelb = prelb + 1; for j = 1 to 9 begin hb[j] = hb[j] + 1; lb[j] = lb[j] + 1; end; if prehb == right and highest(h,right) <= h[right] then { for j = 9 downto 2 { hv[j] = hv[j-1]; hb[j] = hb[j-1]; } hv[1] = prehv; hb[1] = prehb; if lb[1] > hb[2] then { for j = 9 downto 2 { lv[j] = lv[j-1]; lb[j] = lb[j-1]; } tmpv = 0; for j = hb[1] + 1 to hb[2] - 1 { if tmpv > l[j] or tmpv ==0 then { tmpv = l[j]; tmpb = j; } } lv[1] = tmpv; lb[1] = tmpb; } } if prelb == right and lowest(l,right) >= l[right] then { for j = 9 downto 2 { lv[j] = lv[j-1]; lb[j] = lb[j-1]; } lv[1] = prelv; lb[1] = prelb; if hb[1] > lb[2] then { for j = 9 downto 2 { hv[j] = hv[j-1]; hb[j] = hb[j-1]; } tmpv = 0; for j = lb[1] + 1 to lb[2] - 1 { if tmpv < h[j] or tmpv ==0 then { tmpv = h[j]; tmpb = j; } } hv[1] = tmpv; hb[1] = tmpb; } } #==============================================================================# # Fibonacci Retracements 계산 #==============================================================================# //반등과 반락을 모두 표시하게 되면 복잡해지므로 한 방향만 표시하는 것이 옳음 if 구분 == 반등 then { if crossup(lb[1],hb[1]) then { for j = 0 to 7 begin fr[j] = hv[1] - (hv[1] - lv[1]) * r[j]; end; ovr = 0; } if fr[6]>l then ovr = 1; } if 구분 == 반락 then { if crossup(hb[1],lb[1]) then { for j = 0 to 7 begin fr[j] = lv[1] + (hv[1] - lv[1]) * r[j]; end; ovr = 0; } if fr[6]>l then ovr = 1; } #==============================================================================# # 지표출력 #==============================================================================# if hb[1]==right then plot1(hv[1],"파동선",GREEN); if lb[1]==right then plot1(lv[1],"파동선",GREEN); plot2(fr[0],"0%"); plot3(fr[1],"23.6%"); plot4(fr[2],"38.2%"); plot5(fr[3],"50%"); plot6(fr[4],"61.8%"); plot7(fr[5],"76.4%"); plot8(fr[6],"100%"); plot9(fr[7],"161.8%"); 위의 지표식을 적용했을때 전체비율이 표시되는 구간과 관련하여 한가지 수정부탁드립니다. 이지표식은 직전 상승파동의 스윙고점에서 하락방향으로만 비율이 표시되고 있습니다. 예를들어 A B C D E 구간이 있다고 했을때 A 에서 비율이 표시되기 시작하여 같은값으로 B 를 지나 C 직전까지, C 에서 새로운 값으로 표시되기 시작하여 D 를 지나 E 직전까지 출력이 됩니다. 그런데 차트에 적용해보면, 위 지표식의 값이 적용되는 구간은 A에서 B구간,C에서 D구간이며, B에서 C구간과 D에서 E구간은 직전 하락파동의 스윙저점에서 상승방향으로 비율이 표시되어야되는 구간임에도 불구하고 A에서 시작된 비율표시가 C까지,C에서 시작된 비율표시가 E까지 계속 출력이 됩니다. 위지표식을 A에서 B, C에서 D 구간에서만 표시가 되고, B에서 C, D에서 E 구간에서는 표시가 되지 않도록 수정부탁드립니다.
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2013-06-05 15:29:13

안녕하세요 예스스탁입니다. 반대구간에는 그리지 않아야 하므로 점그래프나, 일자그래프와 같이 직전봉과 연결이 되지 않은 그래프종류로 모두 설정하셔야 합니다. input:left(5),right(5),구분(1); var:j(0),prehv(0),prelv(0),prehb(0),prelb(0),tmpv(0),tmpb(0), ovr(0),반등(1),반락(-1); array:hv[10](0),lv[10](0),hb[10](0),lb[10](0), r[8](0),fr[8](0); r[0] = 0; r[1] = 0.236; r[2] = 0.382; r[3] = 0.50; r[4] = 0.618; r[5] = 0.764; r[6] = 1; r[7] = 1.618; #==============================================================================# # 변곡점 계산 #==============================================================================# //파동선 작성 설명은 자주 했으므로 생략 if highest(h[1],left) <= h then { prehv = h; prehb = 0; } else prehb = prehb + 1; if lowest(l[1],left) >= l then { prelv = l; prelb = 0; } else prelb = prelb + 1; for j = 1 to 9 begin hb[j] = hb[j] + 1; lb[j] = lb[j] + 1; end; if prehb == right and highest(h,right) <= h[right] then { var1 = 1; for j = 9 downto 2 { hv[j] = hv[j-1]; hb[j] = hb[j-1]; } hv[1] = prehv; hb[1] = prehb; if lb[1] > hb[2] then { for j = 9 downto 2 { lv[j] = lv[j-1]; lb[j] = lb[j-1]; } tmpv = 0; for j = hb[1] + 1 to hb[2] - 1 { if tmpv > l[j] or tmpv ==0 then { tmpv = l[j]; tmpb = j; } } lv[1] = tmpv; lb[1] = tmpb; } } if prelb == right and lowest(l,right) >= l[right] then { var1 = -1; for j = 9 downto 2 { lv[j] = lv[j-1]; lb[j] = lb[j-1]; } lv[1] = prelv; lb[1] = prelb; if hb[1] > lb[2] then { for j = 9 downto 2 { hv[j] = hv[j-1]; hb[j] = hb[j-1]; } tmpv = 0; for j = lb[1] + 1 to lb[2] - 1 { if tmpv < h[j] or tmpv ==0 then { tmpv = h[j]; tmpb = j; } } hv[1] = tmpv; hb[1] = tmpb; } } #==============================================================================# # Fibonacci Retracements 계산 #==============================================================================# //반등과 반락을 모두 표시하게 되면 복잡해지므로 한 방향만 표시하는 것이 옳음 if 구분 == 반등 and var1 == 반등 then { if crossup(lb[1],hb[1]) then { for j = 0 to 7 begin fr[j] = hv[1] - (hv[1] - lv[1]) * r[j]; end; ovr = 0; } if fr[6]>l then ovr = 1; if hb[1]==right then plot1(hv[1],"파동선",GREEN); if lb[1]==right then plot1(lv[1],"파동선",GREEN); plot2(fr[0],"0%"); plot3(fr[1],"23.6%"); plot4(fr[2],"38.2%"); plot5(fr[3],"50%"); plot6(fr[4],"61.8%"); plot7(fr[5],"76.4%"); plot8(fr[6],"100%"); plot9(fr[7],"161.8%"); } if 구분 == 반락 and var1 == 반락 then { if crossup(hb[1],lb[1]) then { for j = 0 to 7 begin fr[j] = lv[1] + (hv[1] - lv[1]) * r[j]; end; ovr = 0; } if fr[6]>l then ovr = 1; if hb[1]==right then plot1(hv[1],"파동선",GREEN); if lb[1]==right then plot1(lv[1],"파동선",GREEN); plot2(fr[0],"0%"); plot3(fr[1],"23.6%"); plot4(fr[2],"38.2%"); plot5(fr[3],"50%"); plot6(fr[4],"61.8%"); plot7(fr[5],"76.4%"); plot8(fr[6],"100%"); plot9(fr[7],"161.8%"); } 각 구간별로 모두 그래프를 보고자 하시면 아래식 이용하시면 됩니다. 반등구간과 반락구간별로 모두 그리는 식입니다. input:left(5),right(5); var:j(0),prehv(0),prelv(0),prehb(0),prelb(0),tmpv(0),tmpb(0), ovr(0),반등(1),반락(-1); array:hv[10](0),lv[10](0),hb[10](0),lb[10](0), r[8](0),fr[8](0); r[0] = 0; r[1] = 0.236; r[2] = 0.382; r[3] = 0.50; r[4] = 0.618; r[5] = 0.764; r[6] = 1; r[7] = 1.618; #==============================================================================# # 변곡점 계산 #==============================================================================# //파동선 작성 설명은 자주 했으므로 생략 if highest(h[1],left) <= h then { prehv = h; prehb = 0; } else prehb = prehb + 1; if lowest(l[1],left) >= l then { prelv = l; prelb = 0; } else prelb = prelb + 1; for j = 1 to 9 begin hb[j] = hb[j] + 1; lb[j] = lb[j] + 1; end; if prehb == right and highest(h,right) <= h[right] then { var1 = 1; for j = 9 downto 2 { hv[j] = hv[j-1]; hb[j] = hb[j-1]; } hv[1] = prehv; hb[1] = prehb; if lb[1] > hb[2] then { for j = 9 downto 2 { lv[j] = lv[j-1]; lb[j] = lb[j-1]; } tmpv = 0; for j = hb[1] + 1 to hb[2] - 1 { if tmpv > l[j] or tmpv ==0 then { tmpv = l[j]; tmpb = j; } } lv[1] = tmpv; lb[1] = tmpb; } } if prelb == right and lowest(l,right) >= l[right] then { var1 = -1; for j = 9 downto 2 { lv[j] = lv[j-1]; lb[j] = lb[j-1]; } lv[1] = prelv; lb[1] = prelb; if hb[1] > lb[2] then { for j = 9 downto 2 { hv[j] = hv[j-1]; hb[j] = hb[j-1]; } tmpv = 0; for j = lb[1] + 1 to lb[2] - 1 { if tmpv < h[j] or tmpv ==0 then { tmpv = h[j]; tmpb = j; } } hv[1] = tmpv; hb[1] = tmpb; } } #==============================================================================# # Fibonacci Retracements 계산 #==============================================================================# //반등과 반락을 모두 표시하게 되면 복잡해지므로 한 방향만 표시하는 것이 옳음 if var1 == 반등 then { if crossup(lb[1],hb[1]) then { for j = 0 to 7 begin fr[j] = hv[1] - (hv[1] - lv[1]) * r[j]; end; ovr = 0; } if fr[6]>l then ovr = 1; if hb[1]==right then plot1(hv[1],"파동선",GREEN); if lb[1]==right then plot1(lv[1],"파동선",GREEN); plot2(fr[0],"0%"); plot3(fr[1],"23.6%"); plot4(fr[2],"38.2%"); plot5(fr[3],"50%"); plot6(fr[4],"61.8%"); plot7(fr[5],"76.4%"); plot8(fr[6],"100%"); plot9(fr[7],"161.8%"); } if var1 == 반락 then { if crossup(hb[1],lb[1]) then { for j = 0 to 7 begin fr[j] = lv[1] + (hv[1] - lv[1]) * r[j]; end; ovr = 0; } if fr[6]>l then ovr = 1; if hb[1]==right then plot1(hv[1],"파동선",GREEN); if lb[1]==right then plot1(lv[1],"파동선",GREEN); plot2(fr[0],"0%"); plot3(fr[1],"23.6%"); plot4(fr[2],"38.2%"); plot5(fr[3],"50%"); plot6(fr[4],"61.8%"); plot7(fr[5],"76.4%"); plot8(fr[6],"100%"); plot9(fr[7],"161.8%"); } 즐거운 하루되세요 > 뉴스타트 님이 쓴 글입니다. > 제목 : 문의드립니다 > input:left(5),right(5),구분(1); var:j(0),prehv(0),prelv(0),prehb(0),prelb(0),tmpv(0),tmpb(0), ovr(0),반등(1),반락(-1); array:hv[10](0),lv[10](0),hb[10](0),lb[10](0), r[8](0),fr[8](0); r[0] = 0; r[1] = 0.236; r[2] = 0.382; r[3] = 0.50; r[4] = 0.618; r[5] = 0.764; r[6] = 1; r[7] = 1.618; #==============================================================================# # 변곡점 계산 #==============================================================================# //파동선 작성 설명은 자주 했으므로 생략 if highest(h[1],left) <= h then { prehv = h; prehb = 0; } else prehb = prehb + 1; if lowest(l[1],left) >= l then { prelv = l; prelb = 0; } else prelb = prelb + 1; for j = 1 to 9 begin hb[j] = hb[j] + 1; lb[j] = lb[j] + 1; end; if prehb == right and highest(h,right) <= h[right] then { for j = 9 downto 2 { hv[j] = hv[j-1]; hb[j] = hb[j-1]; } hv[1] = prehv; hb[1] = prehb; if lb[1] > hb[2] then { for j = 9 downto 2 { lv[j] = lv[j-1]; lb[j] = lb[j-1]; } tmpv = 0; for j = hb[1] + 1 to hb[2] - 1 { if tmpv > l[j] or tmpv ==0 then { tmpv = l[j]; tmpb = j; } } lv[1] = tmpv; lb[1] = tmpb; } } if prelb == right and lowest(l,right) >= l[right] then { for j = 9 downto 2 { lv[j] = lv[j-1]; lb[j] = lb[j-1]; } lv[1] = prelv; lb[1] = prelb; if hb[1] > lb[2] then { for j = 9 downto 2 { hv[j] = hv[j-1]; hb[j] = hb[j-1]; } tmpv = 0; for j = lb[1] + 1 to lb[2] - 1 { if tmpv < h[j] or tmpv ==0 then { tmpv = h[j]; tmpb = j; } } hv[1] = tmpv; hb[1] = tmpb; } } #==============================================================================# # Fibonacci Retracements 계산 #==============================================================================# //반등과 반락을 모두 표시하게 되면 복잡해지므로 한 방향만 표시하는 것이 옳음 if 구분 == 반등 then { if crossup(lb[1],hb[1]) then { for j = 0 to 7 begin fr[j] = hv[1] - (hv[1] - lv[1]) * r[j]; end; ovr = 0; } if fr[6]>l then ovr = 1; } if 구분 == 반락 then { if crossup(hb[1],lb[1]) then { for j = 0 to 7 begin fr[j] = lv[1] + (hv[1] - lv[1]) * r[j]; end; ovr = 0; } if fr[6]>l then ovr = 1; } #==============================================================================# # 지표출력 #==============================================================================# if hb[1]==right then plot1(hv[1],"파동선",GREEN); if lb[1]==right then plot1(lv[1],"파동선",GREEN); plot2(fr[0],"0%"); plot3(fr[1],"23.6%"); plot4(fr[2],"38.2%"); plot5(fr[3],"50%"); plot6(fr[4],"61.8%"); plot7(fr[5],"76.4%"); plot8(fr[6],"100%"); plot9(fr[7],"161.8%"); 위의 지표식을 적용했을때 전체비율이 표시되는 구간과 관련하여 한가지 수정부탁드립니다. 이지표식은 직전 상승파동의 스윙고점에서 하락방향으로만 비율이 표시되고 있습니다. 예를들어 A B C D E 구간이 있다고 했을때 A 에서 비율이 표시되기 시작하여 같은값으로 B 를 지나 C 직전까지, C 에서 새로운 값으로 표시되기 시작하여 D 를 지나 E 직전까지 출력이 됩니다. 그런데 차트에 적용해보면, 위 지표식의 값이 적용되는 구간은 A에서 B구간,C에서 D구간이며, B에서 C구간과 D에서 E구간은 직전 하락파동의 스윙저점에서 상승방향으로 비율이 표시되어야되는 구간임에도 불구하고 A에서 시작된 비율표시가 C까지,C에서 시작된 비율표시가 E까지 계속 출력이 됩니다. 위지표식을 A에서 B, C에서 D 구간에서만 표시가 되고, B에서 C, D에서 E 구간에서는 표시가 되지 않도록 수정부탁드립니다.