세 줄 요약
- 회의 전에 아는 특징 다섯 개로 학습한 L2 로지스틱은 시험 103회(2015 ~ 2026)에서 왕복 0.5틱 뒤 회의당 −0.65틱, 적중률 51.5% 였다.
- 같은 회의에서 아무 판단 없이 «항상 매수» 한 쪽은 +1.49틱 이었다. 모델이 «매도» 를 낸 32회에 시장은 평균 +3.44틱 올랐다.
- 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
- 이 실험이 사전등록한 두 가설의 번호(가설과 결론 절).
자료
| 자료 | 기간 | 해상도 | 행수 · 결측 | 쓰임 |
|---|---|---|---|---|
| 3선 연결 1분봉 | 2012-01 ~ 2026-10-15 | 1분 → 거래일 종가 | — | 표적 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-27 | 138 | 특징 다섯이 다 있는 회의(앞쪽 26거래일 미만 회의 제외) |
| 학습 전용(첫 폴드 전) | 2012-02 ~ 2014-12 | 35 | 시험에는 쓰이지 않는다 |
| 시험 | 2015-01-15 ~ 2026-08-27 | 103 | 연도별 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회를 예측했다.
검정. H193 은 시험 103회 모델 손익에, H194 는 회의마다 (모델 손익 − 항상 매수 손익)에 부호 뒤집기 단측 검정(20,000회)을 걸고 두 p 에 Holm 보정을 한다.
모델
계열은 L2 로지스틱 회귀 하나다. 다섯 특징의 가중합 b + Σ wᵢ·zᵢ 를 σ 로 확률로 바꾸는 가장 단순한 분류기이고, 작은 표본에서 특징의 방향(어느 쪽으로 미는가)을 그대로 읽을 수 있어 골랐다. 설정은 계획서에 결과 전에 고정했다.
| 항목 | 값 |
|---|---|
| 모델 | LogisticRegression — L2 벌점(l1_ratio 0) |
| C (역규제 강도) | 1.0 (탐색 없음) |
| solver · max_iter · tol | lbfgs · 1000 · 1e-4 (폴드별 실제 반복 6 ~ 8회) |
| fit_intercept · class_weight | True · None (계급 가중 없음) |
| random_state | None — 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)
폴드 12개 모델의 계수를 모두 그리면(그림 2) 학습창이 커지며 무엇이 흔들렸는지 보인다. E 는 줄곧 양(시장이 인상 쪽을 볼수록 상승 확률을 올림)이었지만 0.84(2015 폴드)에서 0.25(2025 폴드)로 줄었다. R5 는 2016 폴드부터 음(회의 전 일주일 강세 뒤에는 하락 쪽)이다. dE20 은 2020 폴드까지 양이다가 2021 ~ 2024 폴드에서 음으로 뒤집혔고, 마지막 두 폴드에서는 0 근처다. US5 도 2017 폴드부터 양에서 음으로 바뀌었다. 계수의 방향이 학습창에 따라 바뀌는 특징이 있다는 것 자체가, 이 특징들의 관계가 시기를 넘어 안정적이지 않다는 신호다.
결과
| 갈래 | 회의당 손익 | 누적 | 적중률 | p (단측) | Holm |
|---|---|---|---|---|---|
| 모델 (H193) | −0.65 | −66.5 | 51.5% | 0.635 | 1.0 |
| 항상 매수 | +1.49 | +153.5 | — | — | — |
| 모델 − 항상 매수 (H194) | −2.14 | — | — | 0.903 | 1.0 |
모델은 비용을 넘지 못했고, 판단 없이 사는 쪽보다도 회의당 2.14틱 나빴다. 적중률 51.5% 는 시험 회의 중 상승 비율 55.3% 에도 못 미친다.
| 모델 판단 | 회의 | 그 회의의 평균 y | 적중률 | 회의당 손익 |
|---|---|---|---|---|
| 매수 (p_up > 0.5) | 71 (69%) | +1.34 | 54.9% | +0.84 |
| 매도 (p_up ≤ 0.5) | 32 (31%) | +3.44 | 43.8% | −3.94 |
진 몫은 거의 «매도» 판단에서 나왔다. 모델이 하락을 점친 32회에 시장은 오히려 평균 +3.44틱 올랐다. 매수 판단 71회도 평균 y +1.34틱으로 전체 평균(+1.99틱)보다 낮아, 모델이 고른 회의가 더 나은 회의였다는 증거가 없다. 남는 것은 방향과 무관하게 금통위일에 평균적으로 오르는 성향뿐이다.
| 연도 | 회의 | 모델 | 항상 매수 |
|---|---|---|---|
| 2015 | 12 | −0.42 | −1.08 |
| 2016 | 12 | −4.50 | −2.83 |
| 2017 | 8 | +0.62 | +0.62 |
| 2018 | 8 | +4.87 | +4.87 |
| 2019 | 8 | +0.50 | +2.25 |
| 2020 | 9 | −1.94 | +2.28 |
| 2021 | 8 | −3.87 | −3.87 |
| 2022 | 8 | +14.25 | +14.25 |
| 2023 | 8 | −1.25 | +1.75 |
| 2024 | 8 | −11.12 | +10.12 |
| 2025 | 8 | −4.00 | −6.50 |
| 2026 | 6 | +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):
| s | y | E | dE20 | R5 | US5 | FNB5 | p_up | 포지션 | 손익 | 항상 매수 |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026-04-10 | −9 | 35.8 | 20.3 | 58 | −3.2 | 0.242 | 0.431 | −1 | +8.5 | −9.5 |
| 2026-05-28 | −17 | 48.5 | 15.1 | 16 | −10.4 | −0.178 | 0.627 | +1 | −17.5 | −17.5 |
| 2026-07-16 | +8 | 80.0 | 34.9 | −31 | 15.5 | 0.078 | 0.784 | +1 | +7.5 | +7.5 |
| 2026-08-27 | +19 | 52.0 | −2.5 | 3 | −5.9 | 0.000 | 0.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