실험 상세 · 3선과 10선 국채선물

경제 블록 가법 모형은 카드의 변동성 예측을 낫게 하는가

미국 금리, 이벤트 달력, 외국인 수급, 위험 심리를 네 블록으로 묶어 카드의 하루 고저폭 예측 위에 얹었다. 손실은 분명히 줄었지만 줄어든 몫의 거의 전부가 금통위 날 하나에서 왔다.

채택 확인 2022-01 ~ 2026-10, 1,176세션씩 가설 H1092 ~ H1097 걷기 전진 9개 모형, 귀무 200회

세 줄 요약

  1. 확인 구간 2022-01-03 ~ 2026-10-29(각 1,176세션)에서 블록 가법 보정(BAM)의 QLIKE 손실은 카드 예측기보다 10선 6.1%, 3선 13.7% 낮았다. 디볼드-마리아노 한쪽 p 는 10선 0.0003, 3선 0.0001 미만이고 특징을 원형 이동한 귀무 200회 가운데 실제보다 좋은 경우는 없었다(순열 p 0.005).
  2. 이득의 74 ~ 77% 가 확인 구간 금통위 39일에서 나왔다. 금통위 날 실제 고저폭은 카드 중심의 3선 2.0배, 10선 1.5배였다. 이벤트 블록을 빼면 BAM 은 카드와 같았고(비 1.000, 1.003), 미국 금리, 수급, 위험 심리 블록은 아무것도 더하지 않았다.
  3. 판정은 사전등록 규칙대로 채택이지만, 데스크로 옮길 것은 블록 모형이 아니라 카드 회귀에 금통위 날 표시 한 열을 더하는 일이다. 그 한 열이 BAM 이득의 92% 를 재현했고, 앞뒤 날로 옮긴 위약과 무작위 날짜 귀무 200회에서는 이득이 사라졌다(탐색, p 0.005).

가설과 결론

매일 아침 데스크 카드에는 그날 3선 고저폭의 예상 중심과 80% 대역이 찍힌다. 이 예측기는 직전 1일, 5일 평균, 20일 평균 고저폭의 로그와 전날 밤 미국 10년 금리 변화의 절댓값만 보는 로그 회귀이고, 최근 750세션으로 매일 다시 적합한다. 앞선 실험에서 이 예측기는 거친 변동성 모형과 국면 모형을 모두 이겼다. 다만 그 비교는 모형의 형태만 바꾸었고, 고저폭의 역사 밖에 있는 정보는 넣지 않았다.

이 실험은 영란은행 연구에서 쓰인 «경제 블록으로 제한한 머신러닝» 의 생각을 빌렸다. 변수를 경제적 의미가 같은 블록으로 묶고, 블록 안에서만 비선형을 허용하며, 블록 사이는 더하기만 한다. 그러면 무제약 머신러닝의 유연함을 일부 얻으면서도 각 블록이 예측에 얼마를 보탰는지 읽을 수 있다. 블록은 미국 금리, 이벤트 달력, 외국인 수급, 위험 심리 넷으로 미리 정해 사전등록에 잠갔다.

가설
확인 구간(2022-01-03 ~ 2026-10-29)에서 카드 위에 블록 보정을 얹은 BAM 의 평균 QLIKE 가 10선에서 카드보다 3% 이상 낮고(H1092, 디볼드-마리아노와 달 블록 부트스트랩 한쪽 p < 0.05, 선택 편향 순열 p < 0.05), 3선에서도 낮다(H1093, Holm p < 0.10). 블록 기여 순위는 해마다 켄달 τ 평균 0.5 넘게 안정적이다(H1094). 10선 BAM 의 90% 대역 적중률은 명목에 맞는다(H1095). 채택은 H1092 와 H1095 를 함께 통과할 때다.
결론
H1092, H1093, H1095 는 통과했고 H1094 는 통과하지 못했다(10선 τ 0.40, 3선 0.53). 10선 QLIKE 비 0.939(p 0.0003, 순열 p 0.005), 3선 0.863(p 0.0001 미만), 10선 90% 대역 적중률 89.1%(Kupiec p 0.32). 그러나 이득은 거의 전부 금통위 날 표시 하나에서 왔고, 블록 구조와 블록 안 비선형은 기여하지 않았다.
확증 가설 넷(정본 런 20261111T083656_main, 확인 구간 1,176세션씩)
가설비교값DM p부트 p순열 p통과
H1092 10선QLIKE BAM 대 카드0.2710 대 0.2886 (0.939)0.00030.00020.005예
H1093 3선QLIKE BAM 대 카드0.3041 대 0.3523 (0.863)<0.0001<0.00020.005예
H1094블록 기여 순위 τ 평균10선 0.40, 3선 0.53아니오
H1095 10선BAM 90% 대역 적중89.1% (카드 90.1%)Kupiec 0.32예

카드 예측기의 가장 큰 빈틈은 금통위 날을 평소와 똑같이 예측한다는 점이었다. 블록 모형은 그 빈틈을 찾아냈을 뿐이고, 같은 일을 카드 회귀에 한 열을 더해 거의 그대로 할 수 있다.

용어와 기호

고저폭 yt
세션 t 근월 국채선물 일봉의 (고가 − 저가) × 100, 단위는 틱(0.01 포인트). 카드의 예측 대상과 같다.
카드 예측기(카드)
log yt 를 l1, m5, m20, a 로 OLS 회귀하는 모형. 최근 750세션으로 매일 다시 적합한다. l1 은 직전 세션 고저폭의 로그, m5 와 m20 은 직전 5, 20세션 평균 고저폭의 로그다.
at
세션 t 직전 한국 영업일 뉴욕 종가 기준 미국 10년 금리 하루 변화의 절댓값(bp, 20 상한)을 10 으로 나눈 값. 카드가 이미 쓰는 특징이다.
카드 잔차 rt
log yt 에서 카드의 걷기 전진 로그 예측(적합값) ot 를 뺀 값. 블록 보정은 이 rt 를 맞힌다.
블록
경제적 의미가 같은 특징의 묶음. 이 실험의 블록은 US(미국 금리 7개), EVENT(이벤트 달력 5개), FLOW(외국인 수급 3개), RISK(위험 심리 9개)다.
BAM
Block Additive Model. rt = c + gUS + gEVENT + gFLOW + gRISK 로 두고 블록 항 gb 를 경첩 기저의 선형 결합으로 적합한 두 단계 보정이다. 이 실험의 확증 도전자다.
경첩 기저
표준화한 특징 z 에 대해 [z, max(z − q50, 0), max(z − q80, 0)] 세 열. q50, q80 은 학습 창에서의 50%, 80% 분위다. 블록 안에서 꺾인 직선 모양의 비선형을 허용한다.
그룹 라쏘
블록 하나를 한 그룹으로 보고 벌점 λ Σb √pb ‖βb‖ 를 주는 축소 회귀. 쓸모없는 블록의 계수를 통째로 0 으로 만든다. pb 는 블록 b 의 기저 열 수다.
QLIKE
분산 예측의 손실. QLIKEt = yt² / ht − log(yt² / ht) − 1. 0 이 가장 좋고, 분산을 작게 예측한 날을 더 크게 벌한다. 비(도전자 ÷ 카드)가 1 보다 작으면 카드보다 낫다.
ht
yt² 의 기댓값 예측. exp(2μt) × 평균 exp(2e), μt 는 로그 예측, e 는 직전 750세션의 로그 잔차다(스미어링 보정).
디볼드-마리아노 검정(DM)
두 예측의 날별 손실 차 평균이 0 인지 보는 검정. 손실 차의 자기상관은 뉴이웨스트 지연 20 으로 보정했다. 한쪽 p 는 도전자가 낮다는 방향이다.
달 블록 부트스트랩
손실 차를 달 단위로 묶어 5,000회 복원 추출한 평균의 분포로 한쪽 p 를 낸다. 같은 달 안의 상관을 그대로 둔다.
원형 이동 귀무
외생 특징 행렬 전체를 250세션 넘게 무작위로 밀어 목표와의 시점 대응을 끊은 뒤, λ 선택과 해마다 재적합을 포함한 BAM 절차 전체를 다시 돌린 것. 200회의 QLIKE 비 분포가 선택 편향의 귀무다.
Kupiec 검정
대역 적중률이 명목(80%, 90%)과 같은지 보는 우도비 검정. p 가 크면 명목과 구별되지 않는다.
켄달 τ
두 순위가 얼마나 같은지의 순위 상관. 블록 네 개의 기여 순위를 해마다 매겨 다섯 해의 열 쌍에서 평균했다.
CARD_MPC
카드 회귀의 설명 변수에 금통위 당일이면 1 인 표시 한 열을 더한 모형. 결과를 본 뒤 만든 탐색 모형이다.

자료

데이터셋

목표는 카드와 같은 근월 일봉 고저폭이다. 기간은 2012-01-02 부터 2026-10-29 까지 3,639세션이고, 끝은 미국 일별 자료의 마지막 뉴욕 날짜(2026-10-28)에 맞췄다. 일봉 표에 없는 2026-09-14 하루는 메우지 않고 뺐다. 외생 특징은 뉴욕 날짜 종가(미국 10년, 2년 금리, MOVE, VIX, 하이일드 채권 ETF 와 중기 국채 ETF, 달러원 NDF)와 한국 날짜 자료(국채선물 외국인 순매수, VKOSPI), 그리고 달력(금통위, FOMC, 미국 고용, 선물 만기, 연휴)이다. 보조 목표로 연결 1분봉을 다섯 개씩 묶은 5분 실현 분산도 만들었다. 3선 1분 수익률은 절반 넘게 0 이라 1분 실현 분산은 잡음이 크기 때문이다.

데이터셋 요약(데이터 점검 results/datacheck.json)
항목기간행해상도결측과 처리
3선, 10선 근월 일봉2012-01-02 ~ 2026-10-293,639일2026-09-14 없음(제외), 중복 0
5분 실현 분산2012-01-02 ~ 2026-10-293,6395분 → 일분봉 없는 8세션은 y² × 직전 60세션 비율
미국 금리, MOVE, VIX, 신용 ETF2012-01 ~ 2026-10-28뉴욕 영업일일휴일은 변화 0
외국인 순매수(월물별)2013-05-31 ~ 2026-10-293,240 + 53일만기일 비움, 2026-08-14 ~ 08-21 6세션 없음
VKOSPI, 달러원 NDF2012-01 ~ 2026-10영업일일직전 값
달력 표시2012 ~ 2026FOMC 119, 고용 176, 금통위 140, 만기 59, 연휴 92일미리 알려진 날짜

블록 정의와 시각 정렬

모든 특징은 세션 t 의 한국 개장(08:45 또는 09:00) 전에 알려진 값이다. 뉴욕 날짜 자료는 세션 t 보다 엄격히 앞선 마지막 뉴욕 날짜의 종가를 쓴다. 이 종가는 한국 시각 새벽 6시 무렵 찍히므로 개장 전에 알 수 있다. 점검에서 모든 세션의 기준 뉴욕 날짜가 세션보다 하루에서 나흘 앞섰고 같은 날은 한 번도 없었다. 변화량은 직전 한국 세션의 같은 기준점 대비라 미국 휴일 뒤 세션은 변화가 0 이다. 수급과 VKOSPI 는 세션 t 보다 앞선 세션 값만 쓴다.

외국인 순매수 원표는 하루 순매수가 아니라 누적 수준이었다. 값이 만기마다 크게 표류하고, 하루 차분의 중앙 절댓값이 다른 날의 다섯 배인 날이 정확히 만기일이었다. 그래서 하루 순매수는 1차 차분으로 만들고 만기일 차분은 비웠다. 일별 원표가 2026-08-13 에서 끝나 그 뒤는 장중 수급 표의 하루 마지막 값으로 이었다. 두 원천의 크기(3선 하루 중앙 절댓값 5,311 대 6,887계약)는 같은 범위였다. 미국 금리 블록에서 카드가 이미 쓰는 10년 변화 절댓값은 뺐다. 블록 구성은 결과를 보기 전에 사전등록으로 잠갔다.

방법

걷기 전진 설정

블록 보정의 해마다 재적합과 예측 해를 보인 간트 그림
그림 1. 걷기 전진 분할. 파랑은 블록 보정의 학습 구간(2013-06 부터 확장), 빨강은 그 보정으로 예측하는 해, 초록은 카드 750세션 창이 매일 걷는 구간이다.

카드는 원래 방식 그대로 세션마다 직전 750세션으로 다시 적합해 걷기 전진 로그 예측 ot 를 만든다. 블록 보정은 그 예측의 표본 밖 잔차 rt 를 목표로 삼는다. 학습은 수급 자료가 시작하는 2013-06-03 부터 확장창이고, 해마다 1월 첫 세션에 그 전까지의 행으로 다시 적합해 그해 세션을 예측한다. 확인 구간에서는 2022, 2023, 2024, 2025, 2026 다섯 번 재적합했다. 그룹 라쏘의 벌점 λ 는 학습 창 안에서만 고른다. 학습 창의 마지막 500세션을 검증으로 떼고, λ 최대값에서 그 천분의 일까지 로그 간격 12개 가운데 검증 로그 제곱 오차가 가장 작은 값을 골라 학습 창 전체로 다시 적합한다.

예측의 세 형태는 모든 로그 모형에 같은 방식으로 만든다. 중심은 exp(μt + 잔차 중앙값), 80% 대역은 직전 750세션 로그 잔차의 10 ~ 90% 분위, 90% 대역은 5 ~ 95% 분위다. 블록 보정 모형의 잔차 풀은 그 시점의 보정식으로 다시 계산한 표본 밖 잔차다. 카드는 원래대로 표본 안 잔차를 쓰는데, 이 차이만으로 카드가 3선 1.6%, 10선 0.5% 나빠지므로(표본 밖 잔차 풀을 쓴 카드) BAM 쪽 비교는 오히려 불리하게 잡혔다. 예측은 모두 개장 전에 끝나므로 진입 지연이나 지정가 시나리오는 해당하지 않는다.

손실과 검정

판정 지표는 확인 구간 평균 QLIKE 의 비다. 고저폭 제곱을 그날 분산의 대리 변수로 쓰고, ht 는 yt² 의 기댓값 예측이다. 유의성은 세 가지로 본다. 첫째는 날별 손실 차의 디볼드-마리아노 한쪽 검정, 둘째는 달 블록 부트스트랩 한쪽 p 이고, 두 값 중 큰 쪽을 그 가설의 p 로 써서 H1092 와 H1093 을 Holm 으로 보정한다. 셋째는 선택 편향 귀무다. 그룹 라쏘가 블록과 λ 를 고르는 절차 자체가 귀무에서도 그럴듯한 이득을 만들 수 있으므로, 외생 특징 행렬 전체를 시간축으로 원형 이동해 목표와의 대응을 끊고 절차 전체를 200회 다시 돌렸다. 대역은 적중률과 Kupiec 검정으로 본다. 매매 규칙이 아니므로 비용은 쓰지 않았다.

모델

비교한 모형

기준선은 넷이다. 카드, 직전 20세션 중앙값, 5분 실현 분산으로 만든 HAR, 그리고 앞선 실험이 탐색에서 찾은 카드와 거친 HAR 의 같은 무게 기하 결합이다. 도전자는 확증 하나와 비교 셋이다. 확증 도전자 BAM 은 경첩 기저와 그룹 라쏘를 쓰고, BAM 선형은 경첩을 빼 블록 안 비선형을 없앤 판이다. BAM 단조 트리는 블록마다 깊이 2 LightGBM 을 두고 역적합으로 더한 판이며, 무제약 LightGBM 은 블록 구분 없이 모든 특징과 카드 입력을 한 모형에 넣은 판이다. 비교 모형들은 블록 구조와 블록 안 비선형이 각각 얼마를 보태는지 가르려고 넣었다.

모형과 설정(모두 걷기 전진, 세션 t 예측은 t−1 까지의 결과만 씀)
이름계열입력재적합
카드로그 OLSl1, m5, m20, a매일, 750세션 창
20일 중앙값규칙직전 20세션 고저폭매일
HAR(5분 RV)로그 OLSlog RV5 직전 1, 5, 22세션 평균, a매일, 750세션 창
카드 + 거친 HAR 결합기하 평균앞선 실험의 두 예측매일
BAM카드 + 그룹 라쏘(경첩 2개)블록 4개, 특징 24개, 기저 62열해마다 1월, 확장창
BAM 선형카드 + 그룹 라쏘(경첩 없음)같은 특징, 24열해마다
BAM 단조 트리카드 + 블록별 LightGBM깊이 2, 잎 3, 나무 150, 학습률 0.03, 잎 최소 80, 단조 제약해마다, 역적합 3회
무제약 LightGBM카드 + LightGBM 하나특징 24개와 l1, m5, m20, a, o, 깊이 4, 잎 15, 나무 300해마다

두 단계 블록 보정

BAM 은 카드를 버리지 않고 그 위에 얹는다. 첫 단계는 카드 그대로의 로그 예측 ot 이고, 둘째 단계가 그 표본 밖 잔차 rt 를 블록 네 개의 합으로 맞힌다. 각 특징은 학습 창 중앙값으로 결측을 메우고 1 ~ 99% 분위에서 자른 뒤 표준화하며, 이진 표시는 그대로 둔다. 연속 특징마다 경첩 기저 세 열을 만들어 같은 블록의 열을 한 그룹으로 묶는다. 그룹 라쏘는 쓸모없는 블록의 계수를 통째로 0 으로 보내므로, 블록이 살아남았는지가 곧 그 블록이 쓸모 있는지의 답이 된다. 실제로는 다섯 번의 재적합 모두 네 블록이 다 살아남았고, 고른 λ 는 최대값의 0.04 ~ 0.28 배였다.

10선 2026 재적합 BAM 의 블록별 부분 의존 곡선과 이벤트 계수
그림 2. 10선 2026 재적합 BAM 의 블록별 부분 의존. 연속 특징은 z 점수에 따른 고저폭 배율 변화(z = 0 기준), 이벤트는 그날 표시가 켜졌을 때의 배율 변화다. 금통위 표시가 +24% 로 가장 크고 연속 특징의 효과는 ±6% 안이다.

그림 2 는 학습된 보정식의 모양이다. 연속 특징의 효과는 z 점수 3 에서도 고저폭 배율로 ±6% 를 넘지 않는다. MOVE 변화와 VIX 변화가 크면 고저폭이 조금 넓어지는 방향은 상식과 맞지만 크기가 작다. 이벤트 블록에서는 금통위 표시가 +24%, 만기일 +6%, FOMC 다음 날 +4% 다. 그룹 라쏘는 블록 전체를 함께 줄이므로 금통위 계수도 줄어든다. 같은 표시를 카드 회귀에 직접 넣으면 계수가 10선 0.42(배율 1.5배)로 BAM 의 0.22 보다 크다.

학습된 모형의 구조도

아래 그림은 확인 구간 마지막 예측일(2026-10-29) 10선의 BAM 보정식과 단조 트리 판의 이벤트 블록을 정본 런과 같은 학습 행으로 다시 적합해 그렸다. 다시 적합한 보정식이 정본 런에 기록된 로그 예측을 소수 여섯째 자리까지 재현할 때만 그림을 넣는다.

구조: BAM 보정식, 10선 2026 재적합 입력 데이터 10선 근월 일봉 고저폭 학습 3088세션 2013-06 ~ 2025-12 예측일 2026-10-29 특징 24개, 기저 62열 US 7, EVENT 5 FLOW 3, RISK 9 살아남은 블록 4개 0 아닌 계수 62개 BAM 보정식 (그룹 라쏘, 2026 재적합, 확장창) 1. 전처리 학습 창 중앙값 대치, 1~99% 분위 자르기, 표준화 2. 경첩 기저 z, (z−q50)+, (z−q80)+ (이진 특징은 z 하나) 3. 그룹 라쏘 블록 4개 = 그룹 4개, λ 비 0.2848 4. 합 log ŷ = 카드 로그 예측 + c + Σ 블록 항 출력 보정 g +0.038 카드 로그 예측 3.936 중심 51.4틱 실제 40틱 계수: 세팅과 학습 결과 피처 62개 표준화된 공간의 계수: 서로 크기 비교가 된다 0 이 아닌 계수 62개 절편 b = +0.0064 모든 피처가 학습창 평균일 때의 출발점 평균적인 카드 변화 |w| 최대 = 0.2180 가장 센 피처: ev_mpc |w| 중앙값 0.0018
2013-06 부터 2025-12 까지 3088세션으로 적합. 절편 c +0.0064, 예측일 보정 +0.038.
계수: BAM 보정식, 표준화 공간 상위 16개 ← 하락 쪽 상승 쪽 → ev_mpc +0.2180 ev_expiry +0.0608 ev_fomc +0.0403 ev_gap +0.0292 d_vix +0.0126 d_vkospi +0.0084 d_us10 +0.0078 d_move +0.0076 d_move 경첩1 +0.0062 move_lvl +0.0058 d_move 경첩2 +0.0056 vix_lvl +0.0055 d_vkospi 경첩1 +0.0052 d_vix 경첩1 +0.0051 frs1 -0.0050 us10_vol20 -0.0046 표준화된 공간의 계수 상위 16개 , 절편 b = +0.0064 , 전체 62개 중
금통위 표시(ev_mpc)의 계수가 가장 크다. 이진 특징은 표준화하지 않아 계수가 곧 로그 배율이다.
구조: 단조 트리 판 이벤트 블록, 10선 2026 재적합 입력 데이터 카드 잔차 r 의 부분 잔차 학습 3088세션 다른 블록 항을 뺀 값 역적합 3회의 마지막 이벤트 특징 5개 ev_fomc, ev_nfp ev_mpc, ev_expiry ev_gap 모두 0 또는 1, 단조 증가 제약 BAM 단조 트리 판의 이벤트 블록 (LightGBM 회귀, 깊이 2, 나무 150) f₁ f₂ f₃ f₄ f₅ ,,, f₁₅₀ 위는 이 모델 트리 5그루와 마지막 그루의 실제 위상(점 = 잎): 실물은 그림 B,C g_EVENT(x) = f1(x) + … + f150(x) − 학습 평균 다른 세 블록도 같은 구조의 나무를 따로 갖는다 출력 이벤트 항 +0.070 로그 배율 보정 블록 네 항을 더한다 예측일 2026-10-29 하이퍼파라미터: 세팅한 상한과 학습이 실제로 닿은 값 n_estimators = 150 이어 붙이는 트리 개수: 위 f₁ … 가 이만큼 실제 150그루 max_depth = 2 뿌리(깊이 0)에서 잎까지 분기 최대 2번: 그림 B,C 의 오른쪽 눈금 실제 깊이 전부 2 , 상한에 닿은 트리 150/150 num_leaves = 3 트리 한 그루의 잎(끝 상자) 최대 개수 실제 잎 3~3개 , 상한에 닿은 트리 150/150 min_data_in_leaf = 80 잎 하나에 학습 표본 80개 미만이면 그 분기를 하지 않는다 실제 가장 작은 잎 n=100 learning_rate = 0.03 트리 하나가 더하는 값 = 적합값 × 0.03 (아래 잎값에 이미 곱해져 있다) 작을수록 트리 한 그루의 발언권이 작다 그루별 잎 수 분포 3 잎 3~3개 , 상한 3
블록마다 따로 학습한 나무 묶음의 하나다. 블록 사이에는 교차가 없다.
첫 나무 깊이 0 , 뿌리 분기 조건 , n 깊이 1 분기 조건 , n 깊이 2 , 잎 분기 없음 max_depth = 2 뿌리→잎 분기 2번까지 이 트리 실제 깊이 2 예 아니오 예 아니오 ev_mpc ≤ 0 n=3,088 ev_fomc ≤ 0 n=2,972 잎값 -0.0006 n=2,872 잎값 +0.0023 n=100 잎값 +0.0121 n=116 잎값 ≥ 0 (예측을 위로) 잎값 < 0 (예측을 아래로) n = 그 노드에 떨어진 학습 표본 수 , 조건(≤)이 참이면 왼쪽 가지 '예', 거짓(>)이면 오른쪽 '아니오'
첫 나무는 금통위 표시로 먼저 가른다.
마지막 나무 깊이 0 , 뿌리 분기 조건 , n 깊이 1 분기 조건 , n 깊이 2 , 잎 분기 없음 max_depth = 2 뿌리→잎 분기 2번까지 이 트리 실제 깊이 2 예 아니오 예 아니오 ev_mpc ≤ 0 n=3,088 ev_fomc ≤ 0 n=2,972 잎값 -0.000012 n=2,872 잎값 +0.0001 n=100 잎값 +0.0002 n=116 잎값 ≥ 0 (예측을 위로) 잎값 < 0 (예측을 아래로) n = 그 노드에 떨어진 학습 표본 수 , 조건(≤)이 참이면 왼쪽 가지 '예', 거짓(>)이면 오른쪽 '아니오'
마지막 나무까지 금통위와 FOMC 표시가 분기를 거의 다 차지한다(아래 표의 손실 감소 몫).
분기 특징 집계
분기 위치 \ 피처ev_mpcev_fomcev_nfpev_expiryev_gap합
깊이 0 (뿌리)13601400150
깊이 121064200150
분기 합1381065600300
손실 감소(gain) 몫95.2%4.3%0.4%0.0%0.0%100%

나무 150그루에서 각 특징이 분기에 쓰인 횟수다.

결과

확증 결과

모형별 확인 구간 QLIKE 를 카드 대비 비로 그린 막대그림
그림 3. 확인 구간 1,176세션의 모형별 QLIKE ÷ 카드 QLIKE. 빨강이 확증 도전자 BAM, 초록이 카드다.

확인 구간에서 BAM 의 평균 QLIKE 는 10선 0.2710, 카드 0.2886 으로 비가 0.939 였다. 손실 차의 디볼드-마리아노 한쪽 p 는 0.0003, 달 블록 부트스트랩은 0.0002 다. 3선은 0.3041 대 0.3523 으로 비 0.863 이고 두 p 모두 0.0001 수준이다. Holm 보정 뒤에도 H1092 는 0.0003, H1093 은 0.0001 미만이다. 미리 정한 실용 문턱(10선 3% 이상 감소)도 넘었다. 사전등록 기준으로 BAM 은 두 월물 모두에서 카드를 이겼다.

기준선들을 함께 보면 이 결과가 얼마나 드문지 알 수 있다. 20일 중앙값은 카드보다 3선 11.6%, 10선 7.5% 나쁘고, 5분 실현 분산 HAR 은 3.8%, 1.4% 나쁘다. 앞선 실험의 카드와 거친 HAR 결합은 10선에서 1.8%(p 0.018) 나았을 뿐이다. 블록 모형의 세 판은 모두 비슷한 크기의 이득을 냈다. 경첩을 뺀 선형 판이 3선 0.862, 10선 0.948, 단조 트리 판이 0.849, 0.925, 무제약 LightGBM 이 0.857, 0.924 다. 무제약 LightGBM 은 손실은 비슷하지만 90% 대역 적중률이 85.5%, 85.8% 로 대역이 너무 좁았다(Kupiec p 0.000).

모형별 QLIKE 비와 90% 대역 적중(정본 런 summary.csv)
모형3선 비10선 비10선 p(부트)90% 적중 3선90% 적중 10선
카드1.0001.00091.6%90.1%
20일 중앙값1.1161.0750.99691.2%91.2%
HAR(5분 RV)1.0381.0140.82390.3%89.7%
카드 + 거친 HAR 결합1.0200.9820.01892.3%91.0%
카드(표본 밖 잔차 풀)1.0161.0050.90591.4%90.5%
BAM0.8630.9390.000290.9%89.1%
BAM 선형0.8620.9480.00391.2%89.8%
BAM 단조 트리0.8490.9250.000290.0%89.4%
무제약 LightGBM0.8570.9240.00485.5%85.8%

선택 편향 귀무

특징 원형 이동 귀무 200회의 QLIKE 비 히스토그램과 실제 값
그림 4. 외생 특징을 원형 이동하고 BAM 절차 전체를 다시 돌린 귀무 200회의 QLIKE 비(회색)와 실제 값(빨강).

귀무 200회의 QLIKE 비 중앙값은 3선 1.016, 10선 1.006 이고 5% 분위도 1.007, 1.002 였다. 시점이 어긋난 특징을 넣으면 그룹 라쏘가 일부 블록을 살려 두면서 잔차 풀이 조금 넓어지고 손실이 오히려 늘어난다. 실제 값(0.863, 0.939)보다 작은 귀무는 한 번도 없어 순열 p 는 가능한 가장 작은 값인 0.005 다. 고르는 절차가 만든 착시가 아니라 특징과 목표의 시점 대응에서 나온 이득이다.

이득은 어디서 왔나

이벤트 종류별 평균 QLIKE 를 카드와 BAM 으로 비교한 막대그림
그림 5. 이벤트 종류별 평균 QLIKE(확인 구간). 한 날에 표시가 둘 켜지면 두 막대에 모두 들어간다.

이벤트가 하나라도 있는 178세션에서 BAM 의 손실은 카드의 3선 0.568배, 10선 0.734배였고, 이벤트가 없는 998세션에서는 0.984배, 0.999배로 사실상 같았다. 그림 5 에서 보듯 차이는 금통위 날에 몰린다. 3선 금통위 날 카드의 평균 QLIKE 는 1.485 로 이벤트 없는 날(0.29)의 다섯 배이고, BAM 은 그것을 0.404 로 낮췄다. 손실 차 합으로 따지면 이득의 74%(3선), 77%(10선)가 금통위 39일에서 나왔다. 카드 중심의 금통위 날 로그 오차 평균은 +0.71, +0.44 로 실제 고저폭이 카드 중심의 2.0배, 1.5배였다.

블록을 하나씩만 넣은 모형으로 확인했다. 이벤트 블록만 넣으면 3선 0.877, 10선 0.937 로 전체 BAM 과 거의 같다. 미국 금리 블록만 넣으면 1.017, 1.007, 수급만 1.013, 1.006, 위험 심리만 1.010, 1.005 로 셋 모두 카드보다 조금 나쁘다. 탐색으로 BAM 에서 금통위 표시 하나만 빼자 1.004, 1.008 로 이득이 사라졌다. 반대로 카드 회귀에 금통위 표시 한 열만 더한 CARD_MPC 는 3선 0.874(p 0.0002), 10선 0.944(p 0.004)로 BAM 이득의 92% 를 재현했다. 블록 구조가 아니라 달력 한 칸이 이 실험의 결과다.

출처 분해(블록 하나씩은 정본 런 single_block.csv, 나머지는 탐색 런 variants.csv)
변형3선 비10선 비지위
US 블록만1.0171.007사전등록 비교
EVENT 블록만0.8770.937사전등록 비교
FLOW 블록만1.0131.006사전등록 비교
RISK 블록만1.0101.005사전등록 비교
US 블록 빼기0.8650.931사전등록 비교
EVENT 블록 빼기1.0001.003탐색
금통위 표시만 빼기1.0041.008탐색
CARD_MPC(카드 + 금통위 한 열)0.8740.944탐색
CARD_EV(카드 + 이벤트 다섯 열)0.8680.945탐색

블록 기여의 안정성

연도별로 블록을 뺐을 때 늘어나는 QLIKE 막대그림
그림 6. 확인 구간 연도별 블록 기여(그 블록 항을 학습 평균으로 고정했을 때 늘어나는 QLIKE).

블록 기여는 그 블록의 항을 학습 평균으로 고정했을 때 그해 QLIKE 가 얼마나 늘어나는지로 쟀다. 이벤트 블록은 다섯 해 모두 1위였다(3선 0.025 ~ 0.073, 10선 0.009 ~ 0.027). 나머지 세 블록의 기여는 −0.005 ~ +0.010 사이에서 해마다 순서가 바뀌었다. 이 때문에 네 블록 순위의 연도 쌍 켄달 τ 평균은 10선 0.40, 3선 0.53 으로, 둘 다 0.5 를 넘어야 하는 H1094 는 통과하지 못했다. 1위가 늘 같고 나머지가 잡음 수준이라는 뜻이지, 블록 기여가 흔들려 결론이 불안하다는 뜻은 아니다.

강건성 격자와 연도

기저와 벌점 규칙과 학습 창의 18칸 격자 열지도
그림 7. BAM 격자 18칸(기저 3 × λ 규칙 3 × 학습 창 2)의 QLIKE ÷ 카드. 1SE 는 검증 1 표준오차 규칙, 1500 은 최근 1,500세션 창이다.

사전등록한 격자에서 검증 최소 규칙과 벌점 없음(λ = 0)의 12칸은 3선 0.856 ~ 0.874, 10선 0.930 ~ 0.971 로 모두 카드보다 낫다. 경첩 수와 학습 창은 결과를 거의 바꾸지 않았다. 1 표준오차 규칙만 다르다. 이 규칙은 벌점을 크게 잡아 10선에서 블록을 거의 지워 0.993 ~ 1.005 가 되고, 3선에서도 0.907 ~ 0.982 로 이득이 줄었다. 이득을 내는 계수는 금통위 표시 하나인데 강한 벌점이 그 계수까지 0 쪽으로 당기기 때문이다.

연도별 QLIKE 비 꺾은선 그림
그림 8. 연도별 QLIKE ÷ 카드. 2026 은 10월 29일까지다.

연도별로 BAM 비는 3선 0.78 ~ 0.95, 10선 0.90 ~ 0.97 로 다섯 해 모두 1 보다 작았다. 2023 이 두 월물 모두 0.95 로 가장 작은 이득이었는데, 그해 금통위 날 움직임이 상대적으로 작았던 것과 맞는다. 하위 구간도 같다. 2024 이후 3선 0.852, 10선 0.953, 충격 창(2022-02-24 등 여덟 사건 뒤 10세션) 제외 0.865, 0.948, 08:45 개장 뒤 245세션 0.820, 0.917 이다. 발견 구간(2017 ~ 2021)도 같은 절차로 0.930, 0.953 이었다. 보조 목표 5분 실현 분산으로 바꿔도 BAM 은 카드 구조 대비 3선 0.776, 10선 0.866 으로 같은 방향이다(H1096, 탐색).

대역과 금통위 날

금통위 당일 실제 고저폭과 카드 및 BAM 예측 중심의 산점도
그림 9. 확인 구간 금통위 당일 39회의 실제 고저폭과 예측 중심. 점선 위에 있으면 예측이 작았다.

대역 쪽에서 보면 문제가 더 분명하다. 카드의 90% 대역은 금통위 날 3선 59%, 10선 67% 만 담았고 실제 고저폭이 대역 상단을 넘은 날이 41%, 33% 였다. 다른 날은 92.7%, 90.9% 로 명목에 맞으니 전체 적중률(91.6%, 90.1%)이 이 빈틈을 가린 셈이다. BAM 은 금통위 날 82%, 74% 로 나아졌지만 그룹 라쏘의 축소 탓에 중심이 아직 작다(로그 오차 +0.22, +0.13). CARD_MPC 는 금통위 날 87%, 85% 를 담고 중심의 로그 오차가 +0.04, +0.00 으로 치우침이 없으며, 다른 날 적중률은 91.5%, 90.9% 로 그대로였다. 금통위 날의 관망 판정과 손절 폭이 카드에서 체계적으로 좁게 나왔다는 뜻이다.

깊이 보강: 위약과 독립성

판정 뒤에 금통위 표시의 효과가 진짜 그날의 것인지, 기존 전략과는 어떻게 맞물리는지를 탐색으로 더 보았다. 이 절의 결과는 모두 사전등록 밖이라 판정에 쓰지 않는다. 먼저 위치 위약이다. 금통위 표시를 앞뒤로 k 세션 옮겨 카드 회귀에 넣으면(k = −5 ~ +5) 효과는 k = 0 에서만 나타난다. 옮긴 열 칸의 QLIKE 비는 3선 0.994 ~ 1.004, 10선 0.998 ~ 1.004 로 카드와 같고, 전날 표시는 1.004, 1.001 로 오히려 조금 나쁘다. 금통위 전날이나 다음 날의 변동은 카드가 이미 맞힌다는 뜻이다.

금통위 표시를 앞뒤 세션으로 옮긴 위약의 QLIKE 비 막대그림
그림 10. 카드 회귀에 금통위 표시를 k 세션 옮겨 넣었을 때의 QLIKE ÷ 카드(탐색). 빨강이 금통위 당일이다.

다음은 무작위 날짜 귀무다. 해마다 금통위 횟수만큼 금통위가 아닌 날을 무작위로 골라 가짜 표시로 넣고 카드 회귀를 걷기 전진으로 다시 돌리는 일을 200회 했다. 귀무의 QLIKE 비 중앙값은 3선 1.001, 10선 1.001 이었고 가장 운 좋은 경우도 0.992, 0.982 에 그쳤다. 실제 금통위 표시보다 좋은 무작위 표시는 한 번도 없었다(p 0.005). 연도별로도 CARD_MPC 는 3선 0.80 ~ 0.98, 10선 0.90 ~ 0.99 로 다섯 해 모두 카드보다 나았고 2023 이 가장 약했다.

무작위 날짜 표시 200회의 QLIKE 비 분포와 실제 금통위 표시
그림 11. 해마다 같은 수의 무작위 날짜를 표시로 넣은 귀무 200회(회색)와 실제 금통위 표시(빨강), 탐색.

결정 종류로 나누어 보았다. 확인 구간 39회 가운데 금리를 바꾼 14회의 로그 비(실제 고저폭 ÷ 카드 중심)는 3선 +0.81, 10선 +0.54 였고, 동결한 25회도 +0.65, +0.38 로 고저폭이 카드 중심의 1.9배, 1.5배였다. 실제 고저폭이 카드 중심보다 작았던 금통위 날은 3선 5%, 10선 18% 뿐이다. 결정 내용을 미리 알 필요 없이 날짜만으로 대역을 넓혀야 한다는 뜻이다.

깊이 보강 요약(탐색 런 20261111T091456_depth)
점검3선10선
CARD_MPC QLIKE 비0.8740.944
위약 k ≠ 0 범위0.994 ~ 1.0040.998 ~ 1.004
무작위 날짜 귀무 중앙값(최소), p1.001 (0.992), 0.0051.001 (0.982), 0.005
연도별 CARD_MPC 비0.80 ~ 0.980.90 ~ 0.99
금통위 날 로그 비, 변경 14회 / 동결 25회+0.81 / +0.65+0.54 / +0.38
실제가 카드 중심보다 작았던 금통위 날5%18%
되돌림 3선 확인 구간 거래(금통위 날)468 (0)
되돌림 계약당 순손익, 비용 0.5 / 1 / 2틱3.25 / 2.75 / 1.75틱

마지막은 기존 전략과의 독립성이다. 미국 야간 되돌림 3선 카드는 금통위 날을 이미 거래에서 뺀다(확인 구간 39일 모두 필터 이유가 금통위다). 그래서 카드에 금통위 표시를 넣어도 되돌림 거래의 날짜와 계약 수는 그대로이고, 바뀌는 것은 관망한 날의 채점과 손절 폭 참고에 쓰는 대역뿐이다. 확인 구간 되돌림 468건(연 약 97건)의 계약당 순손익은 비용 0.5틱에서 3.25틱, 1틱에서 2.75틱, 2틱에서 1.75틱이었다. 계약당 손익과 log(실제 고저폭 ÷ 카드 중심)의 상관은 0.25 로, 예측보다 넓게 움직인 날 되돌림이 더 벌었다. 변동 예측으로 계약 수를 줄이면 그 날을 덜 싣게 되므로 이 결과를 크기 조절에 쓰지 않는다. 금통위 전날 10선 매수는 전날 종가에 사서 금통위 날 시가에 파는 거래라 금통위 날 장중을 들고 있지 않아 시간상 겹침이 없다.

해석

카드 예측기는 고저폭의 짧은 역사와 미국 밤사이 변화를 본다. 금통위는 일 년 전에 날짜가 공표되는데도 카드는 그날을 평소처럼 예측한다. 금통위 날 고저폭은 평소의 1.5 ~ 2배라 카드의 QLIKE 손실에서 39일이 큰 몫을 차지한다. 블록 가법 모형은 이벤트 블록의 금통위 계수로 이 사실을 찾아냈다. 그러나 블록 구조가 더한 것은 없었다. 경첩을 뺀 선형 판과의 차는 3선 0.001, 10선 0.009 였고 다른 세 블록은 단독으로 카드보다 나빴다.

미국 금리 블록이 비어 있는 까닭은 카드가 이미 미국 10년 변화의 절댓값을 넣고 있어서다. 2년 금리, 커브, MOVE 는 그 위에 더할 것이 없었다. 수급과 위험 심리는 다음 날 고저폭과의 관계가 원래 약하다. 외국인 순매수는 가격과 함께 움직이지만 다음 날 변동을 미리 알려 주지는 않았다. VIX 와 VKOSPI 의 수준은 이미 카드의 20일 평균 고저폭에 반영되어 있다. 실무 결론은 경제 블록 모형을 들여오라는 것이 아니라 카드에 금통위 날 표시를 넣으라는 것이다. 확증 가설은 BAM 에 대해 잠갔으므로 판정은 BAM 의 채택이지만, 같은 이득을 한 열로 얻는 CARD_MPC 가 데스크에는 더 알맞다. 이 비교는 결과를 본 뒤의 탐색이라 다음 회의부터 전진으로 확인해야 한다.

한계

이득의 원천은 확인 구간 금통위 39일이다. 사실상 표본 단위가 회의 39개라 회의 하나하나의 무게가 크다. 연도별로는 다섯 해 모두 1 보다 작았지만 2023 은 0.95 로 작았고, 결정이 예상과 크게 다른 회의 몇 개가 평균을 끌었을 수 있다. 금통위 날짜 목록은 정례 일정표와 결정 표를 합친 것이다. 확인 구간 회의는 모두 정례 회의(해마다 8회)라 미리 알려졌지만, 학습 구간에 임시 회의가 섞였다면 학습 계수가 조금 부풀었을 수 있다.

자료에도 약점이 있다. 수급 원표가 2026-08-13 에 끝나 장중 수급 표로 이었고 두 원천이 겹치는 날이 없어 직접 대조하지 못했다(수급 블록 기여가 0 이라 결론에는 영향이 없다). 만기일 고저폭은 일봉 표 정의(그날 새 월물)를 그대로 썼고, 일봉 표에 없는 2026-09-14 를 빼서 그 뒤 28세션의 카드 특징이 하루씩 다른 이력을 쓴다. 이 두 가지는 모든 모형에 똑같이 적용된다.

결과를 본 뒤의 일도 적어 둔다. 정본 런 전에 같은 코드로 귀무 2회만 돌린 시험 런이 있었고, 거기서 이벤트 블록이 이득을 내는 것을 보고 만기일 고저폭과 금통위 날짜 출처의 누설을 점검했다. 코드와 계획은 바꾸지 않았다. CARD_MPC 는 결과를 보고 만든 변형이라 확증이 아니다. 비용과 손익은 다루지 않았다. 앞선 실험에서 변동 예측으로 계약 수를 줄이는 것은 손해였으므로 이 결과를 크기 조절로 옮겨서는 안 된다. 블록 정의를 바꾸면(예: 국고채 입찰, 미국 소비자물가) 다른 답이 나올 수 있다.

다음에 해 볼 것

첫째, CARD_MPC 를 잠그고 2026-11-26 회의부터 앞으로의 회의 8회와 그 사이 세션으로 전진 검정한다. 판정은 금통위 날 90% 대역 적중률이 카드보다 높고 전체 QLIKE 가 카드보다 낮은 것으로 미리 정한다. 둘째, 금통위 날 고저폭이 결정 발표와 총재 기자간담회 가운데 어디서 생기는지 1분봉으로 나누어, 카드의 장중 남은 고저폭 대역을 그날만 넓히는 규칙을 만든다. FOMC 다음 날과 미국 고용 다음 날은 이번에 증분이 거의 없었으므로 넣지 않는다.

산출물

이 페이지의 수치는 모두 아래 런 산출물에서 옮겼다. 재현은 저장소 뿌리에서 순서대로 실행한다. 정본 런은 약 17분, 탐색 런은 약 3분, 깊이 보강 런은 약 8분 걸린다. 그림은 code/render_figures.py 20261111T083656_main 20261111T085400_explore 20261111T091456_depth 로 다시 그린다.

  • 사전등록protocol.md (커밋 917c5ebd)
  • 분석과 판정analysis.md
  • 데이터 점검code/s0_datacheck.py, results/datacheck.json
  • 정본 런code/s1_main.py --nperm 200, results/20261111T083656_main/
  • 탐색 런code/s2_explore.py 20261111T083656_main, results/20261111T085400_explore/
  • 깊이 보강 런code/s3_depth.py 20261111T083656_main, results/20261111T091456_depth/
  • 그림code/render_figures.py, code/render_model.py
  • 재현 명령uv run python experiments/0286_block_additive_vol_forecast/code/s1_main.py --nperm 200

Appendix

A. 데이터셋 실물

10선 패널의 실제 행이다(확인 구간 마지막 여드레, 정본 런이 읽은 캐시 패널). 2026-10-22 는 금통위 날, 2026-10-29 는 FOMC 결정 다음 날이다.

10선 패널 실물(rng 는 목표, 나머지는 개장 전 특징)
일자rngl1m20ad_us10move_lvlev_mpcev_fomcfr1vkospi_lvl
2026-10-20613.8923.9670.666.64.618003.2933.883
2026-10-21304.1113.9510.28−2.84.622001.0003.900
2026-10-22373.4013.9390.090.94.564100.0193.877
2026-10-23643.6113.9061.67−16.74.671001.0323.904
2026-10-26554.1593.9240.414.14.638000.9023.952
2026-10-27634.0073.9300.06−0.64.627002.2633.960
2026-10-28674.1433.9440.090.94.584000.9993.938
2026-10-29404.2053.9590.202.04.549010.8983.948

필드 뜻: rng 는 그날 고저폭(틱), l1 과 m20 은 카드 특징(로그), a 는 미국 10년 변화 절댓값 ÷ 10, d_us10 은 부호 있는 미국 10년 변화(bp), move_lvl 은 log MOVE, fr1 은 직전 세션 외국인 순매수 절댓값을 60세션 중앙값으로 나눈 값, vkospi_lvl 은 log VKOSPI 다. 2026-10-22 금통위 날 카드 중심은 43.8틱, BAM 중심은 52.9틱이었고 실제는 37틱으로 그날은 조용했다.

B. 모델 입출력 실물

확인 구간 마지막 예측일 2026-10-29 10선에서 모형들이 실제로 받은 입력과 낸 출력이다(정본 런 forecasts_10선). 그날 FOMC 표시가 켜져 있어 BAM 의 이벤트 항이 양수였다.

입력(카드)
l1 4.205, m5 4.047, m20 3.959, a 0.20, 적합 창 750세션.
입력(블록)
US: d_us10 +2.0, d_us2 −4.1, abs_curve 6.1, move_lvl 4.549, d_move −3.45, us10_vol20 5.68. EVENT: ev_fomc 1, 나머지 0. FLOW: fr1 0.898, fr5 4.31, frs1 −0.898. RISK: vix_lvl 2.828, d_vix −3.54, vix_ratio 0.99, d_credit +0.26, credit20 −1.22, ndf_vol20 0.372, vkospi_lvl 3.948, d_vkospi +1.01.
출력(카드)
로그 예측 3.936, 중심 49.8틱, 80% 대역 31.7 ~ 83.0, 90% 대역 29.1 ~ 96.9, h 3,496.
출력(BAM)
로그 예측 3.974(보정 +0.038), 중심 51.4틱, 80% 대역 33.5 ~ 84.7, 90% 대역 30.4 ~ 96.9, h 3,612.
출력(비교)
BAM 단조 트리 중심 55.8틱, 무제약 LightGBM 55.99틱, HAR(5분 RV) 43.2틱.
정답
실제 고저폭 40틱. 다섯 모형의 80% 대역이 모두 담았다.

C. 실험 설정

설정(protocol.md 와 code/s1_main.py)
항목값
확인 구간2022-01-03 ~ 2026-10-29, 1,176세션(두 월물)
블록 보정 학습2013-06-03 부터 확장창, 해마다 1월 첫 세션 재적합(5회)
카드 창직전 750세션(최소 250), 매일, 미국 특징 결측은 창 중앙값
그룹 라쏘FISTA, 최대 3,000회, 허용 오차 1e-8, λ 12개(λ_max ~ λ_max/1000), 검증 마지막 500세션
경첩q50, q80(학습 창 z 분위), 1 ~ 99% 자르기
단조 트리LightGBM 깊이 2, 잎 3, 나무 150, 학습률 0.03, 잎 최소 80, 역적합 3회, 스레드 2
무제약 LightGBM깊이 4, 잎 15, 나무 300, 학습률 0.03, 잎 최소 50, 표본 0.8, 열 0.8
잔차 풀과 대역직전 750세션 로그 잔차, 80% = 10 ~ 90%, 90% = 5 ~ 95% 분위
검정DM 뉴이웨스트 지연 20, 달 블록 부트스트랩 5,000회, 원형 이동 귀무 200회(이동 250세션 이상), Holm
충격 창2022-02-24, 2023-03-10, 2023-10-09, 2024-04-15, 2024-08-05, 2024-12-04, 2025-04-03, 2025-06-13 부터 10세션
비용해당 없음(예측기 비교)
난수부트스트랩 시드 286, 귀무 시드 286(3선), 287(10선), LightGBM 286