글 목차
근거와 범위
CME는 지지/저항 맥락을 제공하고, scikit-learn은 연결 개념을 정의하며, Osler의 FX 연구는 스톱 캐스케이드를 논의합니다. 하지만 이 중 어느 것도 제안된 순차적 클러스터링 탐지기의 수익성을 검증하지 않습니다.
실전 적용 절차
- 피벗을 받으세요동일 유형의 확인된 극값을 사용하십시오.
- 구성 조건을 검사합니다새 가격을 적용한 후 전체 직경을 확인하십시오.
- 독립 접촉 조건을 확인합니다가격이 먼저 영역을 벗어나고 충분한 시간 간격이 있어야 합니다.
- 버전을 게시하세요경계, 중앙값 및 구성원 식별자를 고정합니다.
- 반응을 관찰하세요별도로 정의된 돌파 또는 회복 전략을 적용하십시오.
영역은 이미 알려진 관측값을 나타냅니다.
CME는 지지·저항 기준에 과거 고점과 저점을 포함합니다[1]. 소프트웨어에서는 서로 가까운 확정 과거 극값들의 집합이라고 부르는 편이 정확합니다. 이것이 현재 매수·매도자가 대기 중이거나 다음 방문에 반등한다는 증거는 아닙니다.
제안된 클러스터 레코드에는 cluster_id, HIGH 또는 LOW 유형, 멤버 피벗 ID, 최소값, 최대값, 중앙값, 최신 확인 시간 및 독립 터치 횟수가 포함됩니다. 영역을 사용하기 전에 모든 멤버가 확인되어야 합니다. 동일 고가 영역은 가격 구조를 설명하며, 이를 주문장 벽이라고 부르려면 실제 주문장 증거가 필요합니다.
탐지기와 이를 쓰는 전략을 분리합니다. 같은 영역은 역추세 매매, 추세 지속 돌파, 이후 지지·저항 역할 전환 재시험에 쓰일 수 있습니다. 특정 가설에서 영역이 무효가 되어도 그 영역을 만든 과거 관측은 지우지 않습니다.
가까운 점만 사슬로 잇지 말고 전체 폭을 제한합니다
클러스터 생성 때 epsilon=max(2 ticks,0.15×A_ref)를 설정하고 A_ref를 고정합니다. 제안한 연구 매개변수입니다. 새 피벗을 더한 뒤 전체 최댓값에서 최솟값을 뺀 값이2epsilon 이내일 때만 추가합니다. 이 직경 제한은 완전 연결의 최대 거리 개념과 비슷하지만[2], 여기의 순차 알고리즘이 AgglomerativeClustering의 완전한 구현은 아닙니다.
여러 클러스터가 조건을 충족하는 경우, 가장 가까운 중앙값을 선택하고 동점일 경우 가장 오래된 클러스터 ID 순으로 결정합니다. 그렇지 않으면 새 클러스터를 생성합니다. W=200 막대와 min_separation=5는 연구 시작점입니다. 특정 역할 반전 프로토콜이 정의될 때까지 HIGH 클러스터와 LOW 클러스터를 분리된 상태로 유지합니다.
새 클러스터는 독립 접촉 한 번으로 시작합니다. 이후 구성 피벗의 기하학적 소속은 갱신하되, 시간 간격과 가격 이탈 조건이 둘 다 충족될 때만 접촉 수를 늘립니다. 구성원 수와 접촉 수를 구분하지 않으면 횡보 구간이 겉보기 증거를 부풀립니다.
활성 클러스터가 만료되면 ID를 재활용하는 대신 최종 기록을 고정합니다. 동일한 가격의 새 클러스터는 새로운 객체로 간주됩니다. 엡실론과 해당 참조 ATR를 클러스터와 함께 저장하여 추후 변동성 변경으로 인해 기존 영역이 새로운 피벗을 흡수하도록 조용히 확장되는 것을 방지합니다.
on_confirmed_pivot(p):
candidates = active_clusters_of_same_kind(p)
eligible = [c for c in candidates
if max(c.max,p.price)-min(c.min,p.price) <= 2*c.eps]
c = nearest_median_then_oldest_id(eligible)
if c is None:
c = new_cluster_with_single_member(p, touch_count=1,
last_touch_index=p.index)
return
independent = p.index-c.last_touch_index >= min_separation
independent &= price_departed_frozen_zone_between(c.last_touch_index,p.index,c)
add_pivot_once(c,p)
if independent:
c.touch_count += 1
c.last_touch_index = p.index
if c.touch_count >= 2:
publish_new_zone_version(c, available_at=p.confirmed_at)
# Active candidates retain their original zone-version snapshot.
수치로 영역을 구성하고 손실 reclaim을 살펴봅니다
합성 예시: 참조 ATR=2와 tick=0.01는 epsilon=0.30를 생성하고 최대 직경은 0.60입니다. 100.00, 100.35 및 100.55에서 독립적으로 확인된 고점은 중앙값 100.35를 갖는 [100.00,100.55]를 생성합니다. 새로운 고점 100.80는 가장 가까운 기존 멤버와의 차이가 0.25에 불과함에도 불구하고 전체 폭이 0.80가 되므로 기각됩니다.
가장 가까운 구성원과의 거리만으로는 부족합니다.100,100.4,100.8,101.2는 인접 차이가 작아도 전체 범위가 넓습니다. 그 안 어디서든 나중 반응을 재시험 성공이라 부르면 탐지기가 틀렸음을 검증할 유용한 기준을 잃습니다.
가상 성공 경로는100.55 위100.90까지 오른 뒤100.20에 마감해 영역 복귀를 이용한 숏 후보를 만듭니다. 진입100.10, 손절101.00, 목표98.30이면 비용 전2R 목표입니다. 실패 경로는101.10에 마감하고 영역 위에 머뭅니다. 이미 체결된 숏의 손실은 스톱 규칙대로 남겨야 하며, 나중에 영역을 위로 옮겨 판정을 구제하면 안 됩니다.
새 피벗이 전체 직경 한계에 정확히 닿는 경우와 한 틱 벗어나는 경우를 검증합니다. 적격 중앙값 두 개에서 같은 거리인 점도 만듭니다. 같은 데이터라면 사전 순회 순서나 먼저 연 차트와 무관하게 같은 클러스터를 선택해야 합니다.
연속 방문 횟수가 아닌 개별 방문 횟수를 세십시오.
100.3 부근의 연속 다섯 봉은 보통 다섯 독립 검증이 아닌 한 번의 방문입니다. 새 접촉을 세려면 종가가 영역에서 고정 ATR의 최소 한 배만큼 벗어나고, 최소 다섯 봉의 시간이 지나야 합니다. 이 조건이 영역 밖에서 돌아오는 재방문을 정의합니다.
가격 이탈 사건에도 고유 시각이 필요합니다. 나중에 확정된 피벗의 발생 시점은 이탈 정보가 이용 가능해지기 전일 수 있습니다. 정한 사건 순서를 따르고 미래의 이탈을 이전 접촉에 할당하지 않습니다. 확정 지연이 있으면 발생·확정 시각을 모두 저장해 접촉 자격을 재구성합니다.
경과 시간, 독립 재방문, 이탈 폭을 영역 특징으로 쓸 수 있지만 미래 접촉으로 과거 점수를 높이면 안 됩니다. 반복 검증이 영역을 강화하는지 더 쉽게 깨지게 하는지는 실증 문제입니다. 접촉 수는 보정된 확률이 아니며 접촉마다 십 퍼센트포인트를 더하려면 탐지기 이상의 증거가 필요합니다.
돌파와 가격 반응에는 별도 전략 규칙이 필요합니다
제안된 회복 기본형은 종가가 고정 영역 안으로 돌아올 때까지 기다린 뒤 후속 체결 가능한 시점에 진입합니다. 제안된 돌파 기본형은 max+buffer 너머의 종가를 요구하며 별도의 재시험 대기 기간을 정의할 수 있습니다. 각 기본형에는 자체 무효화, 스톱, 목표와 만료 규칙이 필요합니다. 영역 탐지기가 이를 선택하지는 않습니다.
Osler의 공식 요약 보고서에 따르면 손절매 주문이 [3] 통화 변동을 가속화하는 데 기여할 수 있다는 증거가 있습니다. 이 메커니즘은 OHLCV 고점 클러스터 주변의 손절매 주문 수량을 결정하거나 스윕이 반전될 것을 보장하지는 않습니다. 더 강력한 데이터가 다른 명칭을 뒷받침하지 않는 한, 관찰된 이벤트를 돌파, 종가 돌파 또는 회복으로 설명하십시오.
주문이 사용한 정확한 영역 버전을 저장합니다. 새 구성 피벗이 더 넓거나 이동한 미래 후보용 버전을 만들더라도 기존 거래는 처음 근거를 유지합니다. 손절·문맥 갱신을 허용하면 원래 설정을 다시 그리지 말고 활성화 시각이 있는 명시적 행동으로 기록합니다.
캔들 거래량은 해당 영역에서의 거래량을 나타내는 것이 아닙니다.
OHLCV는 영역 내 거래 비율이 아닌 해당 캔들의 총 거래량을 제공합니다. 영역에 닿는 모든 캔들의 거래량을 합산하여 가격 대비 거래량이라고 부르는 것은 특히 가격 변동폭이 큰 캔들의 경우 정확하지 않습니다. 가격 분포를 추정하려면 거래 수준 데이터 또는 공개된 근사치가 필요합니다.
후보 특징은 돌파 봉 RVOL, 동등 기준 대비 되돌림 거래량, 독립 방문별 평균 활동입니다. 거래량을 형상 조건과 분리해 구성 피벗을 바꾸지 않고 그 조건만 제거해 비교할 수 있게 합니다. 활동 증가는 다른 환경을 뜻할 수 있지만 체결 조건을 악화시킬 수도 있습니다.
같은 세션 시간대와 비교해 장중 활동을 정규화하고 누락 데이터와 실제 낮은 거래량을 구분합니다. 방문 길이가 다르면 단순 합계 대신 시간당 비율이나 같은 길이 구간을 비교합니다. 가격 범위와 변동성을 통제한 뒤에도 거래량이 추가 정보를 주는지 보고합니다.
영역 이력과 실제 기회 집합을 검증합니다
스트리밍 재생과 일괄 처리가 같은 영역 버전을 내야 합니다. 테스트 사례에 사슬 연결, 등거리 동점, W 만료, 한 방문 속 여러 봉, 피벗 확정 지연을 포함합니다. 과거 거래마다 저장한 version_id를 참조해야 하며 오늘의 차트만으로 옛 판단을 재구성할 수 없습니다.
단일 피벗 전략을 다른 모든 조건이 동일한 2터치 및 3터치 전략과 비교합니다. 영역 개수, 대기 시간, 재방문 확률, 중복, 노출도 및 순수익률을 보고합니다. 재방문하지 않은 영역도 연구 기회 집합에 포함되며, 성공적인 거래를 발생시킨 영역만 유지하면 결과에 편향이 생길 수 있습니다.
중복되는 영역에는 포트폴리오 규칙이 필요합니다. 인접한 여러 영역에서 동일한 시장 이벤트에 대한 주문이 발생하여 신호 ID별로 분산된 것처럼 보이지만 집중된 노출이 발생할 수 있습니다. 등록된 정책에 따라 후보 영역을 병합하거나 동시 노출 한도를 설정한 후 분석을 위해 원래의 탐지기 관측값을 유지하십시오.
흔한 실수
사슬은 무한한 영역으로 확장됩니다.
최근접 쌍 거리는 클러스터의 전체 범위를 제한하지 않습니다.
횡보하는 봉들이 접촉 수를 부풀립니다
가격 이탈 조건이 없으면 한 번의 긴 체류가 여러 독립 증거처럼 보입니다.
기하학적 모양에서 숨은 주문을 추론하기
극단적인 값들이 모여 있는 것은 손절매 또는 휴면 유동성을 직접적으로 측정한 지도가 아닙니다.
이 기법을 사용하기 전 체크리스트
자신의 데이터로 확인한 뒤 각 항목에 체크하세요. 진행 상태는 이 브라우저에 저장되며, 전략의 수익성을 인증하지는 않습니다.
자주 묻는 질문
구역 중심은 평균이어야 할까요, 아니면 중앙값이어야 할까요?
중앙값은 이상치에 덜 민감하지만, 트리거는 일반적으로 명확한 경계를 참조해야 합니다. 중심이 전략에 실제로 영향을 미치는 경우 중심 정의를 비교하십시오.
과거 지지 영역과 새로운 저항 영역을 합칠 수 있나요?
확정 돌파와 재시험 후 역할 전환 규칙을 정의할 수 있습니다. 근처 가격을 모두 자동 병합하지 말고 상태 이력을 유지합니다.
연구 출처
각 출처는 옆에 설명된 정의나 근거를 뒷받침합니다. 의사코드, 가상 예시와 제안된 매개변수는 별도로 검증해야 합니다.
- Support and ResistanceCME Group. 과거 극값과 가격 영역의 교육적 설명을 확인했습니다. 확인일: .
- AgglomerativeClusteringscikit-learn. 완전 연결과 단일 연결의 정의를 확인했습니다. 확인일: .
- Stop-Loss Orders and Price Cascades in Currency MarketsCarol L. Osler, Federal Reserve Bank of New York. 공식 초록만 확인했습니다. 이 영역 탐지기의 백테스트가 아닙니다. 확인일: .
관련 기법
위험 안내
이 내용은 학습과 연구 설계를 위한 것이며 금융 조언이 아닙니다. Backtest는 과거 데이터 시뮬레이션으로, 미래 성과를 보장하지 않으며 실제 거래를 주문하지 않습니다. 이 라이브러리의 기법이 모두 앱에 구현된 기능은 아닙니다. 관련 정보: 검증 방법 및 학습 센터.
실제 자금을 투입하기 전에 규칙을 검증하세요
앱 지원 범위, 데이터와 개별 모의 거래를 확인하세요. 고급 탐지 기법은 별도 구현이 필요할 수 있습니다.
App Store에서 Backtest 다운로드