국고채 현물 | 기재부 매입과 교환 1,074줄, 2015 ~ 2026 | 사전등록 6가설 Holm

국고채 매입 대상 종목은 실행 전에 비싸지고 실행 뒤 되돌아오는가

기재부가 국고채를 사들이는 매입(조기환매)과 교환의 매입 다리에서 대상 종목이 잔존이 비슷한 이웃 종목보다 비싸지는지, 실행 뒤 그 고평가가 풀리는지, 그 움직임을 교체 매매로 비용 뒤 먹을 수 있는지를 12년치 입찰 원장과 종목 민평으로 검정했다.

폐기 | H984 ~ H989 미지지 실행 전 2일 −0.05bp, 실행 뒤 5일 +0.09bp 탐색: 20일 전부터 0.64bp 비싸지고 되돌지 않음

세 줄 요약

  1. 명목 국고채 매입 대상 1,074줄(실행일 220일)에서 실행 2영업일 전부터 실행일까지 대상은 이웃보다 −0.05bp(p 0.084) 비싸졌고, 실행 뒤 5영업일에는 +0.09bp(p 0.091) 되돌아왔다. 둘 다 사전에 정한 0.3bp 문턱의 3분의 1 아래다.
  2. 실행일 종가에 대상 매도, 이웃 매수로 되돌림을 노리면 비용 1bp 뒤 −0.91bp, 실행 전 교체는 −0.95bp다. 매입 비율과 효과의 순위상관은 0.01, 0.02 로 없다. 6개 가설 모두 Holm p 0.50 이상이다.
  3. 판정은 폐기다. 탐색으로 실행 20영업일 전부터 보면 대상은 0.64bp 비싸지고(가짜 대상 0.03bp) 실행 뒤 10일에 0.13bp 만 되돌아온다. 매입의 가격 효과는 실행 전 약 2주에 쌓이고 영구적이지만, 교체 비용 1bp 보다 작다. 비싸짐은 대상을 적은 월간 발행계획 공표 다음 날 시작하고, 그 종가에 들어가는 규칙도 비용 1bp 뒤 −0.73bp 다.

가설과 결론

기획재정부는 국고채 만기를 고르게 하고 차환 부담을 줄이려고 시장에 나와 있는 국고채를 사들인다. 하나는 현금으로 사는 매입(조기환매)이고, 다른 하나는 옛 종목을 받고 새 종목을 내주는 교환이다. 두 경우 모두 정부는 대상 종목을 미리 알리고, 실행일에 역경매(매도자가 금리를 써 내고 정부가 고르는 방식)로 산다. 대상 종목의 유통 물량이 줄어드는 것이므로, 공급 충격 이론대로라면 대상은 공고 뒤 잔존이 비슷한 다른 종목보다 비싸지고(금리가 상대적으로 내려가고), 실행이 끝나 추가 매수가 없어지면 그 웃돈의 일부가 풀릴 수 있다.

미국 재무부가 장기 경과물 유동성 지원 매입의 회당 한도를 늘렸다는 소식을 다룬 노트가 이 실험의 출발점이었다. 그 노트는 가격 효과의 크기를 말하지 않고, 한국 국고채 교환과 조기상환을 사건 패널로 만들어 보자는 제안만 남겼다. 그래서 이 실험은 세 가지를 물었다. 대상이 실행 전에 비싸지는가, 실행 뒤 되돌아오는가, 그리고 그 움직임이 교체 매매의 비용을 넘는가.

가설
H984: 공고일(실행 2영업일 전 가정)부터 실행일 종가까지 대상 민평 금리에서 이웃 둘의 평균을 뺀 스프레드가 평균 0.3bp 이상 내려간다. H985: 실행일 종가부터 5영업일 뒤까지 그 스프레드가 평균 0.3bp 이상 올라간다. H986: 실행일 종가에 대상 매도, 이웃 매수 DV01 중립 교체를 5영업일 들면 비용 1bp 뒤 평균이 양이다. H987, H988: 매입 비율이 클수록 실행 전 비싸짐과 실행 뒤 되돌림이 크다(스피어만 ρ 양). H989: 공고일 종가에 대상 매수, 이웃 매도, 실행일 청산이 비용 1bp 뒤 양이다.
결론
방향은 가설과 같았지만 크기가 작았다. 실행 전 −0.05bp, 실행 뒤 +0.09bp 이고 두 교체 거래는 비용 1bp 뒤 −0.91bp, −0.95bp 다. 순위상관은 0.008, 0.018 이다. Holm 보정 p 는 0.50 ~ 1.00 으로 6개 모두 미지지, 판정은 폐기다. 실행일이 연 18.8회라 유의했더라도 빈도 기준(연 24회)에 못 미쳤다.
주가설 묶음과 판정(정본 런 20261110T195020_main)
가설측정예측평균한쪽 pHolm p판정
H984D_pre, T−2 → T≤ −0.3bp−0.051bp0.0840.503미지지
H985D_post, T → T+5≥ +0.3bp+0.087bp0.0910.503미지지
H986실행 뒤 교체 net1> 0−0.913bp1.0001.000미지지
H987ρ(매입 비율, −D_pre)> 00.0080.4321.000미지지
H988ρ(매입 비율, D_post)> 00.0180.3151.000미지지
H989실행 전 교체 net1> 0−0.949bp1.0001.000미지지

용어와 기호

매입(조기환매)
정부가 만기 전 국고채를 현금으로 사들이는 것. 원장의 구분 칸이 «조기환매» 인 줄이다.
교환 매입 다리
교환에서 정부가 받아 오는 옛 종목. 원장 구분 «조기환매(교환)» 이고, 그 줄의 상장잔액이 낙찰금액만큼 줄어드는 것으로 매입 다리임을 확인했다. 정부가 내주는 새 종목(구분 «경쟁(교환)»)은 대상에서 뺐다.
T
실행일. 매입이나 교환 입찰이 열린 영업일이다.
A
공고일. 대상 종목 공고 시각을 자료로 확인하지 못해 T 의 2영업일 전으로 보수 가정했다. 탐색에서는 1 ~ 20영업일 전으로 바꿔 봤다.
민평
민간 채권평가사 세 곳이 매일 매기는 종목별 평가 금리의 평균. 체결이 드문 경과물도 매일 값이 있다.
이웃
진입일에 잔존이 대상 잔존 ±1년 안이고, 잔존 0.25년 초과이며, 그날 지표물이 아니고, 그날 매입이나 교환 대상이 아닌 고정금리 국고채 가운데 잔존이 가장 가까운 둘. 보유 중에는 바꾸지 않는다.
S(t)
스프레드. 100 × (대상 민평 − 이웃 민평 평균), 단위 bp. 음이면 대상이 이웃보다 비싸다.
D_pre
S(T) − S(A). 실행 전 변화. 음이면 대상이 실행 전에 비싸졌다.
D_post
S(T+5) − S(T). 실행 뒤 5영업일 변화. 양이면 대상이 다시 싸졌다(되돌림).
DV01 중립 교체
대상과 이웃의 금리 1bp 변화에 대한 가격 변화가 같도록 크기를 맞춘 매수와 매도 한 쌍. 금리 수준 변화는 지우고 스프레드 변화만 남긴다. 손익을 대상 DV01 의 bp 로 적으면 대략 스프레드 변화와 같다.
net1, net2
교체 총손익에서 비용 1bp(판정), 2bp(보고)를 뺀 값. 비용은 체결 네 번(진입 둘, 청산 둘) 왕복이다.
매입 비율
낙찰금액 ÷ 매입 전 상장잔액. 원장의 상장잔액은 매입 뒤 값이라 낙찰금액을 더해 매입 전 값으로 바꿨다.
실행월 블록 부트스트랩
같은 달 사건을 한 덩어리로 묶어 129개 달을 복원 추출해 평균의 분포를 만드는 검정. 같은 달 사건끼리의 상관을 반영한다. 10,000회, seed 268.
Holm
여러 가설의 p 를 작은 순으로 (가설 수 − 순위 + 1) 배 해 가며 보정하는 방법. 6개 가설을 한 묶음으로 보정했다.
가짜 대상
같은 날 대상이 아닌 종목을 잔존 ±2년 안에서 무작위로 골라 같은 규칙을 적용한 귀무 기준선.

자료

데이터셋

사건은 인포맥스 단말의 국채 입찰 결과 원장에서 왔다. 2015년 2월부터 2026년 11월까지 매입과 교환 매입 다리가 1,554줄 있고, 한 실행일에 대상 종목이 여럿이라 실행일은 313일이다. 금리는 같은 단말의 종목별 민평 일별 값을 썼다. 2010년 1월부터 2026년 11월 5일까지 4,157영업일, 고정금리 국고채 이표채 157종목이다. 실체결 금리는 장내와 장외 체결을 함께 담은 국채 체결금리 표(2017 ~ 2026)에서, 지표물 지정과 해제 일자는 지표물 일정표에서, 같은 주 재개방 여부는 같은 원장의 경쟁 입찰 줄에서 가져왔다. 금리 수준이 아니라 같은 날 두 종목의 차이를 보므로 시장 전체의 금리 변화는 스프레드에서 지워진다.

쓴 자료
자료기간해상도행수쓰임
국채 입찰 결과(매입, 교환 매입 다리)2015-02 ~ 2026-11실행일 × 종목1,554사건 원장, 매입 비율, 낙찰금리
종목 민평2010-01 ~ 2026-11-05일4,157일 × 157종목스프레드
국채 체결금리(장내외)2017 ~ 2026체결필요한 날만실체결 재측정, 민평대비 금리
지표물 일정2001 ~사건860이웃 제외, 지표물 교체 통제
스벤손 곡선 일별 계수2010-01 ~ 2026-08-13일4,106곡선 잔차 정의 비교

표본과 거르기

대상이 민평 패널에 없는 357줄은 모두 물가연동국고채 교환이었다. 물가채는 이웃과 금리를 견줄 수 없으므로 명목 고정금리 국고채만 남겼다. 실행일이 패널에 없는 8줄(2026년 8월 19일 자료 구멍과 패널 끝 뒤의 11월 6일)을 뺐고, 잔존 ±1년 안에 이웃 후보가 하나도 없는 116줄(대부분 잔존 1년 미만 초단기 대상)을 뺐다. 남은 것은 1,074줄, 실행일 220일, 실행월 129개(매입 618줄, 교환 456줄)이고 기간은 2015년 2월 11일부터 2026년 10월 21일까지다. 이웃이 둘인 줄이 976개, 하나인 줄이 98개다. 원장 중복은 없었고, 패널의 4일 넘는 빈 날은 설과 추석 연휴뿐이었다(2026년 8월 17 ~ 19일 자료 구멍 제외). 진입 뒤 민평이 비어 직전 값으로 채운 줄은 2개다.

언제 무엇을 아는가

실행일 결과(종목별 낙찰금액과 금리)는 그날 11시 45분 ~ 13시 30분에 기사로 나온다. 실행 뒤 교체는 T 종가 민평에 들어가므로 쓰는 정보가 모두 진입 전에 공개돼 있다. 이웃도 진입일에 아는 잔존, 지표물 여부, 그날 대상 목록만으로 고른다. 실행 전 교체는 공고일에 대상을 안다는 가정이 필요한데, 인포맥스 기사 15만 건을 뒤져도 대상 종목 공고 기사는 없었다(월간 발행계획 기사와 실행일 결과 기사만 있다). 그래서 확증은 보수적으로 T−2 에 두고, 더 이른 시차는 «그때 대상을 알았다면» 이라는 조건부 탐색으로만 읽는다.

방법

사건 줄마다 두 창을 잰다. 실행 전 창은 공고일 A 의 종가 민평부터 실행일 T 의 종가 민평까지이고, 이웃은 A 에 고른다. 실행 뒤 창은 T 종가부터 T+5 종가까지이고, 이웃은 T 에 다시 고른다. 스프레드는 대상 민평에서 이웃 평균을 뺀 값이므로 금리 수준과 곡선 기울기의 대부분이 지워진다. 평균은 사건 줄을 똑같이 가중해 구하고, 같은 달 사건이 서로 닮았을 수 있으므로 129개 실행월을 블록으로 다시 뽑는 부트스트랩 10,000회로 한쪽 p 를 냈다. 6개 가설은 Holm 한 묶음으로 보정했고, H984 와 H985 는 p 와 함께 크기 문턱(±0.3bp)을 넘어야 지지로 본다.

교체 매매는 DV01 을 맞춘 한 쌍으로 잰다. 실행 뒤 교체(H986)는 T 종가에 대상을 팔고 이웃을 사서 T+5 에 청산하므로 총손익이 D_post 와 같고, 실행 전 교체(H989)는 A 에 대상을 사고 이웃을 팔아 T 에 청산하므로 총손익이 −D_pre 다. 판정 비용 1bp 는 체결 네 번 왕복이다. 앞선 측정에서 지표물 체결 한 번의 실효 반 스프레드가 0.10 ~ 0.16bp(20년물 0.25bp)였으므로 지표물만이라면 네 번에 0.40 ~ 1.02bp 다. 대상은 대개 경과물이라 이보다 비쌀 것이므로 1bp 는 낙관에 가깝다. 0.5bp 와 2bp 민감도도 함께 냈다.

기준선은 셋을 사전등록했다. 첫째는 같은 날 무작위 가짜 대상 200회로, 대상이 아니어도 이 규칙이 만드는 평균의 분포다. 둘째는 같은 대상과 이웃을 실행과 무관한 창(T−20 → T−15, T+10 → T+15)에 두는 시간 위약이다. 셋째는 «실행일에 대상을 사서 5일 보유» 와 «아무것도 안 함» 이다. 정의 비교로 이웃 대신 스벤손 곡선 잔차를, 금리 측정 비교로 민평 대신 장내외 실체결의 거래량 가중 금리를 썼다. 강건성 격자는 공고 시차(1, 2, 3, 5, 10영업일), 보유 기간(1, 2, 3, 5, 10영업일), 이웃 수(1, 2, 4), 이웃 폭(±0.5, ±1, ±2년), 하루 늦은 진입을 사전등록했다. 결과를 본 뒤에는 사건 시간 경로, 15와 20영업일 시차, 반복 대상 분할을 탐색으로 더했다. 발견 구간은 2015 ~ 2021, 확인 구간은 2022 ~ 2026 이다. 학습하는 값이 없으므로 전 표본을 한 번 평가하고 구간별로 나눠 보고한다.

모델

매매 규칙에는 학습하는 값이 없다. 다만 효과가 다른 사건 특성에 가려지지 않았는지 보려고 사건 패널 선형 회귀를 적합했다. 종속 변수는 D_pre 와 D_post 각각이고, 설명 변수는 매입 비율(%p), 교환 여부, 대상 잔존의 로그, 같은 창 재개방 겹침(대상이나 이웃이 A ~ T+5 사이 경쟁 입찰 대상), 지표물 교체(T ~ T+5 사이 새 지표물 지정), 월말 걸침, 확인 구간 더미다. 최소제곱으로 적합하고 표준오차는 실행월 군집(CR1)으로 냈다. 그림 7의 계수는 정본 런의 사건 표에서 다시 적합해 저장된 계수를 소수 아홉째 자리까지 재현한 뒤 그렸다. 이 회귀는 설명용이고 판정에 쓰지 않는다.

결과

확증 결과

사전등록한 창에서 대상은 가설 방향으로 움직였지만 아주 조금이었다. 실행 2영업일 전부터 실행일까지 대상 스프레드는 평균 −0.051bp 내려갔다(실행월 블록 90% 구간 −0.112 ~ +0.010, 한쪽 p 0.084). 1,073줄 가운데 대상이 비싸진 줄은 47%, 싸진 줄은 45%, 변화가 없는 줄은 8% 로 거의 반반이다. 실행 뒤 5영업일에는 평균 +0.087bp 올라갔다(90% 구간 −0.018 ~ +0.196, p 0.091). 사전에 적은 예측은 실행 전 −0.3 ~ −1bp, 실행 뒤 +0.1 ~ +0.5bp 였으므로 실행 뒤는 예측 범위 아래쪽 끝에, 실행 전은 예측보다 한참 작은 곳에 떨어졌다. 둘 다 0.3bp 문턱의 3분의 1에 못 미치고 Holm 보정 p 는 0.50 이다.

확증 가설 넷의 평균과 90% 구간 막대
확증 가설 넷의 사건 줄 평균과 실행월 블록 부트스트랩 90% 구간. 파란 막대는 스프레드 변화(H984, H985)이고 파란 점선이 사전에 정한 ±0.3bp 문턱이다. 빨간 막대는 교체 거래의 비용 1bp 뒤 평균(H986, H989)이다. 두 변화 모두 문턱 안쪽이고, 교체 거래는 비용을 거의 그대로 잃는다.

교체 매매로 바꾸면 결과는 비용이 정한다. 실행 뒤 교체의 총손익은 +0.087bp 인데 비용 1bp 를 빼면 −0.913bp 이고, 이긴 사건은 12.9% 뿐이다. 실행일 하나를 한 거래로 묶어도 220일 중 이긴 날이 7.7% 이고 평균 −0.92bp 다. 실행 전 교체는 −0.949bp, 이긴 비율 7.6% 다. 매입 비율과의 순위상관은 실행 전 0.008, 실행 뒤 0.018 로, 크게 사들인 종목에서 효과가 더 크다는 증거도 없었다. 사전등록한 6개 가설은 하나도 지지되지 않았다.

비용 민감도와 구간별 결과(사건 줄 평균, bp)
구분nD_preD_post실행 뒤 교체 비용 0.5비용 1비용 2
전체1,074−0.051+0.087−0.413−0.913−1.913
발견 2015 ~ 2021579−0.076+0.174−0.326−0.826−1.826
확인 2022 ~ 2026495−0.021−0.016−0.516−1.016−2.016
2024 ~317−−0.050−0.550−1.050−2.050
충격 구간 제외984−0.064+0.097−0.403−0.903−1.903

구간을 나누면 실행 뒤 되돌림은 발견 구간에만 있었다. 2015 ~ 2021 은 +0.17bp, 2022 ~ 2026 은 −0.02bp 이고 2024년 이후는 −0.05bp 다. 비용을 0.5bp 로 낮춰도 어느 구간도 양이 되지 않는다. 앞선 측정의 지표물 하한(체결 네 번 0.40 ~ 1.02bp)을 써도 결론이 같다는 뜻이다. 충격 구간 15개와 창이 겹치는 90줄을 빼도 크기는 거의 그대로다. 채택 조건 다섯(확인 구간 양, 2024년 이후 양, 연도 과반 양, 비용 2bp 합 양, 실행일 연 24회 이상)은 모두 미달이고, 실행일은 연 18.8회라 빈도부터 못 넘는다.

기준선과 귀무

같은 날 비대상 종목을 무작위로 골라 같은 규칙을 200번 돌리면, 실행 전 평균은 −0.001 ± 0.020bp, 실행 뒤 평균은 −0.012 ± 0.033bp 에 모인다. 실제 대상의 −0.051 과 +0.087 은 그 분포 밖에 있다(귀무 p 0.005, 0.000). 즉 매입 대상에는 아주 작지만 대상이 아닌 종목에는 없는 움직임이 있다. 다만 가짜 대상 귀무는 날짜마다 다른 종목을 뽑아 평균하므로 같은 날 공통 충격이 상쇄돼 흔들림이 작게 잡힌다. 그래서 판정에는 실행월 블록 p 를 쓰고, 이 귀무는 방향 확인으로만 읽는다. 시간 위약 창은 실행 전 −0.008bp(p 0.44), 실행 뒤 −0.060bp(p 0.75)로 효과가 없었고, «실행일에 대상 매수, 5일 보유» 는 −1.09bp 였다.

가짜 대상 200회 평균 분포와 실제 값
무작위 가짜 대상 200회의 평균 분포(회색)와 실제 매입 대상의 평균(빨간 선). 왼쪽은 실행 전(T−2 → T), 오른쪽은 실행 뒤(T → T+5). 실제 값은 두 분포의 끝 밖에 있지만 크기가 0.05 ~ 0.09bp 로 작다.

정의를 바꿔도 크기는 커지지 않았다. 이웃 대신 스벤손 곡선 잔차로 재면 실행 전 −0.039bp(p 0.18), 실행 뒤 −0.021bp(p 0.68)로 오히려 작다. 장내외 실체결의 거래량 가중 금리로 다시 재면 대상과 이웃 모두 그날 체결이 있는 줄이 239, 224 줄뿐이고, 평균이 +2.21bp, −2.58bp(중앙값 −0.31, +0.28)로 흔들려 민평 측정과의 상관이 0.08, 0.00 이었다. 경과물 체결에는 개인과 기타법인의 작은 거래가 섞여 공정가치와 몇 bp 씩 떨어지므로 이 측정으로는 아무것도 확인할 수 없었다.

사건 경로와 공고 시차

확증 창이 효과를 놓쳤을 가능성을 보려고, 결과를 본 뒤 이웃을 실행 20영업일 전에 고정하고 −20 ~ +10 영업일의 평균 경로를 그렸다(탐색). 대상 스프레드는 T−12 무렵부터 꾸준히 내려가 실행일에 −0.64bp(90% 구간 −0.85 ~ −0.45)에 이르고, 실행 뒤 열흘 동안 −0.51bp 로 0.13bp 만 되돌아온다. 같은 방식의 가짜 대상 30회 평균은 실행일에 −0.03bp 다. 비싸짐은 실행 전 약 2주에 걸쳐 쌓이고 실행 뒤 대부분 남는다. 확증 창(T−2 → T)은 이 내리막의 끝 이틀만 잡았기 때문에 작게 나왔고, 되돌림 가설(H985)은 전제부터 맞지 않았다.

실행일 기준 대상 스프레드 평균 경로와 가짜 대상 비교
이웃을 T−20 에 고정한 대상 스프레드의 평균 경로(빨강, 1,058줄)와 실행월 블록 90% 구간. 회색 점선은 같은 날 무작위 가짜 대상 30회 평균과 5 ~ 95% 범위다. 대상은 T−12 부터 실행일까지 0.64bp 비싸지고, 실행 뒤에는 0.13bp 만 되돌아온다. 파란 점선은 확증에 쓴 가정 공고일이다.

공고 시차를 늘린 격자에서도 같은 그림이 나온다. 실행 전 교체의 총손익은 시차 1일 −0.02, 2일 0.05, 3일 0.13, 5일 0.20, 10일 0.41, 15일 0.57, 20일 0.64bp 로 앞당길수록 커지고, 3일 이상은 블록 p 가 0.006 아래다. 그러나 비용 1bp 를 빼면 모든 칸이 음이고 가장 나은 20일도 −0.36bp 다. 비용 0.5bp 에서만 15일(+0.07)과 20일(+0.14)이 양이다. 확인 구간에서 20일 총손익은 0.46bp 로 발견 구간 0.79bp 보다 작아졌다. 실행 뒤까지 들고 가는 칸(진입 T−1 ~ T−10, 청산 T+1 ~ T+10)도 비용 1bp 뒤 −0.64 ~ −1.11bp 로 전부 음이다. 이 격자는 칸을 고른 것이고 T−20 에 대상을 안다는 보장도 없으므로 거래 근거로 쓰지 않는다.

공고 시차별 실행 전 교체 총손익과 비용선
공고 시차 A 별 실행 전 교체(A 에 대상 매수, 이웃 매도, T 청산) 총손익. 초록 선이 전체 평균과 90% 구간, 회색과 검정 점선이 발견과 확인 구간이다. 빨간 수평선은 비용 0.5, 1, 2bp 다. 20영업일 전에 들어가도 총손익은 1bp 선 아래다. 15와 20영업일은 결과를 본 뒤 더한 칸이다.
진입 시차와 청산 시점 격자의 비용 뒤 평균 열지도
진입 시점(T−1 ~ T−10)과 청산 시점(T+1 ~ T+10) 격자의 대상 매수 보유 손익, 비용 1bp 뒤(근사: −D_pre(A) − D_post(h) − 1). 모든 칸이 음이고, 진입을 앞당길수록 덜 잃지만 실행 뒤까지 들면 되돌림만큼 조금 더 잃는다.
강건성 격자(사건 줄 평균, bp). 공고 시차 15, 20은 결과를 본 뒤의 탐색
축값D_pre 또는 실행 전 총손익D_post비고
공고 시차T−1 / T−2 / T−3 / T−5 / T−10총손익 −0.02 / 0.05 / 0.13 / 0.20 / 0.41p 0.75 / 0.085 / 0.006 / 0.003 / <0.001
공고 시차(탐색)T−15 / T−20총손익 0.57 / 0.64비용 1bp 뒤 −0.43 / −0.36
보유1 / 2 / 3 / 5 / 10일0.06 / 0.07 / 0.09 / 0.09 / 0.09되돌림은 첫 사흘에
이웃 수1 / 2 / 4−0.09 / −0.05 / −0.060.09 / 0.09 / 0.06정의에 둔감
이웃 폭±0.5 / ±1 / ±2년−0.04 / −0.05 / −0.090.09 / 0.09 / 0.09n 844 / 1,074 / 1,164
진입 지연T+1 종가−0.01하루 늦으면 사라짐

계획 공표일에 맞추면

사건 경로가 실행 12영업일 전쯤 꺾인다면 그 무렵 무엇이 공개되는지가 중요하다. 그래서 깊이 보강 단계에서 인포맥스 1002 기사 제목으로 월간 국고채 발행계획 기사(«N월 국고채 … 경쟁입찰 … 발행», 전달 마지막 주 목요일 17시 무렵 게시)를 2020 ~ 2026 의 58개월에서 찾고, 각 실행월의 대상을 공표 다음 영업일 P 에 맞춰 다시 정렬했다(탐색). 476줄, 실행일 88일이고 P 는 실행일보다 중앙값 13영업일(3 ~ 23) 앞선다. 계획 보도자료 원문 한 달치(2026년 8월)를 열어 보니 «국고채 매입 계획» 과 «교환 계획» 표가 일시와 규모와 함께 대상 종목을 이미 적고 있었고, 입찰 3영업일 전 한국은행 게시판의 정식 공고는 같은 종목을 다시 알릴 뿐이었다.

경로는 이 사실과 맞는다. 공표 전 열흘 동안 대상은 오히려 0.11bp 쯤 싸졌다가, 공표 다음 날 하루에 0.15bp 비싸지고(90% 구간이 0 을 넘지 않는다) P+10 까지 −0.34bp 로 이어진다. 비싸짐은 계획이 대상을 알리는 날 시작한다. 공표가 장 마감 뒤라 그 첫날 몫은 잡을 수 없고, 잡을 수 있는 첫 진입은 P 종가다. P 종가에 대상 매수, 이웃 매도, 실행일 종가 청산은 공개 정보만 쓰는 규칙인데 총손익 +0.27bp(블록 p 0.026), 비용 0.5bp 뒤 −0.23bp, 1bp 뒤 −0.73bp 이고 실행일 단위로 이긴 날은 12.5% 다. 연도별 총손익은 2020 0.59, 2021 0.24, 2022 0.02, 2023 0.95, 2024 0.31, 2025 0.05, 2026 0.26bp 로 해마다 들쭉날쭉하다.

월간 발행계획 공표일 기준 대상 스프레드 경로
월간 발행계획 공표 다음 영업일 P 를 0 으로 둔 대상 스프레드 평균 경로(2020 ~ 2026, 476줄)와 실행월 블록 90% 구간. 공표일(파란 점선, 17시 게시) 다음 날 하루에 0.15bp 떨어지고 그 뒤로도 내려간다. 실행일(빨간 점선)은 중앙값 P+13 이다. P+8 이후는 실행일이 지난 사건이 섞인다.

이 규칙이 넘어야 할 비용도 따로 재 보려 했다(깊이 보강 2회차 탐색). 규칙이 실제로 거래하는 날(P 와 T)의 체결에서 체결 금리와 그날 민평의 차이를 절댓값으로 보면, 장외 상위 25% 크기 체결의 중앙값이 대상 2.1, 이웃 2.0, 지표물 2.4bp 다. 지표물의 실측 반 스프레드가 0.10bp 안팎이므로 이 값은 비용이 아니라 체결 시각과 종가 민평 사이의 장중 움직임이 대부분이고, 일별 체결 표로는 경과물 비용을 잴 수 없다는 것을 보여 준다. 그래도 결론은 난다. 가장 싼 지표물 반 스프레드 0.10bp 로 체결 네 번을 쳐도 0.40bp 라 총손익 0.27bp 보다 크다. 경과물 비용이 그보다 쌀 이유는 없으므로 어떤 비용 가정에서도 이 규칙은 남지 않는다.

체결 금리와 민평의 차이 |매매수익률 − 민평| 중앙값(bp), 계획 규칙의 거래일(탐색 4)
종목 역할장내 체결 수장내 중앙값장외 체결 수장외 중앙값장외 상위 25% 크기
대상4,5334.06,8984.92.1
이웃9,1193.410,2253.72.0
지표물(비교)50,1512.434,6412.82.4

이 결과는 확증의 공고일 가정(T−2)이 너무 늦었다는 뜻이다. 그러나 누설 같은 결함이 아니라 창 정의의 문제이고, 실제 공개일로 다시 재도 실행 전 변화는 −0.27bp 로 사전등록 문턱 −0.3bp 에 못 미치며 교체는 비용을 넘지 못한다. 그래서 판정과 사전등록은 그대로 두고 탐색으로 적었다. 종목별 투자자 순매수 표로 누가 미리 사는지도 보려 했지만, 그 표의 정부 열이 매입 결제를 담지 않아(실행일 전후 값이 낙찰금액과 맞지 않는다) 접었다.

연도와 부분집합

연도별로 보면 실행 뒤 되돌림은 2015 ~ 2022 에 0.03 ~ 0.35bp 로 양이었다가 2023년부터 −0.01 ~ −0.11bp 로 돌아섰다. 실행 전 변화는 해마다 −0.30 ~ +0.06bp 로 어느 해도 문턱을 넘지 못했다. 실행 뒤 교체의 비용 1bp 뒤 평균은 12년 모두 음이다. 부분집합에서는 교환 매입 다리의 실행 전 변화가 −0.09bp(단독 p < 0.001)로 현금 매입(−0.02bp)보다 컸고, 잔존 15년 초과 대상은 −0.17bp(79줄), 매입 비율 상위 10% 는 −0.19bp(108줄)였다. 장기물과 큰 매입에서 조금 크지만 모두 0.3bp 아래이고, 이 분할은 여러 개를 본 것이라 보정 전 p 는 그대로 믿기 어렵다.

연도별 실행 전후 스프레드 변화 막대
연도별 사건 줄 평균. 파랑은 실행 전(T−2 → T), 빨강은 실행 뒤(T → T+5) 변화이고 점선은 ±0.3bp 문턱이다. 실행 뒤 되돌림은 2022년까지만 양이고, 어느 해도 문턱을 넘지 않는다.

사건의 60% 는 같은 종목이 직전 50일 안에도 대상이었다. 정부가 같은 경과물을 여러 달 연속으로 사들이기 때문이다. 이런 반복 대상의 T−20 → T 총손익은 0.71bp, 처음 대상은 0.53bp 로 반복 대상이 조금 더 비싸졌다(탐색). 지난달 대상이 다음 달에도 대상이라는 것은 실행 시점에 아는 정보이므로, 공고 시각을 몰라도 쓸 수 있는 유일한 사전 신호다. 그래도 크기가 1bp 비용에 못 미친다.

통제 회귀와 정부 지불 가격

사건 패널 회귀에서 통제 변수는 효과를 숨기지 않았다. 실행 전 변화(R² 0.021)에서는 교환 매입 다리가 −0.19bp(t −2.7) 더 비싸졌고, 같은 창에 대상이나 이웃의 재개방 입찰이 겹친 23줄은 +0.41bp(t 5.2) 쪽으로 밀렸다. 재개방은 해당 종목 공급을 늘리므로 이웃이 재개방되면 대상이 상대적으로 비싸지고 대상이 재개방되면 싸진다. 이 변수는 둘을 섞었지만 23줄이라 전체 평균을 거의 바꾸지 않는다(재개방 겹침 제외 −0.058bp). 매입 비율 계수는 1%p 당 −0.03bp(t −1.4)다. 실행 뒤 변화(R² 0.030)에서는 지표물 교체가 겹친 40줄이 +1.10bp(t 2.8)였고 나머지는 유의하지 않았다.

기존 요인도 따로 봤다(탐색). 같은 창에서 이웃 평균 금리가 1bp 오를 때 대상은 0.025bp 더 비싸지는 정도로(상관 −0.14, R² 0.02) 금리 수준은 스프레드 변화를 거의 설명하지 않고, 수준을 통제한 절편은 실행 전 −0.045bp, 실행 뒤 +0.084bp 로 원래 평균과 같다. «직전 5일에 대상이 비싸졌으면 실행일에 대상을 판다» 는 단순 직전 방향 규칙은 총손익 +0.07bp, 비용 1bp 뒤 −0.91bp(이긴 줄 13.7%)로 확증 규칙과 다르지 않았다. 직전 5일 변화와 실행 뒤 변화의 상관 −0.23 은 매입과 무관하게 민평 스프레드가 갖는 일반적인 되돌림으로 보인다.

사건 패널 회귀 계수와 95% 구간
사건 패널 선형 회귀의 계수와 실행월 군집 95% 구간. 왼쪽 D_pre, 오른쪽 D_post. 빨간 점은 |t| > 1.96 인 계수다. 정본 런의 사건 표에서 다시 적합해 저장된 계수를 재현한 뒤 그렸다. 설명력은 2 ~ 3% 다.

정부가 시장보다 비싸게 사는지도 봤다. 원장의 종목별 낙찰금리에서 대상의 전날 민평을 빼면 평균 +0.94bp(중앙값 +1.0bp, 1,013줄), 실행일 민평 대비로는 +0.85bp 다. 금리가 높을수록 가격이 낮으므로 정부는 민평보다 약 1bp 싸게 산다. 12년 중 10년이 양이고 2021년(−0.12bp)과 2025년(−0.24bp)만 음이다. 역경매에서 정부는 가장 싼 매도 제안부터 받으므로 웃돈을 줄 이유가 없고, 매입에 응하는 쪽은 유동성 낮은 경과물을 한 번에 넘기는 대가로 민평보다 낮은 가격을 받아들인다.

연도별 낙찰금리와 전날 민평의 차이 막대
연도별 낙찰금리 − 대상 전날 민평(bp). 양이면 정부가 민평보다 높은 금리, 곧 낮은 가격에 샀다. 2021년과 2025년을 빼고 모두 양이다.

해석

매입 대상 종목에는 공급 감소의 가격 효과가 있다. 실행 2주 전부터 대상이 이웃보다 0.6bp 쯤 비싸지고 무작위 종목에는 그런 움직임이 없다. 그러나 그 효과는 되돌아오지 않는다. 실행이 끝난 뒤에도 유통 물량은 줄어든 채로 남으므로, 일시적 수요 압력이라기보다 물량이 줄어든 만큼의 영구적 재평가로 읽는 편이 자연스럽다. 그렇다면 «실행 뒤 되돌림을 먹는다» 는 매매는 처음부터 근거가 없다.

남는 것은 실행 전 비싸짐을 미리 사는 거래인데, 두 장벽이 있다. 하나는 크기다. 가장 이른 20영업일 진입도 총손익 0.64bp 로, 경과물 넷을 사고파는 비용보다 작다. 다른 하나는 정보다. 대상 공고가 언제 나오는지 자료로 확인하지 못했고, 반복 대상이라는 사전 신호도 크기를 1bp 위로 올리지 못한다. 확인 구간에서 효과가 줄어든 것도 불리하다. 매입 대상의 비싸짐은 사실이지만 교체 매매로 남길 만큼 크지 않다. 이 결과는 매매 신호보다 실행 판단에 더 쓸모가 있다. 대상 후보 경과물을 들고 있다면 실행 전 2주 동안 시장에서 파는 편이, 민평보다 1bp 낮은 가격을 받는 매입 응찰보다 낫다.

한계

이 결론이 틀릴 수 있는 이유들이다.

공고 시각. 확증에서는 대상 공개 시각을 몰라 T−2 로 보수 가정했는데, 사후 원문 확인으로 정례 매입과 교환의 대상은 약 14영업일 전 월간 계획에 처음 실린다는 것을 알았다. 확증 창은 효과의 끝만 잡았다. 원문은 한 달치만 대조했으므로 58개월 모두 계획이 대상을 담았다는 것은 가정이고, 긴급 매입 같은 비정례 건은 하루 전 공개일 수 있다. 2020년 이전은 기사가 없어 계획 공표일 정렬을 하지 못했다. 가격 측정. 대상은 대개 유동성 낮은 경과물이고 민평은 평가사 추정이다. 민평이 시장을 늦게 따라가면 실행 전 몫은 작게, 실행 뒤 몫은 크게 잡힐 수 있다. 실체결 재측정은 220여 줄뿐이고 흔들림이 커서 결론을 바꾸지 못했다.

비용 가정. 판정 비용 1bp 는 체결 네 번 왕복이고 지표물 기준으로는 넉넉하지만, 경과물은 장내 체결이 드물어 직접 잴 수 없었다. 경과물 대상을 파는 실행 뒤 교체는 대차가 필요해 대차 수수료와 가용성도 비용이다. 실제 비용은 1bp 보다 클 가능성이 높아, 비용 0.5bp 에서 양이 나온 탐색 칸도 실제로는 음일 가능성이 크다. 표본과 독립성. 사건은 1,074줄이지만 실행일 220일, 실행월 129개이고, 같은 종목이 여러 달 연속 대상인 경우가 60% 라 사건이 서로 독립이 아니다. 실행월 블록이 이를 일부만 반영한다.

결과를 본 뒤 고친 것. 결과를 보기 전 수정은 가짜 대상 반복 횟수(500회에서 200회)와 회귀 구현뿐이었다. 사건 시간 경로, 15와 20영업일 시차, 반복 대상 분할은 본 런을 본 뒤 더한 탐색이고, 격자에서 가장 나은 칸을 고른 것이라 선택 편향이 있다. 빈도와 범위. 명목 국고채 매입의 실행일은 연 18.8회라 유의했더라도 보류였다. 물가채 교환 357줄은 민평 패널에 없어 뺐다. 일별 민평이라 분 단위 진입 지연과 지정가 체결은 잴 수 없었다.

다음에 해 볼 것

첫째, 월간 계획 원장을 만든다. 기재부 월간 국고채 발행계획 보도자료(첨부 PDF)의 매입 계획과 교환 계획 표에서 대상 종목, 일시, 규모를 2015 ~ 2026 로 모아 공표 시각을 실제 값으로 바꾸고, 2020년 이전까지 계획 공표일 정렬을 넓힌다. 두 다리 교체(체결 네 번)는 지표물 비용으로도 0.40bp 라 다시 걸지 않고, 대상만 사고 금리 위험은 국채선물로 맞추는 한 다리 변형(현물 체결 둘)이 공표 다음 날 진입에서 비용 뒤 남는지를 사전등록한다. 둘째, 보유자 실행 개선으로 돌린다. 보유 경과물이 다음 달 계획의 대상에 오르면 계획 공표 다음 날부터 실행 전까지 시장에 파는 것과 매입 응찰(민평보다 약 1bp 낮은 가격)을 장외 체결로 비교한다. 매매 신호가 아니라 팔 때 덜 잃는 규칙이므로 빈도 기준과 무관하게 쓸 수 있다.

산출물

모든 수치는 아래 정본 런의 파일에서 옮겼다. 다시 만들려면 저장소 뿌리에서 아래 명령을 차례로 돌린다. 본 런은 약 10분, 탐색 런은 약 3분 걸린다.

  • 사전등록protocol.md
  • 분석과 판정analysis.md
  • 자료 적재와 점검code/data.py, code/d0_check.py
  • 본 런(확증)code/s1.py → results/20261110T195020_main/
  • 탐색 런code/s_detail.py → results/20261110T195213_detail/
  • 탐색 런 2(수준 요인, 직전 방향)code/s_detail2.py → results/20261110T200001_detail2/
  • 탐색 런 3(계획 공표일 정렬)code/s_detail3.py → results/20261110T200708_detail3/
  • 탐색 런 4(비용 대리값)code/s_detail4.py → results/20261110T202140_detail4/
  • 그림code/render_figures.py → paper/assets/
uv run python experiments/0268_ktb_buyback_target_richening/code/d0_check.py
uv run python experiments/0268_ktb_buyback_target_richening/code/s1.py
uv run python experiments/0268_ktb_buyback_target_richening/code/s_detail.py
uv run python experiments/0268_ktb_buyback_target_richening/code/s_detail2.py
uv run python experiments/0268_ktb_buyback_target_richening/code/s_detail3.py
uv run python experiments/0268_ktb_buyback_target_richening/code/s_detail4.py
uv run python experiments/0268_ktb_buyback_target_richening/code/render_figures.py

Appendix

A. 데이터셋 실물

본 런 사건 표의 실제 네 줄(2024년 1월 16일 교환 매입 다리)이다. 금액은 백만원, 잔존은 년, 스프레드는 bp 다. 이웃 칸은 표준코드 둘을 세로 막대로 이었다.

사건 표 예시(events.csv 에서 옮김)
실행일대상구분매입 비율낙찰금액잔존S(A)S(T)D_preD_postnet1
2024-01-16국고04000-3112(11-7)교환0.006105,0007.90−0.40−0.10+0.30−0.55−1.55
2024-01-16국고03750-3312(13-8)교환0.00460,0009.900.900.70−0.20−0.70−1.70
2024-01-16국고01500-3012(20-9)교환0.00590,0006.901.300.65−0.65+0.55−0.45
2024-01-16국고02000-3106(21-5)교환0.00240,0007.400.700.65−0.05+0.45−0.55

한 줄의 전체 필드는 실행일, 대상 표준코드와 종목명, 구분(매입 또는 교환), 매입 비율, 낙찰금액, 낙찰금리, 잔존, 실행 전 이웃과 실행 뒤 이웃, S(A), S(T), D_pre, 보유 1, 2, 3, 5, 10일의 D_post, 위약 창 변화, 충격 구간과 재개방 겹침과 지표물 교체와 월말 걸침 표시, 곡선 잔차 정의의 변화, 실체결 정의의 변화, 비용 뒤 손익, 낙찰금리와 민평의 차이다.

B. 모델 입출력 실물

규칙 하나가 실제로 받은 입력과 낸 출력이다. 2024년 7월 17일 현금 매입에서 대상 국고02250-2506(15-2)의 줄을 정본 런의 민평에서 그대로 옮겼다. 이날 대상은 여섯 종목이었고 이 종목은 매입 전 상장잔액 14조 7,010억원 가운데 4,300억원(2.9%)이 매입됐다.

입력: 대상과 이웃의 민평(%)
날짜역할대상 2025-06 만기이웃 2025-03 만기이웃 2024-12 만기S(t), bp
2024-07-15A = T−23.1963.1773.0806.75
2024-07-17T(실행일)3.2013.1753.1155.60
2024-07-24T+53.2103.1803.1365.20

출력은 이렇다. D_pre = 5.60 − 6.75 = −1.15bp(대상이 실행 전에 비싸졌다), 실행 전 교체 net1 = 1.15 − 1 = +0.15bp. D_post = 5.20 − 5.60 = −0.40bp(실행 뒤에도 더 비싸졌다), 실행 뒤 교체 net1 = −0.40 − 1 = −1.40bp, net2 = −2.40bp. 낙찰금리는 3.204% 로 전날 민평 3.190% 보다 1.4bp 높았다. 같은 줄을 실체결 금리로 재면 D_pre −29.97bp, D_post −31.04bp 가 나와 민평 측정과 30bp 가까이 어긋난다. 실체결 정의가 판정에 쓸 수 없을 만큼 흔들리는 이유를 이 한 줄이 보여 준다.

C. 실험 설정

설정과 분할
항목값
대상명목 고정금리 국고채, 매입과 교환 매입 다리
공고일 AT − 2영업일(확증), 격자 1, 3, 5, 10, 탐색 15, 20
이웃잔존 ±1년, 잔존 0.25년 초과, 지표물과 그날 대상 제외, 가까운 둘
보유5영업일(확증), 격자 1, 2, 3, 10
비용판정 1bp, 보고 0.5bp 와 2bp(체결 네 번 왕복)
검정실행월 블록 부트스트랩 10,000회 한쪽 p, seed 268, Holm 6개
문턱H984 평균 ≤ −0.3bp, H985 평균 ≥ +0.3bp, 모두 Holm p < 0.05
분할발견 2015 ~ 2021, 확인 2022 ~ 2026, 공통 확인 2024 ~
충격 구간시작일 15개부터 10영업일, 창이 겹치면 제외 보고
귀무가짜 대상 200회(잔존 ±2년), 시간 위약 T−20 → T−15, T+10 → T+15
회귀OLS, 실행월 군집 표준오차 CR1, 변수 7개와 상수