커뮤니티

수식문의

프로필 이미지
이심전심
2025-11-04 07:33:04
58
글번호 227616
답변완료

var : cnt(0) ; input : period( 200) ,period2(100), intv(5);
HH=Highest(H, period); cnt=Countif(Crossup(H,HH), period2);
위와같이 하면 HH를 돌파하는 횟수를 모두 표현할 수 있는데 모든 횟수를 알고 싶은 게 아니라 이전 돌파와 다음 돌파 사이에 intv봉(5) 간격이 있어야 횟수가 +1이 되도록 카운트를 하고 싶습니다. 예를 들어 intv가 5 이면 4일전에 돌파가 있고 2일전에 돌파가 있어도 cnt 는 +2가 되지 않고 +1이 되도록 하고 싶습니다. ※ 주석도 함께 부탁드립니다. 수식을 이해 못하면 활용을 할 수가 없더군요. 항상 친절한 답변에 감사드립니다.^^

검색
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-11-04 10:14:42

안녕하세요 예스스탁입니다. 최초 돌파시 봉번호 저장한 이후에 이후 돌파시에 이전 돌파시 봉번호와 현재봉번호 비교해 Intv이상일때만 봉번호 저장을 하게 하시면 됩니다. 봉번호가 전봉과 다른봉이 Intv이상 경과후 돌파가 발생한 봉입니다. input : period(200) ,period2(100), intv(5); var : HH(0),cnt(0),Upindex(0); HH = Highest(H, period); #상향돌파할 때 봉번호 저장 #최초(Upindex == 0)는 조건없이 저장하고 #최초 이후에는 Upindex대비 intv봉갯수 이상 경과후 돌파만 Upindex 저장 if CrossUp(H,HH[1]) and (Upindex == 0 or (Upindex > 0 and Index >= Upindex+intv)) Then { Upindex = Index; } //100봉동안 Upindex변경횟수 저장 cnt=Countif(Upindex!= Upindex[1], period2); 즐거운 하루되세요