커뮤니티

종목검색식 문의 드립니다.

프로필 이미지
자아준
2018-03-14 22:10:33
199
글번호 117396
답변완료

첨부 이미지

먼저 일일이 답변 주심에 감사드립니다. 아래검색식을 제가 작성함에 있어 논리적으로 착각하거나 문제가 있는 것 같습니다. 그림과 같이 18.3.14일 장후에 기준봉을 1로 잡고 검색하면서 기준일 양봉( C > O )이라 설정하였는데 두산엔진 같은 경우 3.13일 음봉임에도 불구하고 검색되었습니다. 제가 생각 하기로 기준봉을 1로 잡으면 3.13일을 기준으로 검색되는 것으로 생각했는데 제가 착각하는지 무엇지 잘못인지 모르겠습니다. 1. 앞에 내용에서 제가 잘 못 생각한점이 있다면 알려 주시기 바라며 2. 식 뒷 부분(if CountIF(Condition1 == true, 검색기간) >= 검색회수 Then)에서 검색기간을 변경해도 검색되는 종목은 변함이 없는 것 같습니다. 3. 그리고 저의 의도되로 식을 수정해 주시면 고맙겠습니다 input : pe(20),per(20),이격1(90),이격2(110),거래량(1.4),몸통저(0.01),몸통대(100),검색기간(60),검색회수(1),N(10),n회(2); var: Body(0),Highbody(0),Lowbody(0),value(0); Body = Abs(c-o); Highbody = MaxList(Open,Close); Lowbody =MinList(Open,Close); var1= Disparity(60); var2=ma(c,5); var3=ma(c,10); var4=ma(c,20); var5=ma(c,33); var6=ma(c,60); var7=ma(c,120); var8=ma(v,60); value2 = max(var2,var3,var4,var5,var6); value3 = min(var2,var3,var4,var5,var6); Value1 =0; if CrossUp(c, var2) Then Value1 = Value1 + 1; if CrossUp(c, var3) Then Value1 = Value1 + 1; if CrossUp(c, var4) Then Value1 = Value1 + 1; if CrossUp(c, var5) Then Value1 = Value1 + 1; if CrossUp(c, var7) Then Value1 = Value1 + 1; if var1[1] >= 이격1 and var1[1] <= 이격2 and c > var2 and Value1 >= 1 and body >= C[1] *몸통저 and body <= C[1]*몸통대 and H-Highbody >= body *0.0 and H-Highbody <= body * 5 and Lowbody-L >= body *0.0 and Lowbody-L <= body * 5 and C > O and V >= V[1]*거래량 and var7[1] * (1+pe/100000) > var7[2] and CountIF(Value2 <= Value3 * (1+ per/100),N) >= N회 Then Condition1 =true ; Else Condition1 =False ; if CountIF(Condition1 == true, 검색기간) >= 검색회수 Then find(1);
종목검색
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2018-03-15 14:47:44

안녕하세요 예스스탁입니다. if CountIF(Condition1 == true, 검색기간) >= 검색회수 Then find(1); 검색기간이 60, 검색회수가 1이므로 작성하신 수식은 현재일 기준 최근 60일 중 지정한 조건이 1회이상 만족한 종목을 찾는 수식입니다. 기준봉이 1이면 단순히 전일기준으로 이전 60일 중 1회이상 만족한 종목입니다. 조건 자체가 전일 만족한 것을 찾는 수식이 아닙니다. 문의하신 내용이면 이전60일중 1회이상이라는 조건이 필요없습니다. 최종 종목검색 수식 내용을 단순히 아래와 같이 지정하셔야 합니다. if Condition1 == true Then find(1); 즐거운 하루되세요 > 자아준 님이 쓴 글입니다. > 제목 : 종목검색식 문의 드립니다. > 먼저 일일이 답변 주심에 감사드립니다. 아래검색식을 제가 작성함에 있어 논리적으로 착각하거나 문제가 있는 것 같습니다. 그림과 같이 18.3.14일 장후에 기준봉을 1로 잡고 검색하면서 기준일 양봉( C > O )이라 설정하였는데 두산엔진 같은 경우 3.13일 음봉임에도 불구하고 검색되었습니다. 제가 생각 하기로 기준봉을 1로 잡으면 3.13일을 기준으로 검색되는 것으로 생각했는데 제가 착각하는지 무엇지 잘못인지 모르겠습니다. 1. 앞에 내용에서 제가 잘 못 생각한점이 있다면 알려 주시기 바라며 2. 식 뒷 부분(if CountIF(Condition1 == true, 검색기간) >= 검색회수 Then)에서 검색기간을 변경해도 검색되는 종목은 변함이 없는 것 같습니다. 3. 그리고 저의 의도되로 식을 수정해 주시면 고맙겠습니다 input : pe(20),per(20),이격1(90),이격2(110),거래량(1.4),몸통저(0.01),몸통대(100),검색기간(60),검색회수(1),N(10),n회(2); var: Body(0),Highbody(0),Lowbody(0),value(0); Body = Abs(c-o); Highbody = MaxList(Open,Close); Lowbody =MinList(Open,Close); var1= Disparity(60); var2=ma(c,5); var3=ma(c,10); var4=ma(c,20); var5=ma(c,33); var6=ma(c,60); var7=ma(c,120); var8=ma(v,60); value2 = max(var2,var3,var4,var5,var6); value3 = min(var2,var3,var4,var5,var6); Value1 =0; if CrossUp(c, var2) Then Value1 = Value1 + 1; if CrossUp(c, var3) Then Value1 = Value1 + 1; if CrossUp(c, var4) Then Value1 = Value1 + 1; if CrossUp(c, var5) Then Value1 = Value1 + 1; if CrossUp(c, var7) Then Value1 = Value1 + 1; if var1[1] >= 이격1 and var1[1] <= 이격2 and c > var2 and Value1 >= 1 and body >= C[1] *몸통저 and body <= C[1]*몸통대 and H-Highbody >= body *0.0 and H-Highbody <= body * 5 and Lowbody-L >= body *0.0 and Lowbody-L <= body * 5 and C > O and V >= V[1]*거래량 and var7[1] * (1+pe/100000) > var7[2] and CountIF(Value2 <= Value3 * (1+ per/100),N) >= N회 Then Condition1 =true ; Else Condition1 =False ; if CountIF(Condition1 == true, 검색기간) >= 검색회수 Then find(1);