커뮤니티

조건검색 도와주세요~

프로필 이미지
마을
2025-09-11 15:34:46.0
63
글번호 193936
답변완료
항상 빠르고 정확한 답변 감사드립니다. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 안녕하세요 예스스탁입니다. 올리신 내용은 키움수식 내용을 예스랭귀지 종목검색식으로 변환하고 해당 조건이 30일 이내 1회이상 발생한 종목을 찾게 변환해 드립니다. var :a(0),b(0),a1(False),a2(False),a3(False),d(False); A=ma(c,5); B=A[1]; a1 = A/B*100 < 100 ; a2 = c < ma(c,5) and c > ma(c,20) and o > c ; Condition1 = c[3]*1.29 < c[2] and c[2] > c and o[2] < c and Money[2] > 5500000000; a3 = CountIf(Condition1==true,15) >= 1; d = a1 and a2 and a3 ; if CountIf(d==true,30) >= 1 Then Find(1); 즐거운 하루되세요 > 마을 님이 쓴 글입니다. > 제목 : 수식변경 부탁드립니다. > 아래 수식을 한번에 30일치를 종목검색 할 수 있게 변경 부탁드립니다. *** 8봉내에서 상한가가 발생한 종목 중(a3) 에서 a1 과 a2 조건을 동시에 만족하는 첫번째 조건만을 찾는 검색입니다. (즉, 상한가 발생후 a1 과 a2를 만족하는 것이 4봉째, 5번째, 6번째 봉에서 발생하더라도 첫번째 만족한 4봉째만 검색이 되도록 하고 싶습니다. countsince 함수를 사용하였는데, 수식에 문제가 있다면 변경해주세요.) A=avg(c,5); B=A(1); a1 = A/B*100 < 100 ; a2 = c < ma(c,5,단순) and c > ma(c,20,단순) and o > c ; a3 = (c(3)*1.29 < c(2) and c(2) > c and o(2) < c and 거래대금(2) > 5500) or (c(4)*1.29 < c(3) and c(3) > c and o(3) < c and 거래대금(3) > 5500 ) or (c(5)*1.29 < c(4) and c(4) > c and o(4) < c and 거래대금(4) > 5500 ) or (c(6)*1.29 < c(5) and c(5) > c and o(5) < c and 거래대금(5) > 5500 ) or (c(7)*1.29 < c(6) and c(6) > c and o(6) < c and 거래대금(6) > 5500 ) or (c(8)*1.29 < c(7) and c(7) > c and o(7) < c and 거래대금(7) > 5500 ) or (c(9)*1.29 < c(8) and c(8) > c and o(8) < c and 거래대금(8) > 5500 ) or (c(10)*1.29 < c(9) and c(9) > c and o(9) < c and 거래대금(9) > 5500) or (c(11)*1.29 < c(10) and c(10) > c and o(10) < c and 거래대금(10) > 5500) or (c(12)*1.29 < c(11) and c(11) > c and o(11) < c and 거래대금(11) > 5500) or (c(13)*1.29 < c(12) and c(12) > c and o(12) < c and 거래대금(12) > 5500) or (c(14)*1.29 < c(13) and c(13) > c and o(13) < c and 거래대금(13) > 5500) or (c(15)*1.29 < c(14) and c(14) > c and o(14) < c and 거래대금(14) > 5500) ; d = a1 and a2 and a3 ; cnt = countsince(date!=date(1), d)==1 ; cnt && !cnt(1) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 위와 같은 답변을 받았습니다. 해당 조건이 30일 이내 1회이상 발생한 종목을 찾게 변환해 드립니다. ---> 이 부분이 의미가 전달이 잘 못 된 것 같습니다. 30일 이내에서 가장 처음 조건을 만족한 조건을 찾는 것으로 변경하고 싶습니다. 예를 들어 9월 1일 , 9월 4일, 9월 8일 이렇게 3번 조건을 만족했다면, 가장 처음 만족한 9월 1일 조건만 찾으면 됩니다. 그래서 아래 부분을 a3 = CountIf(Condition1==true,15) == 1; 로 수정을 하면 되는 것이죠?? 여기서 3가지 질문이 있습니다. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 질문1 ) 수식을 보면, 29%이상 상승한 봉 (이하 '기준봉'이라 부르겠습니다.) 기준봉의 시가와 종가의 범위내에 오늘 종가가 형성된 것을 찾도록 되어 있습니다. 그런데, 기준봉의 종가 위나 시가 이하에 있는 것이 검색이 됩니다. 예를 들어, 7월 2일에 스튜디오드래곤 이라는 종목이 검색이 되는데, 이는 6월 19일 기준봉의 시가보다 아래에 있는 종목이라 검색이 되면 안됩니다. 어느 부분을 수정을 하면 될까요? 질문2 ) 7월 2일 롯데이노베이트 종목이 검색됩니다. 해당 종목도 조건에는 만족하지만, 기준봉이 뜨고 가장처음 조건을 만족한 것이 아닙니다. 해당 종목은 6월 28일에 처음 조건을 만족한 것입니다. 처음 문의드린 키움조거식을 수식으로 그대로 복사해서 만들면 6월 28일에 화살표가 뜨는데, 조건식으로 만들면 6월 28일에는 검색이 안되고 7월 2일에 검색이 됩니다. 어디서 잘못된 것일까요? 질무3) 시가총액 3천억 이상이라는 조건도 추가 가능할까요? 혹시 제 문의사항이 두서가 없으면 다시 정리해서 올리겠습니다.
종목검색
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-09-12 09:20:41.0

> 마을 님이 쓴 글입니다. > 제목 : 조건검색 도와주세요~ > 항상 빠르고 정확한 답변 감사드립니다. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 안녕하세요 예스스탁입니다. 올리신 내용은 키움수식 내용을 예스랭귀지 종목검색식으로 변환하고 해당 조건이 30일 이내 1회이상 발생한 종목을 찾게 변환해 드립니다. var :a(0),b(0),a1(False),a2(False),a3(False),d(False); A=ma(c,5); B=A[1]; a1 = A/B*100 < 100 ; a2 = c < ma(c,5) and c > ma(c,20) and o > c ; Condition1 = c[3]*1.29 < c[2] and c[2] > c and o[2] < c and Money[2] > 5500000000; a3 = CountIf(Condition1==true,15) >= 1; d = a1 and a2 and a3 ; if CountIf(d==true,30) >= 1 Then Find(1); 즐거운 하루되세요 > 마을 님이 쓴 글입니다. > 제목 : 수식변경 부탁드립니다. > 아래 수식을 한번에 30일치를 종목검색 할 수 있게 변경 부탁드립니다. *** 8봉내에서 상한가가 발생한 종목 중(a3) 에서 a1 과 a2 조건을 동시에 만족하는 첫번째 조건만을 찾는 검색입니다. (즉, 상한가 발생후 a1 과 a2를 만족하는 것이 4봉째, 5번째, 6번째 봉에서 발생하더라도 첫번째 만족한 4봉째만 검색이 되도록 하고 싶습니다. countsince 함수를 사용하였는데, 수식에 문제가 있다면 변경해주세요.) A=avg(c,5); B=A(1); a1 = A/B*100 < 100 ; a2 = c < ma(c,5,단순) and c > ma(c,20,단순) and o > c ; a3 = (c(3)*1.29 < c(2) and c(2) > c and o(2) < c and 거래대금(2) > 5500) or (c(4)*1.29 < c(3) and c(3) > c and o(3) < c and 거래대금(3) > 5500 ) or (c(5)*1.29 < c(4) and c(4) > c and o(4) < c and 거래대금(4) > 5500 ) or (c(6)*1.29 < c(5) and c(5) > c and o(5) < c and 거래대금(5) > 5500 ) or (c(7)*1.29 < c(6) and c(6) > c and o(6) < c and 거래대금(6) > 5500 ) or (c(8)*1.29 < c(7) and c(7) > c and o(7) < c and 거래대금(7) > 5500 ) or (c(9)*1.29 < c(8) and c(8) > c and o(8) < c and 거래대금(8) > 5500 ) or (c(10)*1.29 < c(9) and c(9) > c and o(9) < c and 거래대금(9) > 5500) or (c(11)*1.29 < c(10) and c(10) > c and o(10) < c and 거래대금(10) > 5500) or (c(12)*1.29 < c(11) and c(11) > c and o(11) < c and 거래대금(11) > 5500) or (c(13)*1.29 < c(12) and c(12) > c and o(12) < c and 거래대금(12) > 5500) or (c(14)*1.29 < c(13) and c(13) > c and o(13) < c and 거래대금(13) > 5500) or (c(15)*1.29 < c(14) and c(14) > c and o(14) < c and 거래대금(14) > 5500) ; d = a1 and a2 and a3 ; cnt = countsince(date!=date(1), d)==1 ; cnt && !cnt(1) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 위와 같은 답변을 받았습니다. 해당 조건이 30일 이내 1회이상 발생한 종목을 찾게 변환해 드립니다. ---> 이 부분이 의미가 전달이 잘 못 된 것 같습니다. 30일 이내에서 가장 처음 조건을 만족한 조건을 찾는 것으로 변경하고 싶습니다. 예를 들어 9월 1일 , 9월 4일, 9월 8일 이렇게 3번 조건을 만족했다면, 가장 처음 만족한 9월 1일 조건만 찾으면 됩니다. 그래서 아래 부분을 a3 = CountIf(Condition1==true,15) == 1; 로 수정을 하면 되는 것이죠?? 여기서 3가지 질문이 있습니다. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 질문1 ) 수식을 보면, 29%이상 상승한 봉 (이하 '기준봉'이라 부르겠습니다.) 기준봉의 시가와 종가의 범위내에 오늘 종가가 형성된 것을 찾도록 되어 있습니다. 그런데, 기준봉의 종가 위나 시가 이하에 있는 것이 검색이 됩니다. 예를 들어, 7월 2일에 스튜디오드래곤 이라는 종목이 검색이 되는데, 이는 6월 19일 기준봉의 시가보다 아래에 있는 종목이라 검색이 되면 안됩니다. 어느 부분을 수정을 하면 될까요? 질문2 ) 7월 2일 롯데이노베이트 종목이 검색됩니다. 해당 종목도 조건에는 만족하지만, 기준봉이 뜨고 가장처음 조건을 만족한 것이 아닙니다. 해당 종목은 6월 28일에 처음 조건을 만족한 것입니다. 처음 문의드린 키움조거식을 수식으로 그대로 복사해서 만들면 6월 28일에 화살표가 뜨는데, 조건식으로 만들면 6월 28일에는 검색이 안되고 7월 2일에 검색이 됩니다. 어디서 잘못된 것일까요? 질무3) 시가총액 3천억 이상이라는 조건도 추가 가능할까요? 혹시 제 문의사항이 두서가 없으면 다시 정리해서 올리겠습니다.