커뮤니티

stime 조건으로 사용자 함수 호출시 문제입니다.

프로필 이미지
매너모드
2020-01-08 14:27:22
162
글번호 134994
답변완료
------시스템식----------------------------------- If sTime == 150300 Then { change_para_value(); } ----------- change_para_value 사용자 함수---------------- MessageLog("함수호출"); change_para_value = 999; 1초봉에서 이렇게 시스템식을 실행하면 15시03분에만 함수호출이 되는게 아니라 매초마다 함수호출이 발생합니다. 무엇이 문제일까요?
사용자 함수
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2020-01-09 14:12:52

안녕하세요 예스스탁입니다. 1 If sdate == 20200108 and sTime == 150300 Then { var1 = change_para_value(); } plot1(var1); 위 수식을 지표식으로 차트에 적용하면 실제 지표는 2020년1월 8일 15시 3분봉 이전에는 0이지만 해당일시의 봉부터는 999라는 값을 그리게 됩니다. 하지만 디버깅창에는 차트 전체봉에 "함수호출"이라는 메세지가 출력됩니다. 랭귀지의 체계가 if조건이 만족하면 하단의 실행문의 내용을 읽어 실행을 하고 if조건이 만족하지 않아도 하단의 실행문의 내용은 읽지만 지정한 행위를 하지 않을 뿐입니다. 변수에 값할당(실행)은 지정한 if 조건이 만족한 봉에서만 되지만 함수가 매봉 호출되는 이유는 해당함수에 대해 이전봉의 참조를 대비하기 위함입니다. 즐거운 하루되세요 > 매너모드 님이 쓴 글입니다. > 제목 : stime 조건으로 사용자 함수 호출시 문제입니다. > ------시스템식----------------------------------- If sTime == 150300 Then { change_para_value(); } ----------- change_para_value 사용자 함수---------------- MessageLog("함수호출"); change_para_value = 999; 1초봉에서 이렇게 시스템식을 실행하면 15시03분에만 함수호출이 되는게 아니라 매초마다 함수호출이 발생합니다. 무엇이 문제일까요?