커뮤니티

문의드립니다^^

프로필 이미지
태발군
2013-05-06 22:18:08
197
글번호 62871
답변완료
수고 많으십니다. 다음 문장을 표현해보고 싶습니다. "5일이평이에 20일이평을 돌파한 후 봉의 종가가 5일선아래로 내려올 때까지 최고가를 Hvalue라고 한다." 아래 수식과 같이 표현해 봤는데 차트에 적용시키니 컴터가 무언가 계속 계산은 하는데 결과물이 출력되지 않더군요ㅡ.ㅡ;;; --------------------------------------------------- Input : shortPeriod(5), longPeriod(20); var: sma(0), lma(0), count(0), hvalue(0); sma=ma(c,5); lma=ma(c,20); count=0; if CrossUp(sma,lma) then { while c>=sma begin count=count+1; hvalue=h[count]; end; } ------------------------------------------------------ 위의 수식에서 문제점이 무엇인지도 지적해주셨으면 합니다^^
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2013-05-07 11:45:14

안녕하세요 예스스탁입니다. while문은 지정한 조건이 만족하면 계속 수행을 하게 됩니다. 작성하신 식은 무한루프를 돌게되는 내용입니다. 아래와 같이 작성하시면 됩니다. Input : shortPeriod(5), longPeriod(20); var: sma(0), lma(0), count(0), hvalue(0); sma=ma(c,5); lma=ma(c,20); #골든크로스 발생하면 Hvalue에 해당봉의 고가를 초기값으로 세팅 if CrossUp(sma,lma) then{ Hvalue = H; } #종가가 5이평보다 크고 고가가 Hvalue에 저장된 값보다 크면 Hvalue에 해당봉고가를 저장 if C > sma Then{ if H > Hvalue Then Hvalue = H; } plot1(Hvalue); 즐거운 하루되세요 > 태발군 님이 쓴 글입니다. > 제목 : 문의드립니다^^ > 수고 많으십니다. 다음 문장을 표현해보고 싶습니다. "5일이평이에 20일이평을 돌파한 후 봉의 종가가 5일선아래로 내려올 때까지 최고가를 Hvalue라고 한다." 아래 수식과 같이 표현해 봤는데 차트에 적용시키니 컴터가 무언가 계속 계산은 하는데 결과물이 출력되지 않더군요ㅡ.ㅡ;;; --------------------------------------------------- Input : shortPeriod(5), longPeriod(20); var: sma(0), lma(0), count(0), hvalue(0); sma=ma(c,5); lma=ma(c,20); count=0; if CrossUp(sma,lma) then { while c>=sma begin count=count+1; hvalue=h[count]; end; } ------------------------------------------------------ 위의 수식에서 문제점이 무엇인지도 지적해주셨으면 합니다^^