커뮤니티

사용법

프로필 이미지
atmskill
2026-05-13 20:37:46
87
글번호 232032
답변완료

수고하십니다

질문 231962번의 추가입니다


제가 질문을 잘못 올린듯합니다

프로그램을 진행하며 내부적으로 쭉~~~계산하다가

마지막 봉일때 그 값을 보여지게 하고 싶습니다,,,


예를 들어 매월 25일날의 거래량을 더해 횟수로 나누면 25일날만의 평균거래량이 되는데,,,

(실제로 이걸 구할려는게 아니라 예로ㅡ 뭐 한달간의 평균거래량을 구할려 한다해도)

이때 프로그램상 전체 라인이 각 봉마다 실행되다보니

계산 결과를 보기위해 messagelog 함수를 쓰면 매 봉마다 결과가 나오게 됩니다

하여 마지막봉인지 체크하기 위하여 LastBarOnChart == 1을 사용하면 프로그램이 looping 이 걸리더군요,,,

messagelog함수가 마지막 봉일때만 계산 결과를 보여주게 하고 싶다는겁니다,,,


if LastBarOnChart == 1 then

messagelog("~~~");


이렇게 하면 제 생각엔 마지막봉에서 결과를 보여줄지 알았더니 looping이 걸리더라는거..


NH트레이더 (NH투자증권)
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2026-05-15 15:24:43

안녕하세요 예스스탁입니다. 1 if LastBarOnChart == 1 then messagelog("~~~"); 이 수식이 마지막봉에서만 출력이 맞습니다. 다만 전략실행차트에 적용하고 현재 장중이면 시세 수신시 마다 출력되게 됩니다. 장이 끝난 상태에서 적용하면 마지막봉에 한번만 출력됩니다. 2 현재 장중이고 최근 시시수신시 출력값만 보도자 하시면 마찬가지로 디버깅창에 기존 출력된것을 지우서 새로 적게 작성하셔야 합니다. ClearDebug; if LastBarOnChart == 1 then messagelog("%.2f",bbdn); 3 위 내용을 지표로 작성해 적용해 보면 별도로 루핑이 없는데 아마 순간적으로 시세가 많거나 혹은 수식상 복잡한 계산 내용이 있는 것 같습니다. 해당 부분은 확인이 어려우므로 02-3453-1060으로 전화주시기 바랍니다. 즐거운 하루되세요