글 목차
근거와 범위
원래 커뮤니티 게시물은 수익을 보고했지만 규칙의 일부는 비공개로 유지했습니다. 독립적인 검증은 이루어지지 않았습니다. 아래의 공개된 내용은 별도의 연구 가설이며, 해당 실적을 그대로 재현한 것이 아닙니다.
실전 적용 절차
- 직전 시장 상태 확인VWAP가 충분히 평평하고, 과거 종가가 기준선의 위아래를 정해진 횟수만큼 오간 조건을 요구합니다.
- 밴드 복구를 감지하세요이벤트 이전 스냅샷을 사용하여 하위 대역과 대상을 고정합니다.
- 다이버전스 확정오른쪽 확인 봉이 완성될 때까지 기다린 뒤 가격 피벗 시점의 CVD를 비교합니다.
- 남은 기회를 확인하세요목표가가 이미 닿았거나 실제 체결 가격 기준 보상/위험 비율이 부족한 후보는 제외합니다.
- 포지션 관리고정 손절가, 고정 평균 목표가와 사전에 정한 시간 청산을 사용합니다.
이익 주장이 입증하는 바는 무엇인가
Rogue-seeker는 VWAP 밴드, CVD 및 자체 블록을 사용하여 연초부터 게시 시점까지 세후 이익 $103,750와 프로핏 팩터 2.15를 보고했습니다. [1] 검토한 자료에는 감사된 거래 시계열이 없으며 일부 임계값은 비공개입니다. 아이디어의 출발점으로만 다뤄야 합니다. 읽기 쉬운 차트나 자신감 있는 설명만으로 다른 구현도 비슷한 수익을 올린다고 입증할 수는 없습니다.
검증이 필요한 가정은 두 표준편차를 벗어나면 곧 반전해야 한다는 주장입니다. 장중 관측치에는 시간적 의존성이 있고 세션 중 가격 생성 과정도 바뀔 수 있습니다. 두 시그마 밴드는 VWAP로 돌아올 확률95%를 보장하지 않으며, 손절보다 먼저 목표에 닿는다는 보장은 더더욱 아닙니다.
이 문서에서는 세 가지 결정 사항을 구분합니다. 이전 시장이 범위와 유사한지 여부, 밴드 이탈이 복구되었는지 여부, 그리고 CVD 분기가 확인되었는지 여부입니다. 정의되지 않은 볼륨 프로파일 노드 또는 비공개 블록은 제외됩니다. 이러한 항목을 추가하려면 자체 데이터 가용성 및 결정 타임스탬프를 포함하는 별도의 사양이 필요합니다.
밴드와 직전 시장 상태 정의
체결 수량을 가중치로 사용하여 세션 앵커부터 μ=Σqp/Σq와 σ²=Σq(p−μ)²/Σq를 누적 계산합니다. 수치적으로 안정적인 순차 업데이트를 구현합니다. 이는 이 글에서 선택한 추정 방식이며 모든 플랫폼의 계산과 일치할 필요는 없습니다. TradingView는 앵커, 소스와 밴드 설정을 제공합니다. [2] 신호를 비교하기 전에 계산 구현부터 대조합니다.
제안하는 횡보장 필터는 직전20개 봉, |VWAP[t−1]−VWAP[t−6]|≤0.2A, 그리고 직전20개 봉에서 종가의 VWAP 대비 위아래가 최소 세 번 바뀌는 조건을 요구합니다. A는 ATR14[t−1]입니다. 종가가 VWAP와 정확히 같으면 이전 쪽을 유지하고 교차로 세지 않습니다. 이 임계값들은 연구를 위해 선택한 설정입니다.
t 시점의 이벤트 발생 조건은 L[t]<μ[t−1]−2σ[t−1]와 C[t]가 동일한 하단 밴드 위에 있어야 합니다. target_ref=μ[t−1]는 고정합니다. 이후 해당 저점은 양쪽에 두 개의 캔들이 있는 피벗 조건을 충족해야 합니다. 동일한 재설정 기간 내에서 이전에 확인된 가격 피벗 대비, 가격은 최소 b=max(2 ticks,0.1A)만큼 낮아야 하고, CVD는 높아야 합니다. 확인 후, 이전 캔들의 고가보다 높고 target_ref보다 낮으며, 이벤트 발생 후 5개 캔들 이내에 종가가 형성되어야 합니다. 중간에 있는 캔들이 이미 목표가를 터치한 경우 취소합니다.
최대 하나의 활성 이벤트만 유지하십시오. 필요한 왼쪽 캔들 두 개가 없거나, 피벗 확인 전에 이벤트 저점이 무효화되었거나, CVD 세그먼트가 누락되었거나, 재설정 불일치가 있는 이벤트는 거부하십시오. 최종 값뿐만 아니라 이전 가격 피벗부터 이벤트 피벗까지의 흐름 완전성을 확인하십시오. 다음 호가가 보상/위험 테스트를 통과하지 못하더라도 신호가 발생하면 이벤트를 소비하십시오. 이후 매력적인 호가가 발생하더라도 event_id를 되살릴 수는 없습니다.
at_event_close(t):
if active_event or not complete_prior_band_ATR_regime_history: return
if prior_range_regime and L[t]<lower[t-1] and C[t]>lower[t-1]:
create_event(target=VWAP[t-1],event_low=L[t],A=ATR[t-1],
buffer=max(2*tick,0.10*ATR[t-1]),start=t,expiry=t+5,
session_id=session_id(t),anchor_id=anchor_id(t),
cutoff=session_end-5_minutes,state=AWAITING)
on_completed_bar(now):
if event.state!=AWAITING: return
if changed_session_or_anchor(event,now) or received_close_time(now)>=event.cutoff:
event.state=EXPIRED; return
if now>event.expiry or target_touched_after_event_through(now):
event.state=CANCELED; return
if event_low_no_longer_a_valid_pivot_candidate:
event.state=CANCELED; return
if not pivot_confirmed_left2_right2 or not previous_confirmed_pivot: return
if not same_reset_and_complete_classified_CVD_segment_between_pivots:
event.state=REJECTED; return
if price_lower_low_by_frozen_buffer and cvd_higher_low
and C[now]>H[now-1] and C[now]<event.target:
stop=min_low_since_event-event.buffer
event.state=CONSUMED
check_expected_RR_then_order_on_next_quote_before_cutoff()
# A consumed event permits at most one submission; rejected quotes do not rearm it.
# Session-close and anchor-reset timers terminate pending events without another bar.
가격 피벗 시점의 CVD 비교
CVD는 공격적인 매수량에서 공격적인 매도량을 뺀 값을 누적합니다. Sierra Chart는 AskVolume−BidVolume 구현 및 필요한 과거 데이터([3])에 대한 문서를 제공합니다. 다른 데이터 피드는 거래를 다르게 분류할 수 있습니다. 분류 방법, 상품, 계약 및 재설정 규칙을 일관되게 유지하십시오. 동일한 지표 이름이 측정값의 동일함을 의미하지는 않습니다.
두 가격 피벗의 타임스탬프에서 CVD를 읽으십시오. CVD에서 매력적인 저점을 임의로 선택하여 관련 없는 가격 저점에 연결하지 마십시오. 누적 재설정의 한쪽 피벗은 반대쪽 피벗과 직접 비교할 수 없습니다. 더 낮은 가격 저점에서 더 높은 CVD 값이 나타나는 것은 특정 기관이 공급을 흡수하고 있다는 것을 나타내는 것이 아니라 단순한 관찰 결과일 뿐입니다.
레짐 필터는 과거 데이터만 고려합니다. 최종 종가가 시가와 같다는 이유로 특정일을 횡보장세로 분류하는 것은 미래 정보를 포함하게 됩니다. 또한, 진입 후 횡보장에서 지속적인 추세장으로 전환될 수도 있습니다. 반복적인 평균 회귀 신호로 인해 통제되지 않은 누적 노출이 발생하지 않도록 최대 시도 횟수, 쿨다운 시간, 그리고 세션 위험 예산을 미리 설정하십시오.
성공 경로와 두 가지 실패 사례
정규화한 합성 데이터를 생각해 봅니다. 사건 전 μ=100, σ=1이면 하단 밴드는98입니다. ATR은1, 틱 크기는0.01, b=0.1입니다. 앞선 가격 피벗은98.5이며 그 시점 CVD는−800입니다. 새 사건은97.5까지 하락해98.2에 마감하고, 저점 시점 CVD는−650입니다. 다음 두 봉은 그 저점을 깨지 않습니다. 확정 시 종가는98.5로 직전 고가98.4보다 높으며, 아직100에서는 거래되지 않았습니다.
매수 가능한 매도 호가98.55와 손절가97.4의 차이는 위험1.15입니다. 고정 목표100까지의 보상은1.45, 비용 차감 전 약1.26R입니다. 제안하는 최소 기대 보상/위험 비율1.2를 충족합니다. 매도 호가98.8에서는 위험1.4와 보상1.2이므로 조건을 통과하지 못합니다. 평균값이 가깝다는 이유만으로 두 R 목표를 뒷받침할 수는 없습니다.
손실 경로에서는 재개된 매도세로 가격이 97.3에 도달하고 스톱이 97.35에 체결되어 실제 진입가 대비 1.20의 손실이 납니다. 별도의 거래하지 않는 사례에서는 가격이 t+1에 100을 찍었다가 확인 시점까지 98.5로 돌아옵니다. 이 이벤트는 취소하십시오. 뒤늦은 진입으로는 실행 가능해지기 전에 발생한 앞선 반등의 이익까지 얻을 수 없습니다.
목표가를 고정하고 확정 후 체결
기준선 전략은 목표 가격을 이벤트 발생 전 평균에 유지하고, 손절매는 이벤트 발생 시점부터 신호 발생 시점까지의 최저 가격 아래에 설정하며, 체결 후 10개 봉이 지나거나 세션이 종료되기 전에 청산합니다. 실시간 VWAP를 추종하는 목표 설정 전략도 있습니다. 가격과 VWAP가 모두 하락할 경우, 목표 가격을 하향 조정하면 목표 달성 빈도는 높아지지만 거래당 수익은 감소할 수 있습니다.
매수는 이용 가능한 매도 호가에 지불하고, 청산 매도는 체결 가능한 매수 호가로 대금을 받습니다. 실제 주문 유형과 유동성도 반영합니다. 선물 가격 차이는 계약 승수로 금액으로 바꾸고 주문을 유효한 틱 단위로 맞춥니다. 손절 폭0.5포인트에 비용0.1포인트면 다른 수수료 전에도0.2R를 소모합니다. 좁은 손절에서는 호가 중간값 체결을 가정한 결과가 특히 과도하게 낙관적일 수 있습니다.
상단 밴드의 공매도 버전은 기하학적으로 대칭이지만 결과를 별도로 보고합니다. 가격이 두 시그마 밖으로 더 멀어질 때마다 포지션 크기를 늘리지 않습니다. 누락 체결, 누적값 초기화, 거래량이 없는 구간과 확정 대기 중 세션 종료를 테스트합니다. 잘못된 데이터는 명시적으로 거부해야 하며, 몰래 보간하여 수익성 있는 신호로 만들면 안 됩니다.
기본 전략은 단축 세션을 포함하여 예정된 세션 종료 다섯 분 전에 진입을 마감합니다. 각 후보는 session_id를 보관하고 VWAP를 쓰는 경우 anchor_id도 보관합니다. 마감 도달, 세션 변경 또는 앵커 초기화는 대기 사건을 끝냅니다. 신호 이후 호가도 마감 전에 수신되어야 합니다. 이후 봉이 오지 않아도 세션 타이머가 대기 상태를 취소하므로 봉 카운터를 다음 날로 이어갈 수 없습니다. 이 마감은 이 글의 연구 설정입니다.
각 구성 요소와 해당 지연 시간을 테스트하십시오.
먼저 가격 전용 밴드 복구 결과를 모두 살펴본 다음, 레짐 게이트, CVD 게이트, 그리고 이들의 조합을 비교합니다. 거부된 이벤트는 데이터 세트에 유지합니다. 시간대와 이전 변동성을 기준으로 비교를 일치시켜야 합니다. 그렇지 않으면 결합 규칙이 유용한 다이버전스를 식별하지 않고 단순히 조용한 정오 조건을 선택할 수 있습니다.
검증 시 겹치는 사건을 그룹화하고 개발 기간을 아직 사용하지 않은 연도나 시장 상황과 분리합니다. 순 기대값, 매매 회전율, 드로다운과 연속 손절을 보고합니다. 피벗 확정 전에 평균으로 돌아간 사례도 셉니다. 이 통계는 대기의 기회비용을 측정하며, 보기 좋은 과거 차트와 실제 거래 가능한 순서를 구분하게 합니다.
앞으로 들어오는 데이터로 모의매매를 할 때는 거래소 사건 시각과 로컬 수신 시각을 모두 보관합니다. 의사결정에는 그전에 수신한 정보만 씁니다. 사양을 고정하고 미사용 검증 데이터에서 비용과 현실적인 체결을 반영한 뒤에도 성립해야 더 강한 근거를 주장할 수 있습니다. 커뮤니티 작성자의 성과 보고는 이 테스트를 대신할 수 없습니다.
흔한 실수
최종 종가로 과거 횡보장 여부 분류
하루가 끝난 뒤 얻는 데이터로 그날 앞선 시장 상태를 분류하면 필터에 미래 정보가 유입됩니다.
명시 없이 움직이는 목표가
동적 VWAP 목표와 고정된 사전 이벤트 평균은 서로 다른 전략이며 별도의 결과가 필요합니다.
개인 규칙을 재현한다고 주장함
사용자 지정 블록이 누락되었거나 임계값이 공개되지 않은 경우 원본 작성자가 보고한 성능을 재현할 수 없습니다.
이 기법을 사용하기 전 체크리스트
자신의 데이터로 확인한 뒤 각 항목에 체크하세요. 진행 상태는 이 브라우저에 저장되며, 전략의 수익성을 인증하지는 않습니다.
자주 묻는 질문
2시그마를 넘어서는 움직임이 가격이 과매도되었다는 것을 증명하는 것일까요?
아니요. 특정 추정량에 따른 거리를 나타냅니다. 추세가 진행됨에 따라 분포가 계속 변하고 변동폭이 커질 수 있습니다.
체결 방향 분류 데이터가 없을 때 OBV로 CVD를 대체할 수 있나요?
OBV는 다른 기능을 측정하므로 공격적인 거래 델타를 재구성할 수 없습니다. 가격 전용 또는 OBV 변형을 다른 이름과 사양으로 테스트하십시오.
연구 출처
각 출처는 옆에 설명된 정의나 근거를 뒷받침합니다. 의사코드, 가상 예시와 제안된 매개변수는 별도로 검증해야 합니다.
- Here's how being a dev helped me make YTD $104k (NET profit)Rogue-seeker on r/Daytrading. 게시글과 토론 내용을 검토했습니다. 결과는 자체 보고된 것이며, 일부 규칙은 비공개이고, 수익은 독립적으로 검증되지 않았습니다. 확인일: .
- Volume Weighted Average PriceTradingView. 문서 VWAP 및 밴드 구성. 이 문서의 가중 분산 공식은 명시적으로 별도의 사양입니다. 확인일: .
- Cumulative Delta Bars – VolumeSierra Chart. 매도 호가/매수 호가에서 체결된 거래량, 과거 데이터 요건과 초기화 동작을 정의합니다. 플랫폼의 정확도 마케팅은 독립적 증거로 다루지 않습니다. 확인일: .
관련 기법
위험 안내
이 내용은 학습과 연구 설계를 위한 것이며 금융 조언이 아닙니다. Backtest는 과거 데이터 시뮬레이션으로, 미래 성과를 보장하지 않으며 실제 거래를 주문하지 않습니다. 이 라이브러리의 기법이 모두 앱에 구현된 기능은 아닙니다. 관련 정보: 검증 방법 및 학습 센터.
실제 자금을 투입하기 전에 규칙을 검증하세요
앱 지원 범위, 데이터와 개별 모의 거래를 확인하세요. 고급 탐지 기법은 별도 구현이 필요할 수 있습니다.
App Store에서 Backtest 다운로드