커뮤니티

수식도움 부탁 좀 드립니다.

프로필 이미지
차트연구
2013-02-22 17:47:03
298
글번호 59868
답변완료
input:left(3),right(3),구분(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[3](0),fr[3](0); r[0] = 0; r[1] = 0.5; r[2] = 1; # 스윙포인트 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; } } # 비율 if 구분 == 반등 then { if crossup(lb[1],hb[1]) then { for j = 0 to 2 begin fr[j] = hv[1] - (hv[1] - lv[1]) * r[j]; end; ovr = 0; } } if 구분 == 반락 then { if crossup(hb[1],lb[1]) then { for j = 0 to 2 begin fr[j] = lv[1] + (hv[1] - lv[1]) * r[j]; end; ovr = 0; } } # 지표 plot1(fr[0],"고",RED,3); //현재 고가 plot2(fr[1],"중",BLACK,3); //현재 중간 plot3(fr[2],"저",BLUE,3); //현재 저가 수고 많으십니다. 위 수식은 다른 분이 작성한 것을 나름대로 수정해 본 것입니다. 질문은 현재값 이전의 직전(현재에서 1번째 과거) 고가 중간 저가값과 전전(현재에서 2번째 과거) 고가 중간 저가값을 위 지표처럼 나타내고 싶은데 저 같은 초보는 아무리해도 원하는 대로는 안되는군요. 봉을 기준한 과거값을 나타내려는 것이 아니라 현재값(직선으로 표시되는)을 기준으로 전과거값과 전전과거값을 나타내려는 것입니다. 도움 좀 주시면 감사하겠습니다.
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2013-02-22 17:58:22

안녕하세요 예스스탁입니다. input:left(3),right(3),구분(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[3](0),fr[3](0); r[0] = 0; r[1] = 0.5; r[2] = 1; # 스윙포인트 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; } } # 비율 if 구분 == 반등 then { if crossup(lb[1],hb[1]) then { for j = 0 to 2 begin fr[j] = hv[1] - (hv[1] - lv[1]) * r[j]; end; ovr = 0; } } if 구분 == 반락 then { if crossup(hb[1],lb[1]) then { for j = 0 to 2 begin fr[j] = lv[1] + (hv[1] - lv[1]) * r[j]; end; ovr = 0; } } # 지표 if Fr[0] != Fr[0][1] or fr[1] != fr[1][1] or fr[2] != fr[2][1] Then{ var1 = fr[0][1];#전 고가 var2 = fr[1][1];#전 중간 var3 = fr[2][1];#전 저가 var4 = var1[1]; #전전 고가 var5 = var2[1]; #전전 중간 var6 = var3[1]; #전전 저가 } plot1(fr[0],"현재고",RED,3); //현재 고가 plot2(fr[1],"현재중",BLACK,3); //현재 중간 plot3(fr[2],"현재저",BLUE,3); //현재 저가 plot4(var1,"전고"); plot5(var2,"전중"); plot6(var3,"전저"); plot7(var4,"전전고"); plot8(var5,"전전중"); plot9(var6,"전전저"); 즐거운 하루되세요 > 차트연구 님이 쓴 글입니다. > 제목 : 수식도움 부탁 좀 드립니다. > input:left(3),right(3),구분(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[3](0),fr[3](0); r[0] = 0; r[1] = 0.5; r[2] = 1; # 스윙포인트 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; } } # 비율 if 구분 == 반등 then { if crossup(lb[1],hb[1]) then { for j = 0 to 2 begin fr[j] = hv[1] - (hv[1] - lv[1]) * r[j]; end; ovr = 0; } } if 구분 == 반락 then { if crossup(hb[1],lb[1]) then { for j = 0 to 2 begin fr[j] = lv[1] + (hv[1] - lv[1]) * r[j]; end; ovr = 0; } } # 지표 plot1(fr[0],"고",RED,3); //현재 고가 plot2(fr[1],"중",BLACK,3); //현재 중간 plot3(fr[2],"저",BLUE,3); //현재 저가 수고 많으십니다. 위 수식은 다른 분이 작성한 것을 나름대로 수정해 본 것입니다. 질문은 현재값 이전의 직전(현재에서 1번째 과거) 고가 중간 저가값과 전전(현재에서 2번째 과거) 고가 중간 저가값을 위 지표처럼 나타내고 싶은데 저 같은 초보는 아무리해도 원하는 대로는 안되는군요. 봉을 기준한 과거값을 나타내려는 것이 아니라 현재값(직선으로 표시되는)을 기준으로 전과거값과 전전과거값을 나타내려는 것입니다. 도움 좀 주시면 감사하겠습니다.