커뮤니티

관계연산자

프로필 이미지
메두사
2010-04-15 13:19:58
745
글번호 29357
답변완료
60일 기간내 스윙하이가 있는지 없는지 체크를 했습니다. var2 = SwingHigh(1, high,1,1,60); if var2 == -1 then messagelog("없음"); else messagelog("%.f",var2); 관계연산자인 == 을 사용했으나, var2 == -1 True 인 경우인데 if문이 무시되고 else가 실행되었습니다. 뭐가 문제였는지요? 시스템상 버그인지, 사용상의 실수인지 가르쳐주시면 감사하겠습니다.
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2010-04-15 15:17:44

안녕하세요 예스스탁입니다. 수식의 문제나 시스템의 버그가 아닙니다. var2 = SwingHigh(1, high,1,1,60); 위 식은 최근 60봉 기간안에 좌우측1개봉의 고가보다 큰 고가가 없으면 -1값이 발생하게 되는데 최근 60봉 중에 한봉이라도 조건에 맞는 봉이 있으면 -1값이 안나오게 됩니다. 그러므로 if var2 == -1 then messagelog("없음"); else messagelog("%.f",var2); 에서 messagelog("%.f",var2);가 발생되는것은 최근 60봉기준으로 -1이 나오는 봉이 없다는 것입니다. 지표로 plot1(SwingHigh(1, high,1,1,60)); 을 그려보시면 매봉 var2값에 어떤 값이 할당되는지 보실 수 있습니다. 즐거운 하루되세요 > 메두사 님이 쓴 글입니다. > 제목 : 관계연산자 > 60일 기간내 스윙하이가 있는지 없는지 체크를 했습니다. var2 = SwingHigh(1, high,1,1,60); if var2 == -1 then messagelog("없음"); else messagelog("%.f",var2); 관계연산자인 == 을 사용했으나, var2 == -1 True 인 경우인데 if문이 무시되고 else가 실행되었습니다. 뭐가 문제였는지요? 시스템상 버그인지, 사용상의 실수인지 가르쳐주시면 감사하겠습니다.