글 목차
근거와 범위
논문은2007년 오월부터2024년 사월까지 총수익률+1,985%, IRR19.6%, 샤프1.33, 최대 낙폭25%를 보고합니다. 명시한 수수료와 슬리피지를 포함한 저자 보고 결과이며 여기서 독립 백테스트를 수행하지 않았습니다.[1]
실전 적용 절차
- 과거 데이터 준비이전 14 세션을 시계 시간 기준으로 정렬하고 일일 변동성을 계산합니다.
- 밴드를 구성하세요시가와 직전 종가를 기준으로 삼되 기업행위 조정 방식을 일치시킵니다.
- VWAP 업데이트현재 세션에서 이미 수신한 거래량만 사용합니다.
- 예정된 일정에 맞춰 평가합니다점검 봉이 닫힌 뒤 매수 보유, 공매도 또는 무포지션 목표를 정합니다.
- 실행 및 청산모든 포지션 변경에 비용을 부과하고 세션 기한까지 전량 청산합니다.
- 구성 요소 효과 분리아직 사용하지 않은 검증 데이터에서 밴드, VWAP, 수량 조절을 비교합니다.
시간별 범위이지, 일정한 백분율 범위가 아닙니다.
개장 시 변동성과 점심시간 변동성은 분포가 다릅니다. 노이즈 밴드 개념은 장중 각 시간대별로 개장 시점 대비 정상적인 절대 변동폭을 측정합니다. 오전 늦은 시각의 관측치는 인접한 분 단위의 연속적인 관측치와 비교하는 대신, 이전 장중의 오전 늦은 시각의 관측치와 비교됩니다.
시계 시간 k에 대해 sigma(d, k) = mean(abs(P(d−j, k)/Open(d−j)−1), j=1…14)를 정의합니다. 완료된 이전 세션만 사용하면 기준선이 인과적입니다. 상한은 U(d, k)=max(Open(d), PreviousClose(d))×(1+sigma(d, k))입니다. 하한값은 L(d, k)=min(Open(d), PreviousClose(d))×(1−sigma(d, k))입니다. 간격을 고려한 앵커는 하룻밤 간격 동안 엔벨로프를 더 넓게 만듭니다.
이 시그마는 평균 절대 변동폭이지 분 단위 수익률의 표준편차가 아닙니다. 이를 일반적인 이동 변동성 지표로 대체하면 신호가 달라집니다. 또한, 큰 시가 갭은 개장 후 큰 변동과는 다른 영향을 미치는데, 이는 기준점과 장중 변동이 서로 다른 역할을 하기 때문입니다.
이 전략 가설은 가격이 일반적인 장중 변동폭을 넘어선 후에도 지속된다는 것입니다. 하지만 뉴스 급등 후 가격이 반전되거나, 이전 14 거래 세션이 현재 변동성을 과소평가하거나, 가격이 반복적으로 경계선을 넘나들 경우 실패할 수 있습니다. 이러한 결과 중 어느 것도 대량 거래량 돌파로 인해 배제되는 것은 아닙니다.
데이터 정렬은 무엇을 알 수 있었는지를 결정합니다.
이 연구는 IQFeed 분 단위 데이터를 사용합니다. 보고된 결과에는 $0.0035 수수료와 $0.001 주당 슬리피지가 포함됩니다. [1] 이는 모든 과거 주문이 해당 비용으로 체결될 수 있었다는 보장이 아니라 명시적인 가정입니다.
거래소 세션과 시각으로 과거 행렬을 구성합니다. 공휴일, 서머타임, 단축 세션은 달력에 맞춰 처리합니다.10:00 관측의 누락은 수익률이 영인 것과 다릅니다. 불완전한 과거 세션을 제외할지 현재 판단을 비활성화할지 명시합니다.
시가, 이전 종가 및 과거 가격에 대해 일관된 기업 활동 표기법을 사용하십시오. 조정된 이전 종가와 조정되지 않은 현재 시가를 혼합하면 갭이 발생할 수 있습니다. 수익률 추정에 사용되는 변환된 시계열과 변환되지 않은 시계열을 별도로 저장하십시오.
세션 VWAP는 수신된 거래 또는 완료된 바만 사용해야 합니다. 바 기반 근사치는 바 거래량으로 가중치를 부여한 일반 가격 (H+L+C)/3를 사용할 수 있으며, 이는 거래 수준 벤치마크와는 다릅니다. 이러한 차이는 특히 가격 변동폭이 큰 바의 경우, 고해상도 데이터가 있는 경우에 측정해야 합니다.
명확한 목표 포지션 규칙으로 만들기
아래 제안된 구현은 미리 정한 반시간 간격의 점검 시점에서만 평가합니다. 점검 시 가격이 max(U, VWAP)보다 높으면 목표 포지션은 롱, min(L, VWAP)보다 낮으면 숏, 그 외에는 무포지션입니다. 해당 봉의 데이터가 이용 가능해진 뒤 계산된 목표를 전송합니다. 이는 명시적인 연구용 변형입니다. 상시 보호 청산과 정해진 시각의 노출 조정을 설명 없이 같은 것으로 취급해서는 안 됩니다.
이 변형에서는 점검 시점 사이의 일시적 경계 통과가 새로운 의사결정을 만들지 않습니다. 상시 보호 스톱을 원한다면 별도의 이벤트 기반 규칙으로 명시하고 추가 거래 회전율을 검증하십시오. 반시간 간격으로 진입하되 틱 단위로 청산하는 전략은 모든 노출을 반시간마다만 바꾸는 전략과 경로 의존성이 다릅니다.
목표는 원하는 보유 포지션이며 새 포지션을 반복 추가하라는 지시가 아닙니다.+q주에서−q주로 바꾸려면2q주를 팔아야 하고,+q주에서 무포지션으로 바꾸려면q주를 팔아야 합니다. 비용은 반전의 청산과 신규 진입 양쪽을 포함한 실제 수량 변화에 적용합니다.
최종 청산 기한에는 새 진입 신호보다 포지션을 없애는 것이 우선입니다. 실제 운용 규격에서는 최종 청산 요청 전 미체결 진입 주문을 취소하고, 취소 과정에서 도착한 체결도 대조하여 반영합니다.
before_session(d):
bands = build_from_completed_sessions(d, lookback=14)
daily_vol = sample_std(previous_14_daily_returns)
if data_incomplete or not isfinite(daily_vol) or daily_vol <= 0:
disable_session(); return
multiplier = min(4, 0.02 / daily_vol)
shares = floor(previous_equity * multiplier / session_open)
on_completed_bar(k):
if is_liquidation_deadline(k):
cancel_pending_entries(); submit_flat(); return
if session_disabled: return
update_session_vwap()
if is_decision_time(k):
target = 1 if close > max(upper[k], vwap) else (
-1 if close < min(lower[k], vwap) else 0)
submit_target_after_available_at(target * shares)
변동성 규모 산정은 별도의 노출 요인입니다.
한 포지션 규모 명세는 multiplier = min(4, 0.02/s)이며, s는 완료된 직전 14일 수익률의 표본 표준편차입니다. 주식 수는 floor(previous account equity × multiplier / session open)로 정합니다. 2% 변동성 목표와 레버리지 상한은 이 설정에 속하며 보편적인 위험 권고가 아닙니다.
s가 영이거나 누락 또는 비유한 값이면 나눗셈으로 무한한 수량을 만드는 대신 해당 세션을 비활성화합니다. 최소 변동성 바닥값을 쓰는 것은 별도로 선언할 규칙입니다. 수량 계산은 세션 전에 고정하며 당일 종가 수익률로 재계산하지 않습니다.
레버리지판과 비레버리지판은 따로 보여야 합니다. 논문의 일 배 노출판은 총수익률+380%, IRR9.7%, 샤프1.24, 최대 낙폭12%를 보고합니다.[1] 노출 정책이 달라졌다면 성과 차이 전부를 진입 신호 개선으로 돌릴 수 없습니다.
규모 제한은 추가적인 운영 제약을 필요로 합니다. 구매력, 총 명목 금액, 브로커 마진 및 체결 간격 참여도를 확인하십시오. 최근 안정세를 기반으로 한 노출 규칙은 변동성 급등 직전에 대규모 포지션을 생성할 수 있으므로, 갭 및 지연 청산 스트레스 테스트가 필요합니다.
합성 산술과 실패한 연속
이전 종가가 500이고, 오늘 시가가 505이며, 체크포인트에서의 시그마가 0.003라고 가정해 보겠습니다. 그러면 U=505×1.003=506.515와 L=500×0.997=498.50가 됩니다. 이러한 비대칭성은 시가 차이로 인해 발생합니다. 505를 중심으로 대칭적인 밴드를 만들 경우 계산 방식이 달라질 것입니다.
10:00에서 VWAP를 506.20로, 최종 종가를 506.80로 설정합니다. 제안된 규칙은 506.80가 max(506.515,506.20)를 초과하므로 매수 포지션을 목표로 합니다. 주문이 506.86에서 체결되고 509.00에서 청산될 경우, 수수료를 제외한 주당 가격 상승분은 $2.14입니다. 체결 시점은 의도적으로 신호 종가보다 늦고 다른 가격으로 설정되었습니다.
실패 예시의10:30 종가506.30, 갱신 상단506.60, VWAP506.50이면 목표는 무포지션입니다.506.24 청산 체결은506.86 진입 대비 주당$0.62 손실입니다. 그 전에 밴드 아래로 내려갔다고 정시 판단 전략에 더 좋은 과거 청산 가격을 소급 적용하면 안 됩니다.
등호와 시각을 명시적으로 검사합니다. 엄격한 비교이므로 종가가 임계값과 정확히 같으면 무포지션입니다. 늦게 받은 관측에 이전 체결 가격을 사용할 수 없고, 이력이 모자라면 완전한 밴드를 추정할 수 없습니다. 이런 작은 사례가 공개 구현 간 큰 차이를 설명하곤 합니다.
발표된 증거와 재현 가능한 비교
논문의 수익이 난 날 비율은43%이고, 거래 표의 승률은7,668거래 중37%입니다.[1] 두 분모는 서로 다른 질문에 답합니다. IRR, 총수익률, 거래당 승률, 이익 발생일 빈도를 각각 구분해 기록합니다.
저자들이 공개한 코드 기사는 VWAP, 노출 변동 및 메커니즘을 살펴보는 데 유용하지만, 전체 예제에는 야간 갭 평균 회귀 요소도 포함되어 있습니다. [2]의 결합된 자산 가치는 일중 모멘텀 요소만으로 자동으로 설명할 수 없습니다.
별도 공개 저장소README는2024년 오월~2026년 삼월의 표본외 샤프0.39, 연수익률4.8%, 최대 낙폭18.5%를 표본내 샤프1.34와 비교합니다. 여기서는README만 확인했으며 라이선스 데이터와 전체 실행을 독립 재현하지 않았습니다.[3]
유용한 비교를 위해 노이즈 대역만 사용한 경우, 노이즈 대역에 VWAP를 추가한 경우, 그리고 변동성 규모를 고려한 동일한 신호를 구분하십시오. 실행, 데이터 조정 및 평가 날짜는 동일하게 유지하십시오. 그런 다음 VWAP가 진입 품질, 청산 시점, 시장 체류 시간 또는 단순히 거래량에 변화를 가져오는지 보고하십시오.
수익률 비교에 앞서 각 날의 밴드 배열과 목표 포지션 시각을 대조합니다. 이어 명시된 비용과 더 높은 비용, 한 봉 지연, 인접한 과거기간 길이, 독립 시장 구간에서 검사합니다. 선호하는 성과가 다시 나올 때까지 찾는 대신 어떤 가정이 결과를 지탱하는지 확인합니다.
흔한 실수
변이체의 이름을 바꾸지 않고 노이즈 통계를 대체합니다.
평균 절대 개장 시점 변동폭은 이동 표준편차가 아닙니다. 이러한 대체는 임계값 규모와 경제적 해석 모두를 변화시킵니다.
예정된 신호를 연속적으로 실행하도록 합니다.
반시간마다 판단한다고 하면서 봉 내부의 모든 교차를 청산에 쓰면 백테스트가 부당하게 좋아집니다. 진입과 청산 각각의 이벤트 빈도를 명시합니다.
결합된 코드 예제를 하나의 구성 요소에 할당합니다.
갭 평균 회귀와 모멘텀을 모두 포함하는 예시의 경우, 각 구성 요소를 검증하기 전에 별도의 귀속 분석이 필요합니다.
이 기법을 사용하기 전 체크리스트
자신의 데이터로 확인한 뒤 각 항목에 체크하세요. 진행 상태는 이 브라우저에 저장되며, 전략의 수익성을 인증하지는 않습니다.
자주 묻는 질문
VWAP는 상위 노이즈 대역과 동일한가요, 아니면 하위 노이즈 대역과 동일한가요?
아니요. VWAP는 거래량 가중 방식의 당 세션 가격 기준이며, 밴드는 동일 시점의 이전 세션 대비 일반적인 변동폭을 추정한 것입니다.
보고된 샤프 비율이 현재의 수익성을 나타내는가?
아니요. 이는 특정 표본과 비용 모델을 설명하는 것입니다. 후속 기간의 증거, 실행 재현성 및 불확실성은 별도로 평가해야 합니다.
연구 출처
각 출처는 옆에 설명된 정의나 근거를 뒷받침합니다. 의사코드, 가상 예시와 제안된 매개변수는 별도로 검증해야 합니다.
- Beat the Market: An Effective Intraday Momentum Strategy for S&P500 ETF (SPY)Zarattini, Aziz, Barbon — bản 03/02/2025. 2025년 이월3일판을 포함해PDF 전체를 읽었습니다. 표3과4는 파일 페이지와 인쇄 쪽수 모두15와16에 있습니다. 새 재현 실험은 하지 않았습니다. 확인일: .
- Designing a Profitable Intraday Strategy Using Python and AlpacaConcretum Group. 저자의 논문과 공개된 코드를 읽었습니다. 전체 예제에는 추가적인 야간 갭 요소가 포함되어 있으며, 자동으로 순수한 모멘텀 복제가 되는 것은 아닙니다. 확인일: .
- Out-of-Sample Evaluation of an Intraday Momentum Strategy for SPYSheimy Paz Serpa. 저장소의 README 파일만 검토했으며, 전체 라이선스 입력 및 보고된 샘플 외 실행 결과는 독립적으로 재현하지 않았습니다. 확인일: .
관련 기법
위험 안내
이 내용은 학습과 연구 설계를 위한 것이며 금융 조언이 아닙니다. Backtest는 과거 데이터 시뮬레이션으로, 미래 성과를 보장하지 않으며 실제 거래를 주문하지 않습니다. 이 라이브러리의 기법이 모두 앱에 구현된 기능은 아닙니다. 관련 정보: 검증 방법 및 학습 센터.
실제 자금을 투입하기 전에 규칙을 검증하세요
앱 지원 범위, 데이터와 개별 모의 거래를 확인하세요. 고급 탐지 기법은 별도 구현이 필요할 수 있습니다.
App Store에서 Backtest 다운로드