글 목차
근거와 범위
Sierra Chart는 Numbers Bars와 bid/ask 체결량의 대각선 비교를 설명합니다. TradingView의 봉 내부 가격 방향 분류가 곧 거래소가 제공한 체결 주도 방향인 것은 아닙니다. Bybit는 taker 측 구분을 제공하는 피드의 예입니다. 제안한3× 임계값의 수익성을 여기서 검증한 것은 아닙니다.[1] [2] [3]
실전 적용 절차
- 피드 의미론을 검증합니다taker 측 구분과 가격 방향으로 추정한 대용치를 구분합니다.
- 체결을 집계합니다고정 가격표를 사용하고 중복 거래를 제거하세요.
- 대각선으로 비교하세요비율, 최소 수량과 분모가 영일 때의 규칙을 유지합니다.
- 가격 변동 추이를 확인하세요추세 지속과 실패는 별도 상태 기계를 따릅니다.
- 현실적인 체결을 재현합니다데이터 수신 시각과 실행 가능한 체결을 사용합니다.
색상을 해석하기 전에 먼저 라벨을 이해하세요.
ask 거래량은 보통 매수자가 매도호가를 받아 체결한 수량이고, bid 거래량은 매도자가 매수호가를 받아 체결한 수량입니다. 거래소가 taker 측 구분을 제공하면 그 스키마를 따릅니다. 호가나 틱 규칙으로 추론했다면 추론 방법과 미분류 범주를 남깁니다. 여기서 검토한 Bybit 문서의 publicTrade.S는 taker 측 구분입니다.[3]
TradingView의 풋프린트는 봉 내부 가격 방향으로 관측치를 분류하며, 이용 가능한 과거 데이터의 세분성은 달라질 수 있습니다. [2] 따라서 매수·매도라는 이름이 플랫폼마다 같은 대상을 측정하는 것은 아닙니다. 분류된 델타가 음수인 양봉이 자동으로 오류인 것은 아닙니다. 시가에서 종가까지의 움직임과 부호를 부여한 체결량 합계는 서로 다른 질문에 답합니다.
풋프린트는 거래 내역을 기록합니다. 하지만 모든 대기 주문, 주문 앞의 전체 대기열, 또는 체결되지 않은 숨겨진 유동성을 모두 보여주지는 않습니다. 대규모의 공격적인 매수세가 집중된 거래는 상당한 수의 소극적인 매도세와 만나 가격 움직임을 멈추게 할 수 있습니다. 이러한 경우, 해당 거래를 추세 지속 또는 실패한 시도로 간주하기 전에 이후의 가격 반응을 살펴봐야 합니다.
동일 행 비율과 대각선 비교를 분리합니다.
Sierra Chart가 설명하는 대각선 비교에서는 가격 p의 매도호가 체결량을 바로 아래 가격의 매수호가 체결량과 비교하고, 가격 p의 매수호가 체결량을 바로 위 가격의 매도호가 체결량과 비교합니다. [1] 이 글에서는 한 틱 단위의 행을 사용하며, ask[p]가 3×bid[p−tick] 이상이고 ask[p]가 30단위 이상이며 분모인 매수호가 체결량이 양수일 때 상승 불균형으로 정의합니다.
연속된 세 개의 적격 행은 제안된 누적 불균형을 형성합니다. 비율, 최저값 및 필수 길이는 연구 설정이며 검증된 보편적 상수가 아닙니다. 최소 수량은 명시된 단위를 가져야 합니다. 30 선물 계약, 주식 또는 암호화폐 단위는 경제적으로 매우 다른 의미를 가집니다.
대응 분모가 영이면 비율을 자동으로 무한대로 두지 않고 상대 체결량이 영인 상태로 따로 기록합니다. 영인 분모를 허용하는 플랫폼은 다른 버전입니다. 작은 단독 체결이 과장된 신호를 만들지 않도록 최소 거래량을 명시해 별도로 검증합니다.
연속적이라는 것은 고정된 그리드에서 인접한 가격 행을 의미합니다. 누락되거나 비어 있는 행은 검색 전에 제거할 수 없습니다. 제거할 경우 분리된 불균형이 겹쳐 보일 수 있기 때문입니다. 그리드를 유지하고 가장 높은 행 또는 가장 낮은 행이 표시된 막대 범위 외부에 있는 이웃 행을 필요로 하는지 여부를 정의하십시오.
for p in ordered_price_rows(closed_bar):
a = ask_volume.get(p, 0)
b = bid_volume.get(p-tick, 0)
eligible[p] = b > 0 and a >= 30
buy_imbalance[p] = eligible[p] and a >= 3*b
runs = consecutive_true_rows(buy_imbalance)
stack = first((run for run in runs if len(run) >= 3), default=None)
if stack is not None:
zone_low, zone_high = row_bounds(stack)
signal_available_at = closed_bar.received_at
6행 계산 및 무효화된 클러스터
가상 행의 bid/ask 체결 수량은100.00에서40/10, 100.25에서20/120, 100.50에서10/80, 100.75에서12/40, 101.00에서9/15, 101.25에서8/10입니다.100.25의 ask120을100.00의 bid40과 비교하면3×입니다. ask80은 bid20의4×이며 ask40도 bid10의4×입니다.
이 세 인접 행은 비율과30단위 하한을 모두 충족합니다.101.00의 ask 체결량15는 작은 분모 때문에 비율이 커지더라도 수량 하한을 충족하지 못합니다. 그림이 동일한 수치를 써서 강조한 스택을 수작업으로 확인할 수 있습니다.
실패 사례를 예로 들어보겠습니다. 공격적인 매수세가 저항선 바로 아래에 형성되고, 가격이 저항선 위에서 마감되지 못하며, 다음 캔들이 해당 매수세 아래로 하락하는 경우입니다. 이는 흡수 가설과 일치하지만, 이러한 패턴만으로는 소극적인 매도자를 식별하거나 추세 반전을 보장할 수 없습니다.
표시된 300% 비교는 두 가지 정의된 거래량의 비율이며, 75% 성공 확률이 아닙니다. 비율을 거래 확률로 변환하려면 독립적으로 추정된 조건부 결과 분포와 그 불확실성이 필요합니다.
추세 지속과 실패에는 별도 상태 기계가 필요합니다
지속 매수 전략을 실행하려면 이전에 고정된 가격대를 돌파하고, 해당 영역 위에서 종가가 형성되며, 매수 조건을 충족하는 매수 스택이 필요합니다. zone_low를 지지하는 첫 번째 재시험이 5개 캔들 이내에 발생하고, 재시험 캔들의 고가 위에서 종가가 형성될 때까지 기다립니다. 다음 실행 가능한 이벤트 발생 시 진입하고, 미리 설정한 버퍼를 두고 zone_low 아래에 손절매를 설정합니다. 확인 전에 가격이 zone_low 아래에서 종가가 형성되면 주문을 취소합니다.
실패 후 공매도안은 저항에서 매수 측 스택이 나타나고, 가격이 영역 아래로 다시 마감한 뒤 사건 저점을 하향 돌파해야 합니다. 손절가는 사건 고점 위입니다. 전환 규칙, 실행 시점, 추가 위험을 검증 전에 정의하지 않았다면 같은 통계 안에서 손실 롱을 숏으로 바꾸면 안 됩니다.
두 버전 모두 해당 펀딩·차입 비용과 현실적인 체결을 포함해야 합니다. 빠른 시장에서는 봉 완성을 기다리는 동안 움직임 대부분이 끝날 수 있습니다. 이 지연도 방법의 일부이며, 나중에 완성된 풋프린트로 더 이른 시점의 체결을 부여할 근거가 아닙니다.
영역이 행 중심 사이인지 행 전체 경계까지인지 기록합니다. 한 틱 격자의 위·아래 경계를 손절 설정 전에 명시합니다. 손절 폭이 좁으면 사분의 일 틱이나 한 틱 차이도 위험 배수를 크게 바꿀 수 있습니다.
과거 거래 재생은 실시간 집계와 일치해야 합니다
시퀀스 식별자, 거래소 시각, 수신 시각, 거래 ID와 미분류 거래량을 저장합니다. 문서화한 키로 중복을 없애고 당시 이용 가능 정보에 맞춰 정정을 처리합니다. 과거 데이터가 일 분 단위 대용치이고 실시간은 개별 체결이라면 관측의 세분성과 분류가 달라집니다.
수익성을 비교하기 전에 동일한 피드와 집계 규칙을 사용하여 리플레이를 실행하십시오. 시장 심도 스냅샷은 스냅샷 간의 모든 실행 내역을 정확하게 재구성할 수 없습니다. 시퀀스 공백이 발생하는 경우, 영향을 받는 캔들을 표시하고 결과에서 누락된 거래 방향을 추론하는 대신 미리 정의된 품질 정책을 적용하십시오.
행당 틱 수를 변경하면 비율과 스택 길이가 모두 변경됩니다. 후보를 생성할 때 행 크기를 고정하고 향후 전체 데이터 세트를 기반으로 한 자동 크기 조정을 피하십시오. 적응형 크기 조정이 필요한 경우, 별도의 전략으로 과거 데이터 기간과 가용성 지연 시간을 정의하십시오.
네트워크 지연을 반영해야 하는 결정에는 수신 시간을 사용하십시오. 거래소 타임스탬프는 이벤트 순서를 정하는 데 유용하지만 거래자가 이미 해당 이벤트를 수신했음을 증명하지는 않습니다. 지연된 전달 및 순서가 뒤바뀐 메시지를 시뮬레이션하여 종가 기반 신호의 재현성이 유지되는지 확인하십시오.
스택이 큰 거래량 이상으로 정보를 더하는지 검증합니다
동일한 가격 돌파에 대해 풋프린트 필터 없음, 총 거래량만 사용, 델타만 사용, 그리고 스택 불균형을 비교하십시오. 진입 및 청산 시점을 고정하거나, 타이밍 분석과 선택 분석을 명확하게 분리하십시오. 스택은 종종 활성 캔들에서 발생하므로, 공간적 패턴이 거래량 외에 추가적인 정보를 제공하는지 검토하십시오.
R 단위 순기대값, 거래 데이터 누락률, 미체결, 드로다운, 지연과 스프레드 민감도를 보고합니다. 훈련 데이터에서 임계값과 최소 수량을 고른 뒤 최종 시간순 테스트를 고정합니다. 거절된 후보도 포함해 거래 빈도 감소가 드러나게 합니다.
가상 테이블에 올바른 색상을 적용하는 것은 연산 및 렌더링 기능을 검증하는 것입니다. 하지만 실제 거래 데이터에 대한 실행 가능한 전략의 유효성을 검증하는 것은 아닙니다. 유용한 결론은 관찰된 개선 사항이 유효한 데이터 분류, 시장, 기간, 비용 및 실패 조건을 제시하는 것입니다.
흔한 실수
초록색 셀이 많으면 가격 상승을 보장한다고 가정하기
공격적인 매수세는 상당한 규모의 소극적 매도세에 맞닥뜨릴 수 있으며, 가격 반응은 여전히 중요합니다.
대기 주문장 전체를 추론하기
풋프린트는 모든 미결 주문이나 대기열 위치가 아니라 실행 내역을 설명합니다.
프록시 테스트 및 다른 라이브 피드 거래
해상도와 분류 방식이 다르면 차트가 비슷해 보이더라도 신호가 달라질 수 있습니다.
이 기법을 사용하기 전 체크리스트
자신의 데이터로 확인한 뒤 각 항목에 체크하세요. 진행 상태는 이 브라우저에 저장되며, 전략의 수익성을 인증하지는 않습니다.
자주 묻는 질문
300%의 불균형이 75%의 승리 확률을 의미하는 것일까요?
아니요. 두 거래량을 비교한 것이며 결과 확률의 추정이 아닙니다.
일반 OHLCV가 정확한 풋프린트를 재구성할 수 있습니까?
아니요. 근사치는 가능하지만 정확한 가격별 체결 분포와 체결 주도 방향 구분은 알 수 없습니다.
연구 출처
각 출처는 옆에 설명된 정의나 근거를 뒷받침합니다. 의사코드, 가상 예시와 제안된 매개변수는 별도로 검증해야 합니다.
- Numbers BarsSierra Chart. Numbers Bars의 bid/ask 체결량 정의와 대각선 비교. 확인일: .
- Volume footprint charts: a complete guideTradingView. 봉 내 가격 방향 분류 및 과거 데이터 세분화 제한 사항. 확인일: .
- Public TradeBybit. 거래 식별자, 시각과 taker 측 구분 스키마. 전략 수익성 주장은 없습니다. 확인일: .
관련 기법
위험 안내
이 내용은 학습과 연구 설계를 위한 것이며 금융 조언이 아닙니다. Backtest는 과거 데이터 시뮬레이션으로, 미래 성과를 보장하지 않으며 실제 거래를 주문하지 않습니다. 이 라이브러리의 기법이 모두 앱에 구현된 기능은 아닙니다. 관련 정보: 검증 방법 및 학습 센터.
실제 자금을 투입하기 전에 규칙을 검증하세요
앱 지원 범위, 데이터와 개별 모의 거래를 확인하세요. 고급 탐지 기법은 별도 구현이 필요할 수 있습니다.
App Store에서 Backtest 다운로드