커뮤니티

질문입니다.

프로필 이미지
회원
2007-10-08 07:00:41
977
글번호 13725
답변완료
#아래의 수식은 N일전까지 연속으로 하락한일수를 구하는 사용자함수입니다. (N의 값은 0:당일까지 1:전일까지) 예를들어 전일까지 5일동안 연속으로 하락하였다면, CNLLL(1)==5의 값이 되도록 식을 만들려고 하는데... 값이 안나오네요... 수정부탁드립니다. input :N(numeric); var : cnt(0),dncnt(0); dncnt = 0; if daylow(N) <= daylow(1+N) and daylow(1+N) <= daylow(2+N) Then dncnt = dncnt + 1; Else dncnt = 0; CNLLL = DNCNT;
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2007-10-08 11:02:28

안녕하세요 예스스탁입니다. if문만으로 구성할 경우 N일의 증감에 따라 계속적으로 if문 수식의 내용을 변경해야 하므로 for문과 같이 사용하시면 됩니다. 전일자 기준으로 5일연속 하락이면 5 4일연속 하락이면 4값을 리턴합니다. input : N(5); var : Cnt(0), Dcnt(0); Dcnt = 0; for cnt = N DownTo 1 { if dayclose(cnt) < dayclose(cnt+1) Then Dcnt = Dcnt+1; Else Dcnt = 0; } plot1(Dcnt); 연속하락이 아니라 N일동안 몇번에 하락이 있었는지에 대해 수식을 작성하신것이라면 아래의 식을 사용하시면 됩니다. input : N(5); var : Cnt(0), Dcnt(0); Dcnt = 0; for cnt = N DownTo 1 { if dayclose(cnt) < dayclose(cnt+1) Then Dcnt = Dcnt+1; } plot1(Dcnt); 즐거운 하루되세요 > CJ_MINSUNG 님이 쓴 글입니다. > 제목 : 질문입니다. > #아래의 수식은 N일전까지 연속으로 하락한일수를 구하는 사용자함수입니다. (N의 값은 0:당일까지 1:전일까지) 예를들어 전일까지 5일동안 연속으로 하락하였다면, CNLLL(1)==5의 값이 되도록 식을 만들려고 하는데... 값이 안나오네요... 수정부탁드립니다. input :N(numeric); var : cnt(0),dncnt(0); dncnt = 0; if daylow(N) <= daylow(1+N) and daylow(1+N) <= daylow(2+N) Then dncnt = dncnt + 1; Else dncnt = 0; CNLLL = DNCNT;