커뮤니티
종목검색식 오픈 소스에서 오류메시지
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 님에 의해 삭제된 답변입니다.
이전글