커뮤니티

종목검색식 오픈 소스에서 오류메시지

프로필 이미지
ykiki
2008-11-17 15:04:06
977
글번호 18203
답변완료
4295번글 [오픈소스] PnF차트 저항선 돌파종목 검색식 4294번글 [오픈소스] PnF차트 상승전환 종목 검색식 이 소스들 편집기에 넣어보니 "선언되지 않은 이름 i가 사용되었습니다"라는 오류가 뜹니다. j의 오타일까요, 미결제약정을 뜻하는 예약어일까요. 전자라고 추측은 해보는데... ^^; 오류메시지는 안떴지만, 내부변수선언부분 중, d(-1)에서 d도 예약어 같은데 변수로 사용해도 되는지 궁금합니다. P&F차트 상승전환 종목 검색식 /*작성자:수식지왕*/ input:bar_cnt(200); var:j(0),g(0),r(0),k(0),n(0),point(0),figure(3),u(1),d(-1),이전방향(0); ^^^^ ^^^^^ array:기준가[10](0),Hi[100](0),Lo[100](0),방향[100](0); #=======# # main #=======# n = bar_cnt - 1; if i == n then { ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ point = (highest(c,bar_cnt)-lowest(c,bar_cnt))/50; 기준가[0] = c[n]; k = 0; 방향[0] = 0; Hi[0] = int(h[n]/point); Lo[0] = int(l[n]/point); for g = n - 1 downto 0 { 이전방향 = 방향[0]; //보통의 처리 루틴이라면 이전봉의 값은 방향[0][1]로 //표현할 수 있겠으나 본 검색식에서는 마지막봉에서 모든 //계산이 이루어지므로 이전봉에서의 값을 이런 식으로 //별도의 변수에 넣어 처리하여 함 for r = 9 downto 1 { 기준가[r] = 기준가[r-1]; } if 방향[0] == 0 then { if 기준가[0] + (point * figure) <= c[g] then { 기준가[0] = c[g]; 방향[0] = u; Hi[0] = max(Hi[0],int(h[g]/point)); Lo[0] = min(Lo[0],int(l[g]/point)); } else if 기준가[0] - (point * figure) >= c[g] then { 기준가[0] = c[g]; 방향[0] = d; Hi[0] = max(Hi[0],int(h[g]/point)); Lo[0] = min(Lo[0],int(l[g]/point)); } else { Hi[0] = max(Hi[0],int(h[g]/point)); Lo[0] = min(Lo[0],int(l[g]/point)); } } else if 방향[0] == d then { if 기준가[0] + (point * figure) <= c[g] then { k = k + 1; for j = min(k,99) downto 1 { Hi[j] = Hi[j-1]; Lo[j] = Lo[j-1]; 방향[j] = 방향[j-1]; } 기준가[0] = c[g]; 방향[0] = u; Hi[0] = int(h[g]/point); Lo[0] = int(기준가[1]/point); } else { 기준가[0] = min(기준가[1],c[g]); Hi[0] = max(Hi[0],int(h[g]/point)); Lo[0] = min(Lo[0],int(l[g]/point)); } } else if 방향[0] == u then { if 기준가[0] - (point * figure) >= c[g] then { k = k + 1; for j = min(k,99) downto 1 { Hi[j] = Hi[j-1]; Lo[j] = Lo[j-1]; 방향[j] = 방향[j-1]; } 기준가[0] = c[g]; 방향[0] = d; Hi[0] = int(기준가[1]/point); Lo[0] = int(l[g]/point); } else { 기준가[0] = max(기준가[1],c[g]); Hi[0] = max(Hi[0],int(h[g]/point)); Lo[0] = min(Lo[0],int(l[g]/point)); } } } } #=====================================================# # 검색식 #=====================================================# if 이전방향 == d and 방향[0] == u then var1 = Hi[0]; else var1 = 0; Find(var1);
검색
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2008-11-17 18:06:35

안녕하세요 예스스탁입니다. i는 3.0에서 index의 약어입니다. 변수 사용시 예약어는 피해서 작성해 주셔야 합니다. /*작성자:수식지왕*/ input:bar_cnt(200); var:j(0),g(0),r(0),k(0),n(0),pnt(0),figure(3),u(1),dd(-1),이전방향(0); array:기준가[10](0),Hi[100](0),Lo[100](0),방향[100](0); #=======# # main #=======# n = bar_cnt - 1; if index == n then { pnt = (highest(c,bar_cnt)-lowest(c,bar_cnt))/50; 기준가[0] = c[n]; k = 0; 방향[0] = 0; Hi[0] = int(h[n]/pnt); Lo[0] = int(l[n]/pnt); for g = n - 1 downto 0 { 이전방향 = 방향[0]; //보통의 처리 루틴이라면 이전봉의 값은 방향[0][1]로 //표현할 수 있겠으나 본 검색식에서는 마지막봉에서 모든 //계산이 이루어지므로 이전봉에서의 값을 이런 식으로 //별도의 변수에 넣어 처리하여 함 for r = 9 downto 1 { 기준가[r] = 기준가[r-1]; } if 방향[0] == 0 then { if 기준가[0] + (pnt * figure) <= c[g] then { 기준가[0] = c[g]; 방향[0] = u; Hi[0] = max(Hi[0],int(h[g]/pnt)); Lo[0] = min(Lo[0],int(l[g]/pnt)); } else if 기준가[0] - (pnt * figure) >= c[g] then { 기준가[0] = c[g]; 방향[0] = dd; Hi[0] = max(Hi[0],int(h[g]/pnt)); Lo[0] = min(Lo[0],int(l[g]/pnt)); } else { Hi[0] = max(Hi[0],int(h[g]/pnt)); Lo[0] = min(Lo[0],int(l[g]/pnt)); } } else if 방향[0] == dd then { if 기준가[0] + (pnt * figure) <= c[g] then { k = k + 1; for j = min(k,99) downto 1 { Hi[j] = Hi[j-1]; Lo[j] = Lo[j-1]; 방향[j] = 방향[j-1]; } 기준가[0] = c[g]; 방향[0] = u; Hi[0] = int(h[g]/pnt); Lo[0] = int(기준가[1]/pnt); } else { 기준가[0] = min(기준가[1],c[g]); Hi[0] = max(Hi[0],int(h[g]/pnt)); Lo[0] = min(Lo[0],int(l[g]/pnt)); } } else if 방향[0] == u then { if 기준가[0] - (pnt * figure) >= c[g] then { k = k + 1; for j = min(k,99) downto 1 { Hi[j] = Hi[j-1]; Lo[j] = Lo[j-1]; 방향[j] = 방향[j-1]; } 기준가[0] = c[g]; 방향[0] = dd; Hi[0] = int(기준가[1]/pnt); Lo[0] = int(l[g]/pnt); } else { 기준가[0] = max(기준가[1],c[g]); Hi[0] = max(Hi[0],int(h[g]/pnt)); Lo[0] = min(Lo[0],int(l[g]/pnt)); } } } } #=====================================================# # 검색식 #=====================================================# if 이전방향 == dd and 방향[0] == u then var1 = Hi[0]; else var1 = 0; Find(var1); 즐거운 하루되세요 > 렌쯔 님이 쓴 글입니다. > 제목 : 종목검색식 오픈 소스에서 오류메시지 > 4295번글 [오픈소스] PnF차트 저항선 돌파종목 검색식 4294번글 [오픈소스] PnF차트 상승전환 종목 검색식 이 소스들 편집기에 넣어보니 "선언되지 않은 이름 i가 사용되었습니다"라는 오류가 뜹니다. j의 오타일까요, 미결제약정을 뜻하는 예약어일까요. 전자라고 추측은 해보는데... ^^; 오류메시지는 안떴지만, 내부변수선언부분 중, d(-1)에서 d도 예약어 같은데 변수로 사용해도 되는지 궁금합니다. P&F차트 상승전환 종목 검색식 /*작성자:수식지왕*/ input:bar_cnt(200); var:j(0),g(0),r(0),k(0),n(0),point(0),figure(3),u(1),d(-1),이전방향(0); ^^^^ ^^^^^ array:기준가[10](0),Hi[100](0),Lo[100](0),방향[100](0); #=======# # main #=======# n = bar_cnt - 1; if i == n then { ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ point = (highest(c,bar_cnt)-lowest(c,bar_cnt))/50; 기준가[0] = c[n]; k = 0; 방향[0] = 0; Hi[0] = int(h[n]/point); Lo[0] = int(l[n]/point); for g = n - 1 downto 0 { 이전방향 = 방향[0]; //보통의 처리 루틴이라면 이전봉의 값은 방향[0][1]로 //표현할 수 있겠으나 본 검색식에서는 마지막봉에서 모든 //계산이 이루어지므로 이전봉에서의 값을 이런 식으로 //별도의 변수에 넣어 처리하여 함 for r = 9 downto 1 { 기준가[r] = 기준가[r-1]; } if 방향[0] == 0 then { if 기준가[0] + (point * figure) <= c[g] then { 기준가[0] = c[g]; 방향[0] = u; Hi[0] = max(Hi[0],int(h[g]/point)); Lo[0] = min(Lo[0],int(l[g]/point)); } else if 기준가[0] - (point * figure) >= c[g] then { 기준가[0] = c[g]; 방향[0] = d; Hi[0] = max(Hi[0],int(h[g]/point)); Lo[0] = min(Lo[0],int(l[g]/point)); } else { Hi[0] = max(Hi[0],int(h[g]/point)); Lo[0] = min(Lo[0],int(l[g]/point)); } } else if 방향[0] == d then { if 기준가[0] + (point * figure) <= c[g] then { k = k + 1; for j = min(k,99) downto 1 { Hi[j] = Hi[j-1]; Lo[j] = Lo[j-1]; 방향[j] = 방향[j-1]; } 기준가[0] = c[g]; 방향[0] = u; Hi[0] = int(h[g]/point); Lo[0] = int(기준가[1]/point); } else { 기준가[0] = min(기준가[1],c[g]); Hi[0] = max(Hi[0],int(h[g]/point)); Lo[0] = min(Lo[0],int(l[g]/point)); } } else if 방향[0] == u then { if 기준가[0] - (point * figure) >= c[g] then { k = k + 1; for j = min(k,99) downto 1 { Hi[j] = Hi[j-1]; Lo[j] = Lo[j-1]; 방향[j] = 방향[j-1]; } 기준가[0] = c[g]; 방향[0] = d; Hi[0] = int(기준가[1]/point); Lo[0] = int(l[g]/point); } else { 기준가[0] = max(기준가[1],c[g]); Hi[0] = max(Hi[0],int(h[g]/point)); Lo[0] = min(Lo[0],int(l[g]/point)); } } } } #=====================================================# # 검색식 #=====================================================# if 이전방향 == d and 방향[0] == u then var1 = Hi[0]; else var1 = 0; Find(var1);
프로필 이미지

ykiki

2008-11-17 18:29:23

ykiki 님에 의해 삭제된 답변입니다.