커뮤니티
관계연산자
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가 실행되었습니다.
뭐가 문제였는지요?
시스템상 버그인지, 사용상의 실수인지 가르쳐주시면 감사하겠습니다.
이전글