글 목차
근거와 범위
참고 자료는 방향성 변화, 지그재그 동작 및 ATR에 대해 설명합니다. 각 레그당 하나의 고정 임계값을 사용하는 종가 전용 감지기는 독립적인 구현 제안이며, 수익성 결과 또는 기존에 발표된 지표의 정확한 복제본이 아닙니다.
실전 적용 절차
- 구간 초기화방향, 임시 극한값 및 참조 ATR를 저장하십시오.
- 잠정 극값 갱신같은 방향으로 계속 움직이면 현재 후보만 바뀝니다.
- 반전 폭 측정거리를 고정된 임계값과 비교하십시오.
- 이벤트 게시임계값에 도달하면 극값 발생 시각과 확정 시각을 저장합니다.
- 상태 전환새로 고정한 임계값으로 반대 방향 구간을 시작합니다.
스윙 지속 시간은 이벤트에 의해 결정됩니다.
상승 구간은 세 봉 또는 서른 봉 이어질 수 있습니다. 탐지기는 진행 중인 구간의 가장 높은 종가를 보관하고 충분히 하락한 뒤에만 그 고점을 확정합니다. 따라서 확인 지연은 오른쪽 봉 수를 고정한 피벗과 달리 가변적입니다. 임계값을 높이면 작은 변동을 더 많이 무시하지만 대개 전환점을 더 늦게 인식합니다.
내재적 시간 연구는 백분율 임계값 [1]를 통해 방향 변화를 설명합니다. TradingView의 ZigZag는 자체 피벗 구조를 가지고 있으며 최종 세그먼트 [2]를 수정할 수 있습니다. 이 문서에서는 대신 확정된 이벤트의 불변 스트림을 명시하며, 현재 후보는 별도로 저장됩니다. 변경 가능한 임시 엔드포인트는 명시적으로 임시적인 경우 허용되지만, 이를 과거 거래 신호로 제시하는 것은 허용되지 않습니다.
탐지기는 규칙상 완료된 움직임을 표시할 뿐, 확정 고점이 미래까지 포함한 최고 가격이라고 주장하지 않습니다. 가격은 바로 다시 반전할 수 있습니다. 코드와 보고서에서 사건 탐지, 추세 해석, 거래 관리를 분리하여 한 층의 정확성을 다른 층의 성공으로 혼동하지 마십시오.
거래 구간이 시작될 때 변동성 임계값을 고정합니다.
제안 규칙은 새 구간 직전 봉의 ATR14에서 A_ref를 가져와 구간 내내 q×A_ref를 고정합니다. q=2는 연구 설정입니다. 트루 레인지와 선택한 평활화 방식을 명시하십시오. ATR 구현마다 다른 평활화 방식을 쓸 수 있습니다 [3]. 매 봉 임계값을 다시 계산하면 다른 탐지기가 됩니다.
장기간 지속되는 구간은 이전 변동성 체제의 임계값을 유지할 수 있습니다. 이는 안정적인 규칙을 위한 의도적인 절충안이며, 고정 방식이 경제적으로 더 우수하다는 증거는 아닙니다. 적응형 임계값을 연구하는 경우, 해당 버전을 별도로 등록하고 각 임계값 업데이트를 저장하십시오. 완성된 차트를 렌더링할 때 과거 임계값을 최신 ATR로 절대 교체하지 마십시오.
기준 모델은 봉의 고가와 저가 발생 순서를 지어내지 않도록 종가를 사용합니다. 필요한 과거 데이터가 준비된 뒤 첫 종가에서 UP으로 초기화하고, 시작값을 확정 저점으로 표시하지 않습니다. DOWN으로 전환할 때 현재 종가는 잠정 저점이 됩니다. 필요한 ATR가 없거나 영 이하이면 초기화 요건을 충족할 때까지 탐지를 멈춥니다.
state = UP; extreme = first_close; extreme_i = first_i
threshold = q * ATR[first_i-1]
for each closed bar t after first_i:
if state == UP:
if C[t] > extreme: extreme, extreme_i = C[t], t
elif extreme - C[t] >= threshold:
emit HIGH(extreme_i, confirmed_at=t, price=extreme)
state = DOWN; extreme, extreme_i = C[t], t
threshold = q * ATR[t-1]
else:
if C[t] < extreme: extreme, extreme_i = C[t], t
elif C[t] - extreme >= threshold:
emit LOW(extreme_i, confirmed_at=t, price=extreme)
state = UP; extreme, extreme_i = C[t], t
threshold = q * ATR[t-1]
수치적 확인 및 거래 실패 결과
가상 예에서 A_ref=1.5, q=2이므로 세 포인트 반전이 필요합니다. 종가는 100→102→105→104→103입니다. 하락은 두 포인트뿐이므로 105 고점은 아직 잠정값입니다. 다음 종가가 102이면 가격105의 HIGH 사건을 내보냅니다. 극값 발생은 세 번째 관측이고 확정은 여섯 번째입니다.
마지막 종가를 106으로 바꾸면 잠정 고점은 106으로 이동합니다. 아직 확정된 것이 없으므로 삭제된 숏 신호도 없습니다. 102까지 하락하여 고점을 확정한 뒤 DOWN 구간이 100에 도달하고 103으로 반등한다고 가정합니다. 해당 구간의 고정 임계값도 세라면 100 저점은 103에서 확정됩니다. 완성된 선은 극값들을 연결하지만 실제 판단은 102와 103에서 가능했습니다.
탐지가 정확해도 거래는 실패할 수 있습니다. 다음 시가101.8에 숏 진입하고 스톱105.2를 두면 계획한 가격 위험은 3.4포인트입니다. 가격이 106으로 반등하면 구조 가설이 실패하고 스톱 체결에 슬리피지가 생길 수 있습니다. 방향 전환 사건은 발생했지만 지속되지 않은 것이므로 탐지 오류와 구분하십시오.
경계 테스트에는 임계값과 같은 반전, 한 틱 작은 반전, 한 틱 큰 반전을 넣으십시오. 같은 값에서도 확정할지 미리 정하며, 이 기준 모델은 확정합니다. 같은 극값이 반복되면 기존 발생 시각을 유지하는지도 검사합니다. 현재 코드는 엄격히 더 높은 고점 또는 더 낮은 저점에서만 갱신합니다.
탐지기는 추세 지속 거래와 추세 반전 거래 중 어느 것을 선택하지 않습니다.
새로 확정된 방향 전환을 따르거나 반대로 거래하는 두 가설이 가능합니다. 제안 기준 모델은 다음 체결 가능한 시가에 새 방향을 따르고, 방금 확정한 극값 바깥에 스톱을 두며, 반대 방향 전환에 청산합니다. 역사적 차트 구간마다 유리한 해석을 따로 고르지 마십시오.
구조적 손절매는 확정 시점까지 상당히 멀리 떨어져 있을 수 있습니다. 거래 규모는 실제 진입점과 손절매점 사이의 거리, 예상 비용 및 포트폴리오 제약 조건을 반영해야 합니다. 비경제적인 설정은 주문 제출 전에 확보된 정보만을 사용하여 거부하십시오. 대기 주문이 이미 갭을 통해 체결된 경우, 위험이 매력적이지 않게 되었다는 이유만으로 해당 거래를 소급하여 취소할 수 없습니다.
백분율 임계값에는 고유한 분모 규칙이 필요합니다. 하락은 (peak−C)/peak로, 상승은 (C−trough)/trough로 표기합니다. 이러한 분모 규칙은 로그 수익률 공간에서 대칭적이지 않습니다. 로그 가격 차이를 이용하면 가격이 엄밀히 양수일 경우 대칭적인 대안을 만들 수 있습니다. 기준값이 0이거나 음수일 때는 일반적인 비율이 적합하지 않습니다.
실행 테스트는 캔들 내에서 둘 이상의 임계값을 넘는 급격한 변동을 재현해야 합니다. 종가만을 사용하는 기준선은 해당 종가에서의 상태 전환에 의해 지원되는 이벤트만 발생시키며, 모든 캔들 내 변동을 재구성할 수는 없습니다. 틱 기반 버전은 더 많은 이벤트를 생성할 수 있는데, 이는 입력 해상도의 변화이지 종가 구현의 오류를 의미하는 것은 아닙니다.
활동량과 기간을 구분하여 거래량 비교
긴 구간은 관측치가 더 많기 때문에 총 거래량이 더 큰 경우가 많습니다. 총 거래량, 캔들 수, 평균 거래량 및 가격 변동을 함께 저장합니다. 제안된 노력 특성은 거래량을 max(displacement, tick)로 나누지만, 단순히 비율이 크다고 해서 흡수가 이루어졌거나 참여자를 식별할 수는 없습니다.
HIGH가 확정될 때 extreme_i+1부터 confirmed_at까지의 활동은 관측된 반전 구간에 속합니다. 극값 이전에 쌓인 거래량과 구분하고 극값이 발생한 봉을 어느 구간에 넣을지 정하십시오. 경계가 확정 때 알려져도 계산된 특징을 이전 극값 시점에 알았던 것처럼 쓰면 안 됩니다.
진입, 스톱, 수량 규칙을 같게 두고 확정 시점에 동일 시간대 기준 RVOL을 더하는 비교 실험이 가능합니다. 변동성별 그룹 안에서 순수익을 개선하는지, 아니면 스프레드가 넓은 빠른 봉만 고르는지 확인하십시오. 완료 거래만 보여 기회 수 변화를 숨기지 않도록 거부 신호와 누락 거래량을 기록합니다.
테스트 민감도 및 초기화 효과
1.5, 2, 3 같은 소수의 q 후보를 사전 등록하고 개발 데이터에서만 선택한 뒤 최종 테스트 전에 고정합니다. 사건 수, 포지션이 없는 시간, 봉 수와 ATR 단위의 확인 지연, 스톱을 건너뛰는 갭 빈도를 보고하십시오. q=2.03에서만 남고 2.0과 2.1에서 사라지는 성과는 추가 조사가 필요합니다.
접두사 리플레이는 현재의 임시 극값이 이동하는 동안에도 모든 HIGH 및 LOW 값을 보존해야 합니다. 각 이벤트마다 상태, 극값 타임스탬프, A_ref 및 임계값을 저장하십시오. 리플레이를 더 일찍 시작하면 초기화 및 워밍업에 대한 민감도를 테스트할 수 있습니다. 그렇지 않으면 임의로 설정한 첫 번째 방향이 예상치 못한 긴 기록 구간에 영향을 미칠 수 있습니다.
고정 임계값과 지속적으로 적응하는 임계값을 서로 다른 등록 모델로 비교합니다. 또한 고정 임계값이 안정기 이후 많은 이벤트를 발생시킬 수 있는 고변동성 전환과, 매우 적은 이벤트를 발생시킬 수 있는 안정기 전환을 살펴봅니다. 이러한 진단은 행동을 설명하며, 수익률을 관찰한 후 유리한 체제를 선택하는 것은 또 다른 연구 과제가 될 것입니다.
흔한 실수
미완성된 마지막 구간에서의 거래
임시 엔드포인트는 이동할 수 있습니다. 확정된 과거 신호 스트림에서 해당 엔드포인트를 제외하십시오.
미래 ATR는 초기 변동폭을 개선합니다.
이후 변동성을 기준으로 이전 임계값을 다시 계산하는 대신 동시 참조값 ATR를 저장합니다.
유리한 대로 꼬리와 종가를 섞어 쓰기
좋아 보이는 극값에는 꼬리를 쓰고 스톱을 피하려 종가를 쓰면 정보와 체결 규칙이 일관되지 않습니다.
이 기법을 사용하기 전 체크리스트
자신의 데이터로 확인한 뒤 각 항목에 체크하세요. 진행 상태는 이 브라우저에 저장되며, 전략의 수익성을 인증하지는 않습니다.
자주 묻는 질문
ATR 지그재그가 퍼센트 지그재그보다 더 나은가요?
실험으로 검증할 가설입니다. ATR는 척도를 조정하지만 과거 참조 기간, 평활화 방식, 임계값 고정 정책도 추가하므로 이 선택들도 테스트해야 합니다.
HIGH가 확정된 후 가격이 더 높은 고점을 경신할 수 있을까요?
네. HIGH는 시장의 최종 고점이나 확실한 하락 예측을 의미하는 것이 아니라, 탐지기 규칙에 따라 완료된 추세 구간을 나타냅니다.
연구 출처
각 출처는 옆에 설명된 정의나 근거를 뒷받침합니다. 의사코드, 가상 예시와 제안된 매개변수는 별도로 검증해야 합니다.
- The Theory of Intrinsic Time: A PrimerJames B. Glattfelder and Richard B. Olsen. 방향 전환과 여러 척도에 관한 내용을 읽었습니다. 제안한 ATR 버전의 백테스트는 아닙니다. 확인일: .
- Zigzag indicatorTradingView. 구성 방식, 잠정 피벗, 마지막 구간의 한계를 읽었습니다. 확인일: .
- Average True RangeTradingView. 트루 레인지와 평활화 방식의 선택을 읽었습니다. 확인일: .
관련 기법
위험 안내
이 내용은 학습과 연구 설계를 위한 것이며 금융 조언이 아닙니다. Backtest는 과거 데이터 시뮬레이션으로, 미래 성과를 보장하지 않으며 실제 거래를 주문하지 않습니다. 이 라이브러리의 기법이 모두 앱에 구현된 기능은 아닙니다. 관련 정보: 검증 방법 및 학습 센터.
실제 자금을 투입하기 전에 규칙을 검증하세요
앱 지원 범위, 데이터와 개별 모의 거래를 확인하세요. 고급 탐지 기법은 별도 구현이 필요할 수 있습니다.
App Store에서 Backtest 다운로드