3년 국채선물 · 미국 10년 밤사이 변화 되돌림 · 2013-01~2026-09 · 가중 베이즈 능형 회귀와 걷기 전진

금리 국면과 외국인 수급, 금리 기대로 거래일을 고르면 3년 국채선물 미국 야간 되돌림이 나아지는가

미국 10년 금리가 밤사이 3bp 이상 움직이면 다음 한국 세션 3년 국채선물을 반대로 시가에 들어가 종가에 나오는 규칙이 있다. 이 규칙의 손익이 연준과 한은의 금리 국면, 미국 2년 금리 추세, 외국인 선물 순매수, 시장이 반영한 한은 경로에 따라 달라지는지 쟀고, 그 정보로 거래할 날을 고르면 걷기 전진에서 나아지는지 봤다. 전체 표본으로 나누면 차이가 커 보였지만 걷기 전진에서는 오히려 나빠졌다. 국면 효과의 부호가 시기마다 뒤집혔기 때문이다.

기각 · 넣으면 나빠진다 · 태그는 카드 학습의 90% 관문으로만 후보 1,492 세션 · 평가 2016~2026 1,168 세션 모델 4종(M0~M3) + 카드 규칙 A/B 가설 H146

가설과 결론

가설
«인상기냐 인하기냐에 따라 미국 변동의 기준값이 달라야 하고, 변곡점에서는 예측력이 떨어진다. 같은 국면의 자료끼리 통계를 내야 한다. 외국인 순매수도 강하게 작용하고, 한은이 한 번 올리고 멈출 것 같은 기대도 반영돼야 한다»(2026-10-13 사용자). 이 정보를 아침에 알 수 있는 태그로 만들어 넣으면 되돌림 카드가 걷기 전진에서 지금 규칙을 이긴다(H146).
결론
국면마다 평균은 다르다. 그러나 그 차이를 써서 거래할 날을 고르면 걷기 전진에서 지금 규칙보다 나빠진다. 2016~2020 년에는 인하기가, 2021~2026 년에는 인상기가 좋았고, «인상기가 좋다» 는 대부분 2022 년 한 해에서 나온다. 두 시기 모두 같은 쪽이던 것은 «외국인 5일 동행 > 역행» 과 «인상 기대 강화» 뿐이다. 그래서 태그는 일일 카드 학습에 붙여 매일 다시 추정하되, 0 쪽 수축과 90% 관문을 넘을 때만 판정에 쓴다. 국면별 임계와 크기는 두지 않는다.
표 1. 가설과 판정. 수치는 results/summary.json, results/summary_card.json
번호가설판정근거
H146국면·수급·기대 태그를 아침 정보로 넣은 모델이 걷기 전진에서 지금 규칙(M0)을 이긴다 — 같은 세션 일별 손익의 쌍 차이 > 0기각 M3 − M0 세션당 −0.52틱(t −3.81, 20세션 블록 부트스트랩 p < 0.001). M2 −0.42(t −3.18), M1 −0.21(t −2.64). 카드 학습 규칙으로는 차이 0

용어와 기호

3선 · 틱
한국거래소 3년 국채선물. 틱은 가격의 최소 단위 0.01. 손익은 1계약 기준 틱으로 적는다.
세션 t · s
t 는 카드를 내는 한국 거래일, s 는 그 직전 한국 거래일.
Δ
밤사이 미국 10년 금리 변화(bp). 세션 t 개장 전 마지막 뉴욕 종가와 s 개장 전 마지막 뉴욕 종가의 차. 단일 영업일일 때만 규칙이 거래한다.
되돌림 규칙
|Δ| ≥ 3bp 이면 Δ 반대 방향(Δ > 0 이면 매수)으로 시가에 진입해 종가에 청산한다. 손절 20틱(닿으면 −21틱). 주말과 연휴 뒤, 금통위, 커브 뒤틀림, 미국 휴장, 여러 날 Δ 는 쉰다(카드 필터).
단위 · 사다리
|Δ| 3~6bp 1단위(17계약), 6~10bp 2단위(33), 10bp 이상 3단위(50). 손익 합은 «틱 × 단위».
y
세션 순손익 = p − 1틱(왕복 비용). p 는 위 규칙의 1계약 손익.
후보
카드 필터를 통과하고 |Δ| ≥ 2bp 인 세션. 2~3bp 는 모델이 임계 아래에서도 고를 수 있게 넣었다.
태그
세션 t 아침(07:30)에 알 수 있는 0/1 상황 표시. 표 3 이 전부다.
β · τ
β 는 회귀 계수(틱), τ 는 β 의 사전 표준편차다. 작을수록 0 쪽으로 세게 누른다.
수축 사후 · 90% 관문
카드 학습(daily_learn)의 태그 효과 = 같은 크기 평균 대비 잔차를 의사 관측 64건만큼 0 쪽으로 당긴 가중 평균. 90% 구간이 0 을 벗어나야 판정에 쓴다.

자료

표 2. 데이터셋. 모두 세션 s 까지의 값만 쓴다(미국은 s 의 뉴욕 종가 = t 개장 전)
자료원천기간해상도쓰임
3선 일봉·규칙 관측표카드 학습 관측표 cards/learn_obs.csv(카드와 같은 필터·손절)2013-01-03~2026-09-18일y, Δ, 기존 태그, 후보 1,492행
기준금리07_정책단기금리/기준금리.csv 한국·미국2012-12~일연준·한은 국면, 전환 초기
미국 2년 금리저장소 일별 풀 미국_2Y2010~일2년 추세, 정책↔2년 반대
통안 1년일별 풀 통안_1Y2010~일한은 경로 기대 = 통안 1년 − 기준금리
3선 외국인 순매수선물일봉_투자자수량_3선.csv 외국인합2012-01~일(계약)수급 동행/역행
표 3. 태그(코드 experiments/0018_daily_ktb3_reco/code/context_feats.py)
묶음태그정의
국면연준·한은 인상기/인하기/동결기t 전 마지막 기준금리 변경 방향, 그 변경이 270일보다 오래면 동결기
국면연준·한은 전환 초기새 방향 첫 변경 뒤 180일 안
시장미 2년 상승/하락 추세s 까지 60세션 변화 > +25bp / < −25bp
시장연준·한은 방향 ↔ 미 2년 반대정책 방향과 2년 추세가 반대(동결기면 추세가 있을 때) — 변곡점 직전의 아침 대용치
기대한은 인상/인하 기대통안 1년 − 기준금리 > +15bp / < −15bp
기대인상기·인상 멈춤 기대한은 인상기인데 위 값 ≤ +5bp
기대인상/인하 기대 강화위 값의 20세션 변화 > +15 / < −15bp
수급외국인 5일 동행/역행5세션 순매수 합 ÷ 직전 250세션 표준편차 = z, |z| ≥ 0.5 이고 부호가 되돌림 방향과 같으면 동행
수급외국인 전일 동행/역행s 하루 순매수의 z, |z| ≥ 1
기존FOMC·미 고용·미 CPI 밤, 고변동·저변동 예상, 전일 추세일, 만기 주간일일 카드가 이미 쓰던 태그

미래 정보 점검. tests/test_context_feats.py 가 s 뒤의 미 2년, 통안 1년, 외국인 수급을 크게 바꿔도 세션 t 의 태그가 그대로인지, 기준금리 변경 당일 아침에는 아직 그 변경을 모르는지 확인한다.

분할과 평가 방법

재적합 블록과 관측 가중
그림 1. 걷기 전진. 평가 구간(2016-01~)의 후보를 20세션씩 59개 블록으로 나누고, 블록마다 그 블록 첫 세션 전의 모든 후보로 다시 적합한다(파랑 = 학습, 초록 = 시험). 오른쪽은 학습 관측의 가중치다(반감기 500 후보 세션).
  • 평가 대상2016-01-04~2026-09-18 후보 1,168 세션(그중 규칙 거래일 912, 2~3bp 256)
  • 손익모델이 거래로 고른 세션의 y × 단위, 안 고른 세션 0
  • 비교같은 세션의 (모델 손익 − M0 손익) 평균, 그 t, 20세션 블록 부트스트랩 4,000회의 한쪽 p. 사전에 정한 비교는 이 하나다

모델

표 4. 모델. 모두 같은 후보와 같은 분할을 쓴다
이름무엇을 하나특징결정
M0 지금 규칙학습 없음—|Δ| ≥ 3bp 이면 거래
M1 기존 태그가중 베이즈 능형 회귀 y = Xβ. β ~ N(0, τ²), 관측 잡음 σ = 10틱, 관측 가중 0.5^(나이/500). 사후 평균 β = (XᵀWX/σ² + diag(1/τ²))⁻¹ XᵀWy/σ²|Δ| 구간 5개(τ 5) + 기존 태그 7개(τ 1.25)예측 ŷ > 0 이면 거래, 크기는 |Δ| 사다리
M2 + 국면M1 + 국면·시장 10개 + 큰 Δ(≥10bp)×연준·한은 인상/인하 4개(τ 1.25)
M3 + 국면·수급·기대M2 + 수급 4개 + 기대 5개(τ 1.25)
카드 A / B일일 카드의 학습 규칙 그대로: 태그별 수축 평균(의사 관측 64), 90% 관문, «크기별 평균 + 유의 태그 효과 < 비용» 이면 접기, 크기 초과 오차 ±0.5 면 사다리 한 칸A 기존 태그 · B 기존 + 새 태그 21개M0 거래일 912 중 접기·크기 변경

τ 1.25틱은 카드 학습의 «의사 관측 64건» 과 같은 세기다(잔차 표준편차 약 10틱 ÷ √64). 회귀로 태그를 함께 적합하면 서로 겹치는 태그(연준 인상기, 한은 인상기, 2년 상승)를 이중으로 세지 않는다. 카드 규칙(A/B)은 태그를 하나씩 따로 추정하므로 둘을 다 봤다.

M3 — 국면·수급·기대를 더한 걷기 전진 모델(마지막 재적합) 입력 — 세션 t 아침 미국 10년 밤사이 변화 Δ(bp) 직전 세션까지의 일정·변동 예측 기준금리·통안 1년·미 2년 3선 외국인 순매수 특징 — 0/1 |Δ| 구간 5개 기존 태그 7개 국면 10 + 큰Δ×국면 4 수급 4 · 기대 5 가중 베이즈 능형 회귀 (M3) 1. 구간 더미 |Δ| 2·3·4·6·10bp 구간마다 절편(사전 τ 5틱) 2. 상황 태그 태그 30개 0/1(사전 τ 1.25틱 = 0 쪽 수축) 3. 선형 결합 ŷ = Σ βⱼ·xⱼ (틱, 비용 1틱 뺀 순손익) 4. 결정 ŷ > 0 이면 거래, 크기는 |Δ| 사다리 출력 ŷ 순손익(틱) > 0 이면 거래 방향 = Δ 반대 계수 — 세팅과 학습 결과 피처 35개 원공간의 계수 — 표준화 단계가 없다 0 이 아닌 계수 33개 절편 b = +0.0000 모든 피처가 학습창 평균일 때의 출발점 평균적인 ref_tick 변화 |w| 최대 = 2.7469 가장 센 피처: |Δ| 10~bp |w| 중앙값 0.5203
그림 2. M3 의 구조와 실제 숫자. 마지막 재적합(학습 1,484행, 시험 2026-08-20~09-18)에서 그렸다. 그리기 전에 이 객체의 예측이 results/walk.csv 의 같은 블록 예측과 1e-9 안에서 같은지 확인했다.
M1, M2, M3 학습된 계수와 90% 사후 구간
그림 3. 세 모델의 학습된 계수(같은 마지막 재적합). 회색은 |Δ| 구간 절편, 초록과 파랑은 태그 효과의 부호, 선은 90% 사후 구간. 태그 계수의 구간은 거의 모두 0 을 덮는다.

결과 1 · 전체 표본의 국면 차이

태그별 거래당 순손익
그림 4. 2013~2026 규칙 거래일 1,161건의 태그별 거래당 순손익. 점선이 전체 평균 +1.75틱. 표본 전체를 한 번에 본 값이라 거래에 쓸 수 있는 숫자가 아니다.

전체 표본으로 보면 인상기(연준 +2.4, 한은 +3.1틱)가 인하기(+1.5, +1.7)나 동결기(+1.2, +0.6)보다 좋고, 인상 기대가 강해지는 날(+4.0)과 외국인이 같은 쪽으로 사는 날(+2.1)이 좋아 보인다. 외국인이 전일 반대로 판 날은 +0.6 으로 가장 약하다. 처음 물음이 기대한 모양이다.

결과 2 · 걷기 전진

표 5. 걷기 전진 2016-01~2026-09. 손익은 틱 × 단위, results/summary.json
모델거래합계거래당t이긴 날2023~최대 낙폭M0 대비 세션당(t, p)
M0 지금 규칙9123,2853.604.7453.4%1,018188—
M1 기존 태그9073,0363.354.3853.0%974221−0.21 (−2.64, 0.0005)
M2 + 국면8832,7913.164.0552.3%788262−0.42 (−3.18, < 0.001)
M3 + 국면·수급·기대8762,6843.063.9152.3%674263−0.52 (−3.81, < 0.001)
누적 순손익
그림 5. 누적 순손익. 정보를 더할수록 아래로 간다. 모델이 고른 «안 할 날» 도 평균은 플러스였기 때문에 거르는 만큼 잃는다.

크기로만 쓰면. M0 의 912 거래는 그대로 두고 단위를 max(ŷ, 0) 에 비례하게(총 단위는 같게) 나누면 M3 3,726 대 사다리 3,285 로 13% 높았다. 그러나 쌍 차이 t 0.89 로 유의하지 않고, 2023 년 이후만 보면 938 대 1,018 로 낮았다. ŷ 와 실제 손익의 순위 상관은 0.06 이다(탐색이며 사전 비교가 아니다).

결과 3 · 시기마다 뒤집히는 효과

태그별 두 시기 비교
그림 6. 같은 태그의 2016~2020(파랑)과 2021~2026(초록) 거래당 순손익. 점선은 두 시기의 전체 평균(+1.41, +2.13).

연준 인상기는 +0.97 → +3.81, 인하기는 +2.38 → +0.81 로 순서가 바뀐다. 한은도 같다(+0.59 → +4.03 대 +2.04 → +1.07). 앞 시기에 배운 «인하기가 낫다» 를 뒤 시기에 쓰면 틀리고, 그 반대도 같다. 걷기 전진이 진 이유다. 뒤 시기의 인상기 우위는 2022 년(규칙 합계 +1,370, 평가 구간 전체의 42%)에 크게 기대 있다. 두 시기 모두 같은 쪽이던 것은 외국인 5일 동행(+1.02, +3.53) > 역행(+0.79, +0.84)과 인상 기대 강화(+3.82, +4.25)다.

변곡점. 금리 방향이 바뀌기 전 6개월(사후에만 아는 구간)의 규칙 거래는 연준 기준 +0.6틱(t 0.8), 한은 기준 +0.1틱(t 0.2)으로 우위가 거의 없었다 (code/split.py, FRED 연준 목표금리 상단과 금통위 결정으로 잰 탐색). 아침 대용치 «정책 ↔ 2년 반대» 는 그 구간 172세션 중 120세션을 잡았지만 그날들의 평균도 +0.7~1.3틱으로 플러스라 접으면 손해였다.

결과 4 · 카드 학습 규칙 그대로

카드가 실제로 쓰는 규칙(code/wf_card.py)으로 같은 걷기 전진을 돌렸다. 기존 태그만(A)과 새 태그 21개 추가(B) 모두 접기 0건, 크기 변경 0건, 합계 3,285 로 M0 와 같았다. 관문을 넘은 새 태그는 «미 2년 상승 추세»(94세션)와 «인상 기대 강화»(17세션)뿐이고 둘 다 효과가 플러스라 접지 않았다. 수축과 관문이 결정을 지킨 셈이다. 그래서 태그를 카드에 붙였다.

카드 학습 상태의 새 태그 효과
그림 7. 2026-10-13 카드 학습 상태의 새 태그 21개(results/learn_state_20261013.json). 점 = 수축 사후, 선 = 90% 구간. 0 을 벗어난 것이 없어 오늘 카드에는 «참고» 로만 나온다.

한계와 다음

  • 국면 태그는 기준금리 변경 방향이라 «인상 사이클의 끝» 같은 사람의 견해를 담지 못한다. 시장이 반영한 기대(통안 1년 − 기준금리)로 대신했다.
  • 3선 외국인 일별 수급 파일은 수집이 하루 이틀 늦을 수 있다(2026-10-13 아침 마지막 10-08). 늦으면 그 전 값으로 태그가 붙는다.
  • 전체 표본 나눔(결과 1)과 크기 조절, 변곡점 점검은 탐색이다. 판정은 사전에 정한 M0 대비 쌍 비교 하나로 했다.
  • 2016~2026 은 인상과 인하 사이클이 두세 번뿐이라 국면 효과를 배우기에 표본이 작다. 카드 학습에 붙인 태그는 사이클이 쌓이면 스스로 관문을 넘을 수 있다. 매일 다시 추정한다.

산출물

  • 분석과 판정analysis.md
  • 태그experiments/0018_daily_ktb3_reco/code/context_feats.py, tests/test_context_feats.py
  • 걷기 전진code/wf.py → results/candidates.csv, results/walk.csv, results/summary.json, results/betas_last.json
  • 카드 규칙 A/Bcode/wf_card.py → results/walk_card.csv, results/summary_card.json
  • 전체 표본 나눔(탐색)code/split.py
  • 그림과 모델code/render.py → paper/assets/, results/final_models.json

Appendix

A. 데이터셋 실물(results/candidates.csv 마지막 세 행)

reason = 카드 판정(ok 거래, below 임계 미만), d_used = Δ(bp), cf_dir = 되돌림 방향(+1 매수), gap, oc, range, p 는 틱
sessionreasond_usedcf_diru_rulegapocrangeptagsctxyunits
2026-09-15below2.210-47.0-22.029.0-21.0expiryrg_fed_hold rg_bok_up rg_bok_turn rg_us2_up rg_fed_opp ex_hike fx5_against fx1_against-22.01
2026-09-17below2.210-15.017.019.017.0fomc prevtrendrg_fed_hold rg_bok_up rg_bok_turn rg_us2_up rg_fed_opp ex_hike fx5_against16.01
2026-09-18ok-9.0-1211.0-3.014.03.0prevtrendrg_fed_up rg_bok_up rg_fed_turn rg_bok_turn rg_us2_up ex_hike fx5_with2.02

B. 모델 입출력 실물(2026-09-18, 평가 구간 마지막 세션)

Request meta
세션 2026-09-18, 블록 59/59(학습 1,484행, 2013-01-03~2026-08-19). 07:30 결정, 08:45 시가 진입, 15:45 종가 청산.
Input
Δ -9.0bp → 되돌림 매도 · |Δ| 구간 6~10bp · tags=[prevtrend] · ctx=[rg_fed_up rg_bok_up rg_fed_turn rg_bok_turn rg_us2_up ex_hike fx5_with]
Model response
M3: ŷ = |Δ| 6~10bp +0.717 + 전일 추세일 -0.014 + 연준 인상기 +0.277 + 연준 전환 초기 -0.023 + 한은 인상기 +0.634 + 한은 전환 초기 -0.227 + 미 2년 상승 추세 +0.586 + 외국인 5일 동행 +0.718 + 한은 인상 기대 +0.458 = +3.125틱 → 거래(2단위). M1 +1.481, M2 +2.390, M0 거래
Ground truth check
실제 p = +3.0틱, y = +2.0틱 → 네 모델 모두 거래했고 같은 손익 +4.0(틱×단위). 이날은 모델 사이 차이가 없다.

C. 실험 설정

  • 후보learn_obs 의 reason ∈ {ok, below}, |Δ| ≥ 2bp, p 있음, 반사실 방향 ≠ 0, 과거(src=hist) 행만
  • 목표y = p − 1틱, p = 시가 진입, 종가 청산 1계약 손익, 손절 20틱(닿으면 −21)
  • 구간 더미|Δ| [2,3) [3,4) [4,6) [6,10) [10,∞) bp, τ 5틱
  • 태그 사전τ 1.25틱, σ 10틱
  • 가중0.5^(나이/500), 나이 = 과거로 몇 번째 후보
  • 재적합평가 2016-01-01 부터 20세션 블록 59개, 학습 = 블록 첫 세션 전 후보 전부
  • 결정ŷ > 0 이면 거래, 단위 = |Δ| 사다리(2~3bp 도 1단위)
  • 부트스트랩20세션 블록, 4,000회, seed 0, 한쪽
  • 카드 규칙K_DIR 64, K_SIZE_TAG 64, Z90 1.645, 비용 1틱, SIZE_STEP 0.5, 반감기 500
  • 태그 문턱동결 270일, 전환 초기 180일, 2년 추세 60세션 ±25bp, 기대 ±15bp, 멈춤 ≤ +5bp, 기대 변화 20세션 ±15bp, 수급 z 250세션, 5일 |z| ≥ 0.5, 전일 |z| ≥ 1