3년 국채선물 · 금통위 회의 138회(시험 103회) · 2012 ~ 2026 · 연 단위 걷기 전진 · L2 로지스틱 회귀

회의 전에 아는 정보로 금통위일 3년 국채선물 방향을 맞힐 수 있는가

시장이 본 결정 방향, 그 기대의 최근 변화, 회의 전 일주일 가격 흐름, 미국 금리, 외국인 수급을 묶어 금통위일 3년 국채선물이 오를지 내릴지를 맞히는 작은 로지스틱 회귀를 해마다 다시 학습했다(특징 다섯 개, 연 단위 걷기 전진). 시험 103회에서 모델은 회의당 −0.65틱으로 «항상 매수» +1.49틱에 졌고, 방향은 우연 수준이었다.

폐기 모델 −0.65 대 항상 매수 +1.49틱 · p 0.64 · 0.90 적중 51.5% · 시험 103회 가설 H193 · H194

세 줄 요약

  1. 회의 전에 아는 특징 다섯 개로 학습한 L2 로지스틱은 시험 103회(2015 ~ 2026)에서 왕복 0.5틱 뒤 회의당 −0.65틱, 적중률 51.5% 였다.
  2. 같은 회의에서 아무 판단 없이 «항상 매수» 한 쪽은 +1.49틱 이었다. 모델이 «매도» 를 낸 32회에 시장은 평균 +3.44틱 올랐다.
  3. H193(p 0.64)과 H194(p 0.90) 모두 미지지라 판정은 폐기다. 회의 전 정보로 금통위일 방향은 맞혀지지 않았다.

가설과 결론

질문
금통위일 3선의 방향(전날 종가 → 당일 종가)을 회의 전에 이미 알려진 정보 여럿으로 맞혀 비용을 넘을 수 있는가. 그리고 그것이 금통위 전 평균적인 강세에 그냥 올라타는 «항상 매수» 보다 나은가.
가설
계획서를 결과 전에 커밋했다(2d188ac). H193: 모델 손익 평균 > 0(부호 뒤집기 단측). H194: 모델 손익 − «항상 매수» 손익 평균 > 0(짝지은 부호 뒤집기 단측). 두 가설에 Holm 보정을 걸고 α 0.05, 둘 다 통과해야 «방향을 맞히는 전략» 으로 본다.
결론
둘 다 미지지, 폐기. 모델 −0.65틱(p 0.64, Holm 1.0), 항상 매수 대비 −2.14틱(p 0.90, Holm 1.0). 연도별로 크게 이기고 지는 해가 엇갈려(2022 +14.25, 2024 −11.12) 일관된 우위가 없다.

용어와 기호

금통위
한국은행 금융통화위원회. 기준금리를 정하는 회의이고, 이 리포트에서 «회의» 는 금리 결정 회의 하나를 뜻한다.
3선
3년 국채선물(연결 월물). 가격이 오르면 금리가 내린 것(강세)이다.
틱
3선 가격 0.01 포인트. 모든 손익은 계약 하나 기준 틱이다.
bp
베이시스 포인트, 금리 0.01%p.
s, s−1, s−6
s 는 금통위 회의일, s−1 은 그 직전 거래일, s−6 은 다섯 거래일 더 앞이다.
C(d)
거래일 d 의 3선 종가(그날 마지막 1분봉 가격, 종가 단일가). 진입은 C(s−1), 청산은 C(s) 다.
종가 단일가
장 마감 직전 주문을 모아 한 가격으로 체결하는 방식. 이 리포트의 진입 및 청산 가격이다.
y
표적. y = (C(s) − C(s−1)) / 0.01, 금통위일 하루 3선 변화(틱). 학습 라벨은 y > 0 이면 1(상승), 아니면 0 이다.
통안 1년
만기 1년 통화안정증권 금리. 1년 안 기준금리 경로에 대한 시장 기대를 담는다.
E
시장이 본 결정 방향. E = (통안 1년(s−1) − 그 회의 전 기준금리) × 100 (bp). 양이면 시장이 인상 쪽, 음이면 인하 쪽을 본다.
dE20
E(s−1) − 20거래일 전 E (bp). 기대가 최근 어느 쪽으로 움직였나.
R5
3선 C(s−6) → C(s−1) 변화(틱). 회의 전 일주일 가격 흐름.
US5
미국 10년 국채 금리의 5영업일 변화(bp). 날짜가 s−1 이하인 마지막 뉴욕 종가에서 그보다 다섯 종가 앞의 값을 뺀다.
FNB5
외국인의 3선 순매수 5일 합 ÷ 그 5일 합의 직전 250일 표준편차(전날까지, 최소 120일). 외국인 수급이 없는 날은 0 으로 채운다.
z
표준화한 특징. 학습창의 평균을 빼고 표준편차로 나눈 값. 학습창 밖(시험 연도)은 보지 않는다.
w, b
로지스틱 회귀의 계수(특징마다 하나)와 절편. 표준화 공간의 값이라 «1 표준편차당 로그오즈» 로 읽고 서로 크기를 비교할 수 있다.
σ
로지스틱 함수 σ(t) = 1 / (1 + e−t). 선형 점수를 0~1 확률로 바꾼다.
p_up
모델이 낸 상승 확률 P(y > 0) = σ(b + Σ wᵢ·zᵢ).
L2 로지스틱 회귀
계수 제곱합에 벌점을 주는 로지스틱 회귀(scikit-learn LogisticRegression). 계수가 지나치게 커지지 않게 눌러 작은 표본의 과적합을 줄인다.
C (규제)
로지스틱 회귀의 역규제 강도. 작을수록 계수를 더 세게 누른다. 종가 C(d) 와는 다른 기호다.
걷기 전진(워크포워드)
시험 연도 Y 마다 Y 전의 자료만으로 모델을 새로 학습하고 Y 년 회의를 예측하는 방식. 시험 자료가 학습에 들어가지 않는다.
확장창
학습 시작점을 고정(2012-02)하고 끝만 한 해씩 미래로 늘리는 학습창.
폴드
걷기 전진의 한 단계(학습창 하나 + 시험 연도 하나). 2015 ~ 2026 의 12개다.
포지션
p_up > 0.5 면 C(s−1) 매수(+1), 아니면 매도(−1), C(s) 에 청산.
손익
포지션 × y − 0.5틱(왕복 비용). «항상 매수» 손익은 y − 0.5틱이다.
항상 매수
판단 없이 모든 회의에 C(s−1) 매수 → C(s) 청산하는 기준선.
적중률
sign(y) 와 포지션이 같은 회의의 비율. y = 0 인 회의(시험 2회)는 빗나간 것으로 센다.
부호 뒤집기 검정
회의마다 손익의 부호를 무작위로 뒤집어(20,000회) 평균이 관측값 이상이 되는 비율을 p 로 삼는 단측 순열 검정. «짝지은» 은 같은 회의의 모델 − 항상 매수 차이에 적용한다는 뜻이다.
Holm
여러 가설을 함께 볼 때 p 를 작은 순서로 (남은 가설 수)배 키워 거짓 발견을 막는 보정.
H193, H194
이 실험이 사전등록한 두 가설의 번호(가설과 결론 절).

자료

쓴 자료. 회의 하나가 한 행이고, 모든 특징은 진입 시점 C(s−1) 기준으로 만든다.
자료기간해상도행수 · 결측쓰임
3선 연결 1분봉2012-01 ~ 2026-10-151분 → 거래일 종가—표적 y, 특징 R5
금통위 결정 표(회의일·결정금리)2012-02 ~ 2026-08회의회의 138회의일 s, 직전 기준금리(E 의 기준)
일별 자료 풀 — 통안 1년2012 ~ 2026일—특징 E · dE20
일별 자료 풀 — 미국 10년2012 ~ 2026일(뉴욕 날짜 종가)—특징 US5
투자자별 3선 순매수(외국인)2013-05 ~ 2026일0 채움 23회(시험 1회)특징 FNB5
분석 표본과 분할
묶음기간회의비고
전체2012-02-09 ~ 2026-08-27138특징 다섯이 다 있는 회의(앞쪽 26거래일 미만 회의 제외)
학습 전용(첫 폴드 전)2012-02 ~ 2014-1235시험에는 쓰이지 않는다
시험2015-01-15 ~ 2026-08-27103연도별 12 · 12 · 8 · 8 · 8 · 9 · 8 · 8 · 8 · 8 · 8 · 6
y = 0 회의전 기간5 (시험 2)학습에서는 뺀다(라벨이 정해지지 않는다)

방법

표적과 매매. 금통위일 하루의 3선 변화 y 를 맞힌다. 진입은 전날 종가 단일가 C(s−1), 청산은 회의일 종가 단일가 C(s) 이고 왕복 비용은 0.5틱으로 둔다. 모델이 낸 상승 확률 p_up 이 0.5 를 넘으면 매수, 아니면 매도한다. 쉬는 회의는 없다.

특징을 다섯으로 묶은 까닭. 회의가 138회뿐이라 특징을 늘리면 과적합이 먼저 온다. 그래서 금리 결정과 직접 닿는 것만 골랐다: 시장이 본 결정 방향 E, 그 기대가 최근 움직인 쪽 dE20, 회의 전 가격 흐름 R5(이미 반영됐는지), 미국 금리 US5(해외 금리 압력), 외국인 수급 FNB5. 하이퍼파라미터 탐색은 하지 않았다.

걷기 전진. 시험 연도 Y(2015 ~ 2026)마다 Y 전의 모든 회의(2012-02 부터)로 표준화와 로지스틱 회귀를 새로 학습하고, Y 년 회의를 예측한다. 첫 폴드는 32회로 학습해 2015년 12회를, 마지막 폴드는 127회로 학습해 2026년 6회를 예측했다.

연 단위 확장창 걷기 전진의 폴드별 학습·시험 회의 수
그림 1. 걷기 전진 분할. 행 하나가 폴드 하나다. 짙은 막대가 학습창(2012 부터 시험 연도 직전까지), 주황 막대가 시험 연도이며 둘은 겹치지 않는다. 막대 안 숫자는 실제로 쓴 회의 수다(학습은 y = 0 회의를 뺀 수).

검정. H193 은 시험 103회 모델 손익에, H194 는 회의마다 (모델 손익 − 항상 매수 손익)에 부호 뒤집기 단측 검정(20,000회)을 걸고 두 p 에 Holm 보정을 한다.

모델

계열은 L2 로지스틱 회귀 하나다. 다섯 특징의 가중합 b + Σ wᵢ·zᵢ 를 σ 로 확률로 바꾸는 가장 단순한 분류기이고, 작은 표본에서 특징의 방향(어느 쪽으로 미는가)을 그대로 읽을 수 있어 골랐다. 설정은 계획서에 결과 전에 고정했다.

모델과 학습 세팅 전부(scikit-learn 1.9.0)
항목값
모델LogisticRegression — L2 벌점(l1_ratio 0)
C (역규제 강도)1.0 (탐색 없음)
solver · max_iter · tollbfgs · 1000 · 1e-4 (폴드별 실제 반복 6 ~ 8회)
fit_intercept · class_weightTrue · None (계급 가중 없음)
random_stateNone — lbfgs 는 무작위성이 없어 결과가 정해진다
전처리StandardScaler — 폴드마다 학습창으로만 적합, 결측 대치 없음(FNB5 만 0 채움)
특징E · dE20 · R5 · US5 · FNB5 (5개, 모두 C(s−1) 기준)
라벨1[y > 0], y = 0 회의는 학습에서 뺀다
학습 방식연 단위 확장창 걷기 전진: 시험 연도 Y 마다 2012-02 ~ (Y−1)-12 회의로 학습, 첫 시험 연도 2015, 폴드 12개
결정 규칙p_up > 0.5 → 매수, 아니면 매도 · C(s−1) 진입 · C(s) 청산 · 왕복 0.5틱

아래 구조도는 마지막 폴드(학습 2012 ~ 2025, 127회, 시험 2026, 6회)의 모델이다. 그리기 전에 wf.py 와 같은 순서로 폴드 12개를 다시 학습해, 커밋된 103회 p_up 을 그대로(최대 차이 1.1e-16) 내는지 확인했다.

L2 로지스틱 — 마지막 폴드 (학습 2012~2025, 시험 2026)

L2 로지스틱 · 3선 금통위일 방향 · 학습 ~2025 · 시험 2026 입력 데이터 금통위 회의 한 번이 한 행 학습 2012-02~2025-11 127회 (y = 0 제외) 시험 2026년 6회 특징 5개 (C(s−1) 시점) E · dE20 시장 기대 방향 R5 3선 5일 흐름 US5 미국 10년 5일 변화 FNB5 외국인 5일 순매수 학습창으로 표준화 L2 로지스틱 회귀 (LogisticRegression · C = 1.0) 1. 표준화 학습창 평균·표준편차로 z 화 — 계수가 서로 비교 가능해진다 2. 선형 결합 z = b + Σ wᵢ·xᵢ (계수 5개) 3. 링크 σ(z) → 확률 출력 P(y > 0) > 0.5 C(s−1) 매수 ≤ 0.5 C(s−1) 매도 C(s) 청산, 비용 0.5틱 계수 — 세팅과 학습 결과 피처 5개 표준화된 공간의 계수 — 서로 크기 비교가 된다 0 이 아닌 계수 5개 절편 b = +0.2170 모든 피처가 학습창 평균일 때의 출발점 기저율 쏠림이 여기에 담긴다 |w| 최대 = 0.3465 가장 센 피처: R5 3선 5일 흐름(틱) |w| 중앙값 0.0908 C = 1.0 역정규화 강도 작을수록 더 강한 규제
실제로 학습한 마지막 폴드 모델의 단계와 숫자다. 폴드 12개를 다시 학습해 커밋된 103회 예측을 그대로 내는 것을 확인한 뒤 그렸다.
표준화 계수 — 1 표준편차당 로그오즈 ← 하락 쪽 상승 쪽 → R5 3선 5일 흐름(틱) -0.3465 E 통안1년−기준금리(bp) +0.2909 US5 미국10년 5일 변화(bp) -0.0908 FNB5 외국인 5일 순매수(z) -0.0202 dE20 E의 20일 변화(bp) -0.0059 표준화된 공간의 계수 상위 5개 · 절편 b = +0.2170 · 전체 5개 중
막대 길이가 학습된 계수다. 오른쪽(상승 쪽)으로 길수록 그 특징이 1 표준편차 클 때 금통위일 상승 확률을 올린다.

폴드 12개 모델의 계수를 모두 그리면(그림 2) 학습창이 커지며 무엇이 흔들렸는지 보인다. E 는 줄곧 양(시장이 인상 쪽을 볼수록 상승 확률을 올림)이었지만 0.84(2015 폴드)에서 0.25(2025 폴드)로 줄었다. R5 는 2016 폴드부터 음(회의 전 일주일 강세 뒤에는 하락 쪽)이다. dE20 은 2020 폴드까지 양이다가 2021 ~ 2024 폴드에서 음으로 뒤집혔고, 마지막 두 폴드에서는 0 근처다. US5 도 2017 폴드부터 양에서 음으로 바뀌었다. 계수의 방향이 학습창에 따라 바뀌는 특징이 있다는 것 자체가, 이 특징들의 관계가 시기를 넘어 안정적이지 않다는 신호다.

폴드 12개 로지스틱 회귀의 표준화 계수와 절편
그림 2. 폴드별로 학습된 표준화 계수 w 와 절편 b. 가로축은 그 모델이 예측한 시험 연도다. 절편이 2018 폴드부터 양인 것은 학습창에서 상승 회의가 더 많아졌기 때문이다.

결과

모델과 항상 매수의 누적 손익, 연도별 회의당 손익
그림 3. 왼쪽: 시험 103회 누적 손익(틱, 왕복 0.5틱 뒤). 오른쪽: 연도별 회의당 평균 손익. 주황이 모델, 회색이 항상 매수다.
판정. 시험 103회, 틱, 왕복 0.5틱 뒤. 런 results/20261018T030643Z_main/
갈래회의당 손익누적적중률p (단측)Holm
모델 (H193)−0.65−66.551.5%0.6351.0
항상 매수+1.49+153.5———
모델 − 항상 매수 (H194)−2.14——0.9031.0

모델은 비용을 넘지 못했고, 판단 없이 사는 쪽보다도 회의당 2.14틱 나빴다. 적중률 51.5% 는 시험 회의 중 상승 비율 55.3% 에도 못 미친다.

모델 판단별로 가른 시험 회의. y 는 비용 전, 손익은 0.5틱 뒤.
모델 판단회의그 회의의 평균 y적중률회의당 손익
매수 (p_up > 0.5)71 (69%)+1.3454.9%+0.84
매도 (p_up ≤ 0.5)32 (31%)+3.4443.8%−3.94

진 몫은 거의 «매도» 판단에서 나왔다. 모델이 하락을 점친 32회에 시장은 오히려 평균 +3.44틱 올랐다. 매수 판단 71회도 평균 y +1.34틱으로 전체 평균(+1.99틱)보다 낮아, 모델이 고른 회의가 더 나은 회의였다는 증거가 없다. 남는 것은 방향과 무관하게 금통위일에 평균적으로 오르는 성향뿐이다.

연도별 회의당 손익(틱, 0.5틱 뒤)
연도회의모델항상 매수
201512−0.42−1.08
201612−4.50−2.83
20178+0.62+0.62
20188+4.87+4.87
20198+0.50+2.25
20209−1.94+2.28
20218−3.87−3.87
20228+14.25+14.25
20238−1.25+1.75
20248−11.12+10.12
20258−4.00−6.50
20266+1.67−1.33

모델과 항상 매수가 같은 해(2017, 2018, 2021, 2022)는 그 해 회의 모두에 매수를 낸 해다. 갈린 해 가운데 2024 가 가장 컸다. 시장이 8회 모두 인하 쪽을 본 해(E 가 모두 음)라 양의 E 계수가 확률을 0.5 아래로 끌어내려 8회 모두 매도였고, 시장은 회의당 +10.12틱 올랐다.

한계

US5 의 시점. US5 는 날짜가 s−1 인 뉴욕 종가까지 쓴다. 그 종가는 한국 시각으로 s 일 새벽에 나오므로 C(s−1) 진입 순간에는 아직 모르는 값이고, 표적 구간(C(s−1) → C(s))의 미국 밤사이 움직임과 겹친다. 이 어긋남은 모델에 유리한 쪽이므로 «맞히지 못했다» 는 판정을 바꾸지 않는다.
FNB5 의 크기. 시험 구간의 FNB5 는 평균 3.35, 범위 −0.45 ~ 9.47 로 0 을 중심으로 흩어지지 않는다(2015년 6 ~ 8, 2026년 0 근처). 순매수 원천의 단위와 누적 여부를 이 실험에서 따로 확인하지 않았다. 계수가 작아(마지막 폴드 −0.02) 결론에 미치는 몫은 작다.
표본. 시험 103회, 한 해 6 ~ 12회라 연도별 손익은 회의 한두 번에 크게 흔들린다.
특징 선택. 다섯 특징은 결과 전에 정했지만, 같은 금통위 표본을 앞서 다룬 연구 흐름 안에서 고른 것이다.

산출물

  • 계획·가설protocol.md (커밋 2d188ac, 결과 전)
  • 분석·판정analysis.md
  • 설정config.yaml
  • 코드code/wf.py, code/render_model.py(재현 확인, 구조도, 계수 그림), code/render_figures.py
  • 런results/20261018T030643Z_main/ (predictions.csv, tests.json)
  • 폴드 표results/folds.csv: 폴드별 학습과 시험 회의 수, 계수와 절편(render_model.py 가 다시 학습해 남김)

Appendix

A. 데이터셋 실물

predictions.csv 는 시험 회의 한 번이 한 행이다. 마지막 네 행(2026):

열: y(틱), E, dE20, US5(bp), R5(틱), FNB5, p_up, 포지션, 모델 손익, 항상 매수 손익(틱)
syEdE20R5US5FNB5p_up포지션손익항상 매수
2026-04-10−935.820.358−3.20.2420.431−1+8.5−9.5
2026-05-28−1748.515.116−10.4−0.1780.627+1−17.5−17.5
2026-07-16+880.034.9−3115.50.0780.784+1+7.5+7.5
2026-08-27+1952.0−2.53−5.90.0000.670+1+18.5+18.5

2026-08-27 의 FNB5 0.000 은 외국인 수급이 없어 0 으로 채운 값이다.

B. 모델 입출력 실물

Request meta
마지막 폴드 모델(학습 2012-02 ~ 2025, 127회), 회의 2026-07-16, 진입 C(2026-07-15)
Input
E 80.0bp, dE20 34.9bp, R5 −31틱, US5 15.5bp, FNB5 0.078 → 학습창으로 표준화
Model response
p_up 0.784 > 0.5 → 매수(+1)
Ground truth check
y +8틱으로 적중, 손익 +7.5틱(0.5틱 뒤)

C. 실험 설정

  • 표본2012-01-01 ~ 2026-10-15, 첫 시험 연도 2015
  • 모델LogisticRegression(C = 1.0, max_iter = 1000), 나머지 기본값, StandardScaler
  • 비용왕복 0.5틱(종가 단일가 진입과 청산)
  • 검정부호 뒤집기와 짝지은 부호 뒤집기 단측 20,000회(seed 0), Holm 2개, α 0.05