커뮤니티

사용자함수는 기본차트완성봉에서는 무조건 동작하나요?

프로필 이미지
캐빈이야
2010-06-09 13:12:30
753
글번호 30341
답변완료
기본차트 1분봉이고 참조1차트는 5분봉일때 if (stime == 090400 or stime == 090900) then { var1 = 돌파함수(c,o,l,h,var2); // var2는 돌파함수에서 StringRef로 받아들임 } if (stime == 090500) then { var2 = ""; } messagelog("%s",var2); 이런식으로 만들었습니다. 그럼 해당시간에서만 돌파함수가 실행되어야 된다고 생각하는데, 실제 해보면 기본차트가 완성될때마다 동작하고 있네요..... 확인하는 방법은 var2값은 messagelog로 찍어보면 stime이 090400일때 출력이 되고. 090500일때 미출력이고 090600일때부터는 계속 미출력이 정답이라고 생각됩니다. 090400 출력 090500 미출력 090600 출력 <- 미출력이 맞지 않나요? 090700 출력 <- 미출력이 맞지 않나요? 090800 출력 <- 미출력이 맞지 않나요? 위의 3개의 시간에서는 var2가 찍히지 않아야 된다고 생각됩니다. 왜냐면 돌파함수를 호출하지 않았기때문입니다. 그런데 값이 찍힙니다. 왜그럴까요?
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2010-06-09 15:22:26

안녕하세요 예스스탁입니다. if (stime == 090400 or stime == 090900) then { var1 = 돌파함수(c,o,l,h,var2); // var2는 돌파함수에서 StringRef로 받아들임 } if (stime == 090500) then { var2 = ""; } messagelog("%s",var2); 이전값 계산과 함수내에 어떤 이전값을 필요로 하는 내용이 있는지 알수 없으므로 내부 연산을 위해 사용된 함수는 매봉 호출이 되게 되고 if조건이 맞는 경우에는 var1에 저장을 실행하고 if조건이 맞지 않는 경우에는 저장하는 행위를 하지 않습니다. 참고하시기 바랍니다. 즐거운 하루되세요 > 캐빈이야 님이 쓴 글입니다. > 제목 : 사용자함수는 기본차트완성봉에서는 무조건 동작하나요? > 기본차트 1분봉이고 참조1차트는 5분봉일때 if (stime == 090400 or stime == 090900) then { var1 = 돌파함수(c,o,l,h,var2); // var2는 돌파함수에서 StringRef로 받아들임 } if (stime == 090500) then { var2 = ""; } messagelog("%s",var2); 이런식으로 만들었습니다. 그럼 해당시간에서만 돌파함수가 실행되어야 된다고 생각하는데, 실제 해보면 기본차트가 완성될때마다 동작하고 있네요..... 확인하는 방법은 var2값은 messagelog로 찍어보면 stime이 090400일때 출력이 되고. 090500일때 미출력이고 090600일때부터는 계속 미출력이 정답이라고 생각됩니다. 090400 출력 090500 미출력 090600 출력 <- 미출력이 맞지 않나요? 090700 출력 <- 미출력이 맞지 않나요? 090800 출력 <- 미출력이 맞지 않나요? 위의 3개의 시간에서는 var2가 찍히지 않아야 된다고 생각됩니다. 왜냐면 돌파함수를 호출하지 않았기때문입니다. 그런데 값이 찍힙니다. 왜그럴까요?