커뮤니티

종목검색 오류 문의 드립니다.

프로필 이미지
마을
2025-11-04 21:39:38
125
글번호 227653
답변완료

/* 조건식 변환본 (예스트레이더 종목검색용)

원식:

A and B and C and ((D and E and F and G and H) or (M and J and K)) and N and O and P and Q

*/

var : A(false), B(false), Cc(false), Dd(false), Ee(false), Ff(false);

var : Gg(false), Hh(false), Mm(false), Jj(false), Kk(false);

var : Nn(false), Oo(false), Pp(false), Qq(false);

var : d(false);

/* A: 1봉전 종가대비 0봉전 고가등락률 15% 이상 */

A = (H - C[1]) / C[1] * 100 >= 15;

/* B: 0봉전 시가 < 0봉전 종가 */

B = O < C;

/* C: [일]거래대금(일:백만) 20000이상 999999999이하

→ 원단위로 변환: 20000000000 ~ 999999999000000

*/

Cc = m >= 20000000000 and m <= 999999999000000;

/* D: [일]3봉전 5봉 평균거래량 100000이상 999999999이하 */

Dd = ma(V,5)[3] >= 100000 and ma(V,5)[3] <= 999999999;

/* E: 1봉전 종가대비 0봉전 종가등락률 29.65% 이하 */

Ee = (C - C[1]) / C[1] * 100 <= 29.65;

/* F: 3봉전 종가대비 2봉전 종가등락률 29.65% 이하 */

Ff = (C[2] - C[3]) / C[3] * 100 <= 29.65;

/* G: 2봉전 시가 < 2봉전 종가 */

Gg = O[2] < C[2];

/* H: 3봉전 종가대비 2봉전 고가등락률 15% 이상 */

Hh = (H[2] - C[3]) / C[3] * 100 >= 15;

/* M: [일]4봉전 5봉 평균거래량 100000이상 999999999이하 */

Mm = ma(V,5)[4] >= 100000 and ma(V,5)[4] <= 999999999;

/* J: 3봉전 시가 < 3봉전 종가 */

Jj = O[3] < C[3];

/* K: 4봉전 종가대비 3봉전 고가등락률 15% 이상 */

Kk = (H[3] - C[4]) / C[4] * 100 >= 15;

/* N: 1봉전 종가대비 0봉전 종가등락률 29.65% 이하 */

Nn = (C - C[1]) / C[1] * 100 <= 29.65;

/* O: 2봉전 종가대비 1봉전 종가등락률 29.65% 이하 */

Oo = (C[1] - C[2]) / C[2] * 100 <= 29.65;

/* P: 3봉전 종가대비 2봉전 종가등락률 29.65% 이하 */

Pp = (C[2] - C[3]) / C[3] * 100 <= 29.65;

/* Q: 4봉전 종가대비 3봉전 종가등락률 29.65% 이하 */

Qq = (C[3] - C[4]) / C[4] * 100 <= 29.65;

/* 최종식 */

d = A

and B

and Cc

and ( (Dd and Ee and Ff and Gg and Hh) or (Mm and Jj and Kk) )

and Nn

and Oo

and Pp

and Qq;

/* 신호 발생 시 종목 출력 */

if d then

Find(1);



위 조건식으로 검색을 하면


9월 24일에 '아이윈플러스, 뉴로핏, 모니터랩' 이렇게 3 종목이 검색이 됩니다.


그런데 위 조건식을 30일치를 한번에 검색할 수 있게 아래와 같이 변형을 하면


9월 24일에 '뉴로핏' 한종목만 검색이 됩니다.


이와 같은 현상이 9월 24일 뿐만이 아니라 랜덤으로 다른 날짜에도 발생을 합니다.


왜 이런 현상이 발생할까요?


아래는 위 조건식을 30일치 한번에 검색하도록 변형한 것입니다.



/* 조건식 변환본 (최근 30일치 자동검색 버전)

원식:

A and B and C and ((D and E and F and G and H) or (M and J and K)) and N and O and P and Q

*/

var : A(false), B(false), Cc(false), Dd(false), Ee(false), Ff(false);

var : Gg(false), Hh(false), Mm(false), Jj(false), Kk(false);

var : Nn(false), Oo(false), Pp(false), Qq(false);

var : d(false);

var : VALUE1(0);

/* A: 1봉전 종가대비 0봉전 고가등락률 15% 이상 */

A = (H - C[1]) / C[1] * 100 >= 15;

/* B: 0봉전 시가 < 0봉전 종가 */

B = O < C;

/* C: [일]거래대금(일:백만) 20000이상 999999999이하

→ 원단위로 변환: 20000000000 ~ 999999999000000

*/

Cc = m >= 20000000000 and m <= 999999999000000;

/* D: [일]3봉전 5봉 평균거래량 100000이상 999999999이하 */

Dd = ma(V,5)[3] >= 100000 and ma(V,5)[3] <= 999999999;

/* E: 1봉전 종가대비 0봉전 종가등락률 29.65% 이하 */

Ee = (C - C[1]) / C[1] * 100 <= 29.65;

/* F: 3봉전 종가대비 2봉전 종가등락률 29.65% 이하 */

Ff = (C[2] - C[3]) / C[3] * 100 <= 29.65;

/* G: 2봉전 시가 < 2봉전 종가 */

Gg = O[2] < C[2];

/* H: 3봉전 종가대비 2봉전 고가등락률 15% 이상 */

Hh = (H[2] - C[3]) / C[3] * 100 >= 15;

/* M: [일]4봉전 5봉 평균거래량 100000이상 999999999이하 */

Mm = ma(V,5)[4] >= 100000 and ma(V,5)[4] <= 999999999;

/* J: 3봉전 시가 < 3봉전 종가 */

Jj = O[3] < C[3];

/* K: 4봉전 종가대비 3봉전 고가등락률 15% 이상 */

Kk = (H[3] - C[4]) / C[4] * 100 >= 15;

/* N: 1봉전 종가대비 0봉전 종가등락률 29.65% 이하 */

Nn = (C - C[1]) / C[1] * 100 <= 29.65;

/* O: 2봉전 종가대비 1봉전 종가등락률 29.65% 이하 */

Oo = (C[1] - C[2]) / C[2] * 100 <= 29.65;

/* P: 3봉전 종가대비 2봉전 종가등락률 29.65% 이하 */

Pp = (C[2] - C[3]) / C[3] * 100 <= 29.65;

/* Q: 4봉전 종가대비 3봉전 종가등락률 29.65% 이하 */

Qq = (C[3] - C[4]) / C[4] * 100 <= 29.65;

/* 최종식 */

d = A

and B

and Cc

and ( (Dd and Ee and Ff and Gg and Hh) or (Mm and Jj and Kk) )

and Nn

and Oo

and Pp

and Qq;

/* 조건 충족일 기록 */

if d then

VALUE1 = sDate;

/* 최근 30일 내 조건이 한 번이라도 발생한 종목만 출력 */

if CountIf(d == true, 30) >= 1 then

Find(VALUE1);




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


참고로, AI 를 통해서 문제를 찾아보려고


아래와 같이 변형도 해 보았습니다만, 같은 증상이 발생하였습니다.


/* 조건식 변환본 (최근 30일치 한 번에 검색 – AccumN 사용)

원식:

A and B and C and ((D and E and F and G and H) or (M and J and K)) and N and O and P and Q

*/

var : A(false), B(false), Cc(false), Dd(false), Ee(false), Ff(false);

var : Gg(false), Hh(false), Mm(false), Jj(false), Kk(false);

var : Nn(false), Oo(false), Pp(false), Qq(false);

var : d(false);

var : cnt30(0);

/* A: 1봉전 종가대비 0봉전 고가등락률 15% 이상 */

A = (H - C[1]) / C[1] * 100 >= 15;

/* B: 0봉전 시가 < 0봉전 종가 */

B = O < C;

/* C: [일]거래대금(일:백만) 20000이상 999999999이하

→ 원단위로 변환: 20000000000 ~ 999999999000000

*/

Cc = m >= 20000000000 and m <= 999999999000000;

/* D: [일]3봉전 5봉 평균거래량 100000이상 999999999이하 */

Dd = ma(V,5)[3] >= 100000 and ma(V,5)[3] <= 999999999;

/* E: 1봉전 종가대비 0봉전 종가등락률 29.65% 이하 */

Ee = (C - C[1]) / C[1] * 100 <= 29.65;

/* F: 3봉전 종가대비 2봉전 종가등락률 29.65% 이하 */

Ff = (C[2] - C[3]) / C[3] * 100 <= 29.65;

/* G: 2봉전 시가 < 2봉전 종가 */

Gg = O[2] < C[2];

/* H: 3봉전 종가대비 2봉전 고가등락률 15% 이상 */

Hh = (H[2] - C[3]) / C[3] * 100 >= 15;

/* M: [일]4봉전 5봉 평균거래량 100000이상 999999999이하 */

Mm = ma(V,5)[4] >= 100000 and ma(V,5)[4] <= 999999999;

/* J: 3봉전 시가 < 3봉전 종가 */

Jj = O[3] < C[3];

/* K: 4봉전 종가대비 3봉전 고가등락률 15% 이상 */

Kk = (H[3] - C[4]) / C[4] * 100 >= 15;

/* N: 1봉전 종가대비 0봉전 종가등락률 29.65% 이하 */

Nn = (C - C[1]) / C[1] * 100 <= 29.65;

/* O: 2봉전 종가대비 1봉전 종가등락률 29.65% 이하 */

Oo = (C[1] - C[2]) / C[2] * 100 <= 29.65;

/* P: 3봉전 종가대비 2봉전 종가등락률 29.65% 이하 */

Pp = (C[2] - C[3]) / C[3] * 100 <= 29.65;

/* Q: 4봉전 종가대비 3봉전 종가등락률 29.65% 이하 */

Qq = (C[3] - C[4]) / C[4] * 100 <= 29.65;

/* 오늘(0봉) 기준 조건식 d */

d = A

and B

and Cc

and ( (Dd and Ee and Ff and Gg and Hh) or (Mm and Jj and Kk) )

and Nn

and Oo

and Pp

and Qq;


/* d가 true인 날이면 오늘 날짜를 VALUE1에 저장

(종목검색에선 어차피 '검색 기준일'로 보이므로, 날짜는 참고용)

*/

if d then

VALUE1 = sDate;

/* 최근 30봉(오늘 포함이라고 가정) 동안 d가 true인 횟수 */

cnt30 = AccumN( Iff(d, 1, 0), 30 );

/* 중요: 오늘이 첫 신호인 종목도 포함시키기 위해 d를 함께 OR 해준다 */

if d or cnt30 >= 1 then

Find(VALUE1);

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


결론적으로 문의드리고 싶은 것은,


하루하루 검색하는 것에는 검색되는 종목 ( 예를 들면 9월 24일 아이윈플러스, 뉴로핏, 모니터랩 3종목) 인데, 이것들은 30일치를 한번에 검색할 수 있게 변형한 것에는 다르게 종목이 검색되는 현상( 뉴로핏 만 검색됨) 을 수정하고 싶습니다.



가장 상단의 조건식을 누락된 종목없이 검색된 날짜가 나오게 30일치 한번에 검색할 수 있게 하려면 어떻게 해야 할까요?


종목검색
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-11-05 13:04:40

안녕하세요 예스스탁입니다. 종목이 누적된것은 아닙니다. 30일동안 1회이상 만족한 종목이고 가장 최근 만족한날짜가 표시됩니다.
위 그림과 같이 아이원플러스, 모니터랩은 그 이후에도 만족한 날짜가 있습니다. 즉 30일중 여러날 만족하면 가장최근 날짜가 결과값으로 표시됩니다. 즐거운 하루되세요