커뮤니티
사용법
2026-05-13 20:37:46
87
글번호 232032
수고하십니다
질문 231962번의 추가입니다
제가 질문을 잘못 올린듯합니다
프로그램을 진행하며 내부적으로 쭉~~~계산하다가
마지막 봉일때 그 값을 보여지게 하고 싶습니다,,,
예를 들어 매월 25일날의 거래량을 더해 횟수로 나누면 25일날만의 평균거래량이 되는데,,,
(실제로 이걸 구할려는게 아니라 예로ㅡ 뭐 한달간의 평균거래량을 구할려 한다해도)
이때 프로그램상 전체 라인이 각 봉마다 실행되다보니
계산 결과를 보기위해 messagelog 함수를 쓰면 매 봉마다 결과가 나오게 됩니다
하여 마지막봉인지 체크하기 위하여 LastBarOnChart == 1을 사용하면 프로그램이 looping 이 걸리더군요,,,
messagelog함수가 마지막 봉일때만 계산 결과를 보여주게 하고 싶다는겁니다,,,
if LastBarOnChart == 1 then
messagelog("~~~");
이렇게 하면 제 생각엔 마지막봉에서 결과를 보여줄지 알았더니 looping이 걸리더라는거..
답변 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으로 전화주시기 바랍니다.
즐거운 하루되세요