커뮤니티
문의 드립니다
제목
예스랭귀지에서 C,O 값 기준 도지 판정 / CountIf 동작 / TL_New 수평선 종가 돌파 / 경과봉 숫자표시 구현 관련 문의
본문
안녕하세요.
현재 예스랭귀지로 패턴 기반 지표를 작성하면서 몇 가지 동작 방식이 궁금해 문의드립니다.
아래 네 가지 부분에 대해 확인 부탁드립니다.
1. C,O 값 기준 도지 판단 시 계산 기준
몸통 크기를 기준으로 도지를 판단하려고 아래와 같이 작성했습니다.
body = Abs(C - O)
// 예: 10틱 이하 도지
if body <= PriceScale*10 then
isDoji = 1;
그런데 실제 차트에서는 몸통이 비교적 큰 봉도 간혹 도지로 판정되는 경우가 있습니다.
그래서 궁금한 점은
예스랭귀지에서
C
O
값이
현재 형성 중인 봉 기준으로 실시간 업데이트 되는지
아니면 항상 완성된 봉 기준으로 계산되는지
입니다.
만약 진행 중인 봉 값이 반영될 수 있다면
완성된 봉 기준으로 계산하려면 다음과 같은 방법을 사용하는 것이 맞는지 궁금합니다.
예)
C[0], O[0]
BarStatus
또는 다른 권장 방법이 있는지도 문의드립니다.
2. CountIf 함수의 정확한 의미
관리자님 예제에서 아래와 같은 코드가 있었습니다.
CountIf(C>O,3) == 3
이 조건이 의미하는 것이
최근 3봉이 모두 양봉이라는 의미인지
또는
최근 3봉 중 양봉이 3개라는 의미인지
정확한 동작 방식이 궁금합니다.
즉,
최근 3개의 봉이 모두 양봉일 때만 참이 되는지 확인 부탁드립니다.
3. TL_New 수평선 기준 종가 돌파 판정 구현
지표에서 TL_New로 생성한 수평선을 여러 개 누적 관리하고 있습니다.
이 수평선을 기준으로
종가가 수평선 가격 + N틱 이상 상향 돌파 → 표시
종가가 수평선 가격 - N틱 이상 하향 돌파 → 표시
같은 기능을 구현하려고 합니다.
이와 관련하여 궁금한 점은 다음 두 가지입니다.
(1) 가장 최근 수평선 1개만 기준으로 판정하는 방법
예를 들어
TL1, TL2, TL3 ...
같이 여러 개의 수평선을 관리할 때
가장 최근에 생성된 수평선 1개만 기준으로 비교하는 일반적인 구현 방법이 있는지 궁금합니다.
예스랭귀지에서 권장되는 방식이나 간단한 예제가 있는지도 문의드립니다.
(2) 종가 돌파 판정 시 일반적으로 사용하는 조건식
수평선 기준 돌파 판정을 아래와 같은 방식으로 작성하는 것이 일반적인지 궁금합니다.
C >= 기준값 and C[1] < 기준값
C <= 기준값 and C[1] > 기준값
또는 TL 오브젝트와 함께 사용할 때
더 안정적인 구현 방식이 따로 있는지도 문의드립니다.
4. TL_New 수평선 생성 후 특정 경과봉(6,12,18,23) 자체에 숫자 표시하는 방법
TL_New로 생성한 수평선마다 생성 후 봉수를 AG1, AG2, AG3 ... 같은 변수로 관리하고 있습니다.
수평선 위치가 아니라 해당 경과봉 자체에 숫자를 표시하고 싶습니다.
예를 들어 수평선 생성 후
6번째 봉 → 그 6번째 봉에 "6" 표시
12번째 봉 → 그 12번째 봉에 "12" 표시
18번째 봉 → 그 18번째 봉에 "18" 표시
23번째 봉 → 그 23번째 봉에 "23" 표시
표시 위치는
양봉이면 봉 아래
음봉이면 봉 위
로 표시하려고 합니다.
예를 들어 아래와 같은 방식으로 구현하려고 하는데
if AG1 = 6 then
Text_New(sDate, sTime, L - PriceScale*10, "6");
이와 같은 방식이 일반적인 구현 방법인지 궁금합니다.
또한 같은 봉에서 조건이 여러 번 평가될 경우
Text_New가 중복 생성될 수 있는지 궁금합니다.
이 경우 보통
별도의 표시 여부 변수를 두는 방식
또는 봉 마감 시점 기준 실행
중 어떤 방식이 권장되는지도 문의드립니다.
확인 부탁드립니다.
감사합니다.
답변 1
예스스탁 예스스탁 답변
2026-03-09 10:55:45