커뮤니티

검색함수가 정상작동하지않습니다.

프로필 이미지
여유로운투자
2023-08-30 07:47:56
1172
글번호 171967
답변완료
input : period(48); var : nflagh(0),nflagCnt(0); if nflagcnt!= 0 Then nflagcnt = nflagcnt + 1; var1 = BarIndex; if BarIndex+1 >= period Then { if NthHighestBar(1,h,period)==0 //&& NthHighestBar(1,h,period)[1]!=0 Then { Find(1); } } Else { if nflagh < h Then { nflagh = h; nflagcnt = 1; } if LastBarOnChart==1 Then if nflagcnt==1 //&& nflagcnt[1] != 1 Then Find(1); } 48봉중 최고가인 검색식을작성했습니다. 신규주나 생긴지 얼마안되는 것은 즉 48봉 미만인경우는 아래 else를타고 48봉 이상이 존재하는 주식은 if 문을 타도록 구현했는데요 지표에서는 잘 작동하는데 검색식으로는 위에 해당하는종목이 검색이안됩니다. 예를들어 오늘 뷰노같은 경우는 아에 검색식에 뜨지 않습니다. 디버깅해보니 NthHighestBar 함수 존재 유무에따라 검색이 되고 안되는 거같은데 이거 NthHighestBar 함수가 파라미터에 들어오는수만큼 없는경우는 검색식인경우 정상작동하지 않는 거같은데요 확인 요청드립니다. 아 해당검색식은 월봉에서 찾는걸로 수행했습니다 월봉상 48벙미만인정목은 해당함수때문에아에검색동닥이안하네요 ㅠㅜ 그리고해당함수에문제가있다면 우회해서 제가짜고싶은로직은 어떻게구현해야하나요?
검색
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2023-08-30 13:44:49

안녕하세요 예스스탁입니다. 수식은 계산에 필요한 최소봉수(MaxBarsBack) 이후에 계산을 하게 됩니다. 수식에 NthHighestBar(1,h,period)가 있기 때문에 내부적으로 MaxBarsBack이 48로 고정으로 잡히게 됩어 48개 이상 봉이 없는 종목은 검색되지 못합니다. 아래와 같이 작성하시면 MaxBarsBack를 1로 잡히게 할수 있습니다. 루프로 현재봉에서 첫봉까지 가면서 최고가를 계산하고 이전봉이 48개봉 이전이면 루프를 멈추게 됩니다. input : period(48); var : hh(0),cnt(0); hh = 0; For cnt = 0 to Index { if (hh == 0 or (hh > 0 and h[cnt] > hh)) and cnt < period Then hh = h[cnt]; #for문 빠져나감 if cnt >= period Then cnt = Index+1; } if h == hh Then Find(1); 즐거운 하루되세요 > 여유로운투자 님이 쓴 글입니다. > 제목 : 검색함수가 정상작동하지않습니다. > input : period(48); var : nflagh(0),nflagCnt(0); if nflagcnt!= 0 Then nflagcnt = nflagcnt + 1; var1 = BarIndex; if BarIndex+1 >= period Then { if NthHighestBar(1,h,period)==0 //&& NthHighestBar(1,h,period)[1]!=0 Then { Find(1); } } Else { if nflagh < h Then { nflagh = h; nflagcnt = 1; } if LastBarOnChart==1 Then if nflagcnt==1 //&& nflagcnt[1] != 1 Then Find(1); } 48봉중 최고가인 검색식을작성했습니다. 신규주나 생긴지 얼마안되는 것은 즉 48봉 미만인경우는 아래 else를타고 48봉 이상이 존재하는 주식은 if 문을 타도록 구현했는데요 지표에서는 잘 작동하는데 검색식으로는 위에 해당하는종목이 검색이안됩니다. 예를들어 오늘 뷰노같은 경우는 아에 검색식에 뜨지 않습니다. 디버깅해보니 NthHighestBar 함수 존재 유무에따라 검색이 되고 안되는 거같은데 이거 NthHighestBar 함수가 파라미터에 들어오는수만큼 없는경우는 검색식인경우 정상작동하지 않는 거같은데요 확인 요청드립니다. 아 해당검색식은 월봉에서 찾는걸로 수행했습니다 월봉상 48벙미만인정목은 해당함수때문에아에검색동닥이안하네요 ㅠㅜ 그리고해당함수에문제가있다면 우회해서 제가짜고싶은로직은 어떻게구현해야하나요?