세 줄 요약
- IRS 버터플라이 f = 5년 − (2년 + 10년)/2 를 직전 250일 동안 커브 수준(IRS 5년)과 기울기(10년 − 2년)로 설명한 잔차가 2 표준편차를 넘으면, 다음 거래일 종가에 되돌림 쪽 버터플라이를 최대 20거래일 들었다. 2010 ~ 2026 의 119건, 비용 전 +0.59bp, 비용(건당 1bp) 뒤 −0.57bp, 승률 45%, 월 블록 부트스트랩 한쪽 p 0.99 다.
- 되돌림은 있지만 작다. 버터플라이의 하루 변동이 0.64bp 라 몇 주 동안 돌아오는 폭이 다리 셋의 비용(1bp)을 넘지 못하고, 손절 38건이 건당 −3.5bp 를 잃었다. 위험 조건을 빼도 모든 변형이 비용 뒤 음이다.
- 사전등록 가설 H334 는 지지되지 않았고(묶음 D Holm 0.99), 판정은 폐기다.
가설과 결론
금리 커브의 움직임은 대부분 «전체가 오르내림(수준)» 과 «장단기 차가 벌어지고 좁혀짐(기울기)» 으로 설명된다. 가운데 만기(5년)가 두 끝(2년, 10년)보다 따로 싸지거나 비싸지는 «굽음(버터플라이)» 은 남는 작은 몫이고, 보통 특정 만기에 몰린 헤지 수요나 일시적 수급에서 생긴다. 그런 괴리는 수급이 풀리면 몇 주 안에 닫힐 것이라는 것이 상대가치 매매의 기본 생각이다.
이 실험은 원화 IRS 에서 그 괴리를 하루 단위로 재고, 클 때 되돌림 쪽으로 들어가 비용과 보유 위험을 치르고도 이익이 남는지 물었다. 방향 위험을 빼므로 잡음이 작다는 장점이 있지만, 다리가 셋이라 비용이 크다는 약점이 있다.
| 가설 | 내용 | 결과 | 한쪽 p | 판정 |
|---|---|---|---|---|
| H334 | 신호가 서는 첫 날(2010-12) ~ 2026-10 전 건의 비용 1bp 뒤 건당 평균 > 0 | −0.57bp/건(119건) | 0.99 | 미지지, 폐기 |
사전등록 예측은 «건당 +1 ~ +4bp, 연 10 ~ 30건» 이었다. 실제는 연 7건 남짓이고 비용 전 이익도 예측 하한의 절반(+0.59bp)이다. 묶음 D 의 주가설 넷(H334 ~ H337)에 Holm 보정을 건 p 는 0.99 다. 되돌림은 있으나 비용을 넘지 못해 판정은 폐기다.
용어와 기호
- IRS
- 원화 금리스왑. 고정금리와 CD 91일 변동금리를 주고받는 계약. «받기» 는 고정금리를 받는 쪽(금리가 내리면 이익), «주기» 는 고정금리를 주는 쪽
- bp
- 0.01%p. 금리 1bp 변화의 손익은 그 만기 DV01 과 같다
- DV01
- 금리가 1bp 움직일 때 포지션 가치 변화. 이 실험의 손익 단위는 «5년 DV01 1 단위당 bp» 다
- f(버터플라이)
- f = IRS5 − (IRS2 + IRS10)/2 (bp). 크면 5년이 두 날개보다 금리가 높다(싸다)
- V(거래 가치)
- V = −f. 5년을 받고 2년과 10년을 DV01 반씩 주는 포지션의 가치. f 가 1bp 내리면 V 매수 포지션이 1bp 번다
- 수준, 기울기
- 수준은 IRS 5년 금리(%), 기울기는 IRS 10년 − 2년(%p)
- a, b, c
- 직전 250 거래일에서 f = a + b × 수준 + c × 기울기 를 최소제곱으로 적합한 절편과 계수
- z
- 오늘의 f 에서 적합값을 빼고 그 창의 잔차 표준편차로 나눈 값. z > 0 이면 5년이 커브에 비해 싸다(금리가 높다)
- 행 s, s+1
- s 는 종가로 신호를 정하는 한국 거래일, s+1 은 진입하는 다음 거래일(그날 종가)
- 괴리 0 통과 청산
- 보유 중 z 의 부호가 진입 때와 반대로 바뀌면 다음 날 종가에 청산
- σ60, 2.5σ 손절
- 진입 직전 60 거래일 V 일변화의 표준편차. 손익이 −2.5 × σ60 이하가 된 날 종가에 청산하고 비용 반 단위(0.5bp)를 더 낸다
- 월 블록 부트스트랩
- 건별 손익을 달 단위 묶음으로 복원추출해 평균 분포를 5,000번 다시 만드는 검정. 한쪽 p 는 «평균이 0 인데 우연히 이만큼 양으로 나올 확률»
- Holm 보정, 묶음 D
- 여러 가설을 함께 시험할 때 p 값을 가설 수에 맞춰 키우는 방법. 여러 자산 상대가치 묶음 D 의 주가설 넷(H334 IRS 버터플라이, H335 국고 버터플라이, H336 CRS 베이시스, H337 원화 아시아 괴리)에 건다
- 충격 구간
- 미리 고정한 공개 충격 15개(동일본 대지진, 미국 신용등급 강등, 브렉시트, 코로나, 러시아 우크라이나 침공, 한국 비상계엄, 미국 상호관세 등)의 시작일부터 10거래일
- 카드 상관
- 기존 전략(미국 10년 금리가 밤사이 3bp 이상 움직이면 다음 날 10년 국채선물을 그 반대로 잡는 카드)과 같은 날짜 일별 손익의 상관. 0.5 미만이어야 독립 전략
자료
데이터셋
| 자료 | 원천 | 기간 | 해상도 | 쓰임 |
|---|---|---|---|---|
| IRS 2년, 5년, 10년 | 데이터 풀(한국 종가 기준 일별, 중개 호가 중간값) | 2010-01 ~ 2026-10 | 일 | f, 수준, 기울기, V |
| 한국 거래일 달력 | 3년 국채선물 일봉 날짜 | 2010-01 ~ 2026-10 | 일 | 행 s, 휴장 간격 |
| 미국 10년 되돌림 카드 손익 | 기존 전략 패널 | 2012 ~ 2026-10 | 일 | 카드 상관 |
| 항목 | 값 |
|---|---|
| z 가 있는 날(2010-12-30 ~ 2026-10-29) | 3,882 |
| |z| ≥ 2 인 날 | 524(13.5%) |
| 실제 진입(보유 중 건너뜀, 휴장 직전 진입 안 함 반영) | 119 |
| 2010 ~ 2019 / 2020 ~ 2026 | 62 / 57 |
| f 평균, 하루 변화 표준편차 | −0.33bp, 0.64bp |
| 평균 보유 | 10.8거래일 |
언제 무엇을 아는가
데이터 풀의 IRS 값은 한국 장 마감 뒤 저녁에야 확정된다. 그래서 행 s 종가로 정한 신호는 하루 늦춰 s+1 종가에 진입한다. 청산도 모두 종가에서 한다.
| 시점 | 일어나는 일 |
|---|---|
| s 일 장 마감 뒤 저녁 | IRS 2년, 5년, 10년 종가 확정. f 와 직전 250일 적합으로 z 계산 |
| s+1 일 종가 | |z| ≥ 2 면 진입(s+1 다음 거래일까지 달력 4일 이상 비면 진입하지 않음) |
| 그 뒤 매일 종가 | 손절, 괴리 0 통과, 휴장 앞, 20일 보유 순서로 청산 여부 판단 |
방법
거래하는 것과 신호
- 버터플라이. 5년 DV01 1 단위에 2년과 10년을 DV01 반씩 반대로 붙인다. V = −f 는 «5년 받기, 날개 주기» 포지션의 가치다.
- 잔차. 매일 직전 250일로 f = a + b × 수준 + c × 기울기 를 적합해 z 를 만든다(5절).
- 신호. |z| ≥ 2. z > 0(5년이 싸다)이면 5년 받기(V 매수), z < 0 이면 5년 주기(V 매도). 보유 중에는 새 신호를 건너뛴다.
- 청산. 최대 20거래일 보유. 그 전에 괴리 0 통과, 손절, 휴장 앞 청산이 먼저 걸리면 그날 종가.
보유 위험 조건과 비용
사용자 지시(2026-10-30)로 앞선 원자재 묶음부터 모든 다일 보유 규칙에 보유 위험 조건을 넣는다. 묶음 D 는 일별 종가 자료뿐이라 손절과 점프를 종가 대 종가로 본다. 값은 결과를 보기 전에 정했다.
- 휴장 앞 청산
- 다음 거래일까지 달력 4일 이상 비면 그 전 종가에 청산한다. 진입일이 그런 날이면 진입하지 않는다
- 손절
- 종가 기준 손익이 −2.5 × σ60 이하가 된 날 종가에 청산, 비용 반 단위(0.5bp) 추가
- 괴리 0 통과
- z 부호가 바뀐 다음 날 종가에 청산
- 최대 보유
- 진입 뒤 20거래일째 종가
- 충격 구간
- 15개 충격 구간과 겹친 거래를 따로 보고하고 빼지 않는다
- 비용
- 다리당 왕복 0.5bp(DV01 가중). 5년 0.5bp + 날개 둘 0.5bp × 0.5 × 2 = 건당 1.0bp(판정), 2.0bp(보고)
판정 규칙
문턱(2σ), 창(250일), 보유(20일)를 미리 고정했고 학습하는 값은 과거 창의 롤링 회귀뿐이므로 표본 전체를 한 번 평가한다. 비용 1bp 뒤 건당 평균이 양이고 월 블록 부트스트랩 한쪽 p < 0.05, 묶음 D Holm < 0.05 면 «지지» 다. 전략 후보는 여기에 비용 2배 뒤 누적 양, 충격 구간 포함 양, 연도 과반 양, 카드 상관 0.5 미만을 더 요구한다. 부호가 음이면 «폐기», 양이나 문턱 미달이면 «보류» 다.
모델
모델은 설명 변수 둘짜리 롤링 선형회귀다. 버터플라이는 그 자체로 커브 모양에 따라 움직인다. 금리가 높은 시기와 커브가 가파른 시기에는 5년이 날개보다 구조적으로 다른 자리에 있다. 그런 «커브가 정하는 정상 위치» 를 빼지 않으면, 커브 국면이 바뀔 때마다 버터플라이가 한쪽으로 오래 머무는 것을 괴리로 착각한다. 그래서 매일 직전 250일로 수준과 기울기가 정하는 정상 위치를 다시 배우고, 그보다 벗어난 몫만 신호로 쓴다.
code/s_detail.py 가 매일 다시 적합한 계수로 커밋된 z 를 오차 1e-15 안에서 재현하고, 그 z 로 119건이 그대로 나오는 것을 확인했다). 왼쪽: 수준 계수 b 와 기울기 계수 c. c 는 −13 ~ +43 을 크게 오가 커브와 버터플라이의 관계가 시기마다 달라진다. 오른쪽: 창 잔차 표준편차. 2023 년 상반기에 4.8bp 까지 커졌다가 1 ~ 1.5bp 로 돌아왔다.| 항목 | 값 |
|---|---|
| 목표 | f(bp) |
| 설명 변수 | 상수, IRS 5년(%), IRS 10년 − 2년(%p) |
| 추정 | 최소제곱, 직전 250 거래일(오늘 제외) |
| 최소 관측 | 창 안 유효 관측 200개 이상 |
| 잔차 표준편차 | 창 잔차 표준편차(자유도 3 보정) |
| 신호 문턱 | |z| ≥ 2 |
| 계수 | 중앙값 | 뜻 |
|---|---|---|
| a(절편) | −15.3bp | 수준과 기울기가 0 일 때의 값(직접 해석하지 않는다) |
| b(수준) | +5.27 | IRS 5년이 1%p 높으면 f 가 약 5bp 크다 |
| c(기울기) | +12.6 | 10년 − 2년이 1%p 가파르면 f 가 약 13bp 크다 |
| 잔차 표준편차 | 1.02bp | z 1 단위의 크기. 문턱 2σ 는 보통 2bp 정도의 괴리다 |
결과
확증 결과
| 항목 | 2010 ~ 2019 | 2020 ~ 2026 | 전체 |
|---|---|---|---|
| 건수 | 62 | 57 | 119 |
| 비용 전 건당(bp) | +0.23 | +0.98 | +0.59 |
| 비용 1bp 뒤 건당 | −0.94 | −0.17 | −0.57 |
| 비용 2bp 뒤 건당 | −1.94 | −1.17 | −1.57 |
| 비용 2bp 뒤 누적 | −120 | −67 | −187 |
| 승률(비용 1bp 뒤) | 37.1% | 52.6% | 44.5% |
| 양인 해 | 2/10 | 2/7 | 4/17 |
| 최대 낙폭(비용 1bp 뒤 누적) | −60.9 | −33.8 | −71.7 |
- 월 블록 부트스트랩: 평균 −0.57bp, 한쪽 p 0.99, 90% 구간 [−0.98, −0.11]. 구간 전체가 0 아래다.
- 건별 손익 표준편차 2.53bp, 최악 1건 −5.0bp, 최고 1건 +8.25bp.
- 묶음 D Holm: H334 0.99(참고로 H335 0.42, H336 0.032, H337 0.81).
방향으로 나누면(기술 통계) 5년 받기 56건 −0.60bp, 5년 주기 63건 −0.53bp 로 양쪽이 같다. 비용 전 이익 0.59bp 는 다리 셋의 비용 1bp 의 60% 에 그친다.
누적 손익과 연도
| 연도 | 합 | 연도 | 합 | 연도 | 합 |
|---|---|---|---|---|---|
| 2010 | +2.6 | 2016 | −5.8 | 2022 | −16.7 |
| 2011 | −10.3 | 2017 | −0.9 | 2023 | +10.2 |
| 2012 | −3.9 | 2018 | −13.1 | 2024 | −1.1 |
| 2013 | −7.3 | 2019 | −8.0 | 2025 | −4.1 |
| 2014 | +0.9 | 2020 | −3.5 | 2026(10월까지) | −13.8 |
| 2015 | −12.3 | 2021 | +19.5 |
청산 사유와 위험 조건을 뺀 변형
| 청산 사유 | 건수 | 건당(bp) | 합(bp) |
|---|---|---|---|
| 손절 | 38 | −3.46 | −131.6 |
| 괴리 0 통과 | 28 | +1.93 | +54.1 |
| 20일 보유 | 27 | +0.18 | +4.7 |
| 휴장 앞 청산 | 26 | +0.20 | +5.3 |
| 변형 | 건수 | 비용 전 | 2010 ~ 2019 | 2020 ~ 2026 | 전체(비용 1bp 뒤) |
|---|---|---|---|---|---|
| 판정 규칙 | 119 | +0.59 | −0.94 | −0.17 | −0.57 |
| 휴장 앞 청산 뺌 | 108 | +0.48 | −0.77 | −0.61 | −0.69 |
| 손절 뺌 | 99 | +0.68 | −0.66 | +0.04 | −0.32 |
| 괴리 0 청산 뺌 | 113 | +0.40 | −1.11 | −0.36 | −0.76 |
| 조건 없음(20일 꽉 채움) | 78 | +0.36 | −0.75 | −0.50 | −0.64 |
어떤 조건을 빼도 비용 전 이익이 +0.4 ~ +0.7bp 에 머문다. 위험 조건이 이익을 깎은 것이 아니라, 처음부터 비용을 넘을 만한 되돌림이 없었다.
충격 구간과 독립성
| 충격(시작일) | 건수 | 손익 |
|---|---|---|
| 동일본 대지진(2011-03-11) | 1 | −4.8 |
| 미국 신용등급 강등(2011-08-05) | 1 | +0.6 |
| 브렉시트 투표(2016-06-24) | 1 | −1.1 |
| 러시아 우크라이나 침공(2022-02-24) | 1 | +0.8 |
| 이란 이스라엘(2024-04-15) | 2 | −3.1, +1.2 |
| 한국 비상계엄(2024-12-04) | 1 | −3.1 |
| 미국 상호관세(2025-04-03) | 1 | −0.9 |
| 이스라엘 이란 공습(2025-06-13) | 1 | +0.6 |
| 합 | 9 | −9.8 |
충격 건을 포함한 비용 2bp 뒤 누적은 −186.5bp, 빼면 −167.8bp 다. 휴장 앞 청산을 뺀 변형에서는 108건 가운데 26건이 긴 휴장을 넘겼다. 카드와 일별 손익 상관은 −0.02(둘 다 포지션이 있던 473일에서 −0.04)로 독립이지만, 손익이 음이라 의미가 없다. 포지션이 있던 날의 일별 샤프 비율(연환산)은 −0.57 이다.
한 건을 따라가 보기
2026-08-27 종가: IRS 2년 3.6575%, 5년 3.8675%, 10년 4.0025%. 버터플라이 f = 3.8675 − (3.6575 + 4.0025)/2 = +3.75bp.
- 직전 250일 적합: a = −15.78, b = 5.002, c = 11.48. 수준 3.8675, 기울기 0.345 를 넣으면 적합값 = −15.78 + 5.002 × 3.8675 + 11.48 × 0.345 ≈ +7.53bp.
- 잔차 3.75 − 7.53 = −3.78bp, 창 잔차 표준편차 1.62bp 로 나눠 z = −2.33. 5년이 커브에 비해 비싸다(금리가 낮다)는 신호이므로 5년 주기, 날개 받기(V 매도).
- 08-28 종가 진입(f = 4.875). 09-11 종가에 휴장 앞 규칙으로 청산(f = 7.375). 비용 전 +2.50bp, 비용 1bp 뒤 +1.50bp.
이 건은 맞았지만 바로 앞 08-14 신호는 손절로 −3.88bp 였다. 이기는 건의 이익이 지는 건의 손실보다 작다는 것이 이 규칙의 모습이다.
해석
IRS 버터플라이의 괴리는 실제로 닫히는 경향이 있다(괴리 0 통과 28건이 건당 +1.9bp). 그러나 문턱 2σ 가 보통 2bp 정도의 괴리이고, 그 괴리가 전부 닫혀도 다리 셋 비용 1bp 를 빼면 남는 것이 적다. 반대로 괴리가 더 벌어지는 경우(커브 국면 전환, 특정 만기 수급 지속)에는 2.5σ 손절에 걸려 3 ~ 5bp 를 잃는다. «작게 자주 맞고 가끔 크게 틀리는» 구조에서 맞는 몫이 비용에 먹혔다. 원화 IRS 커브 굽음은 일별 종가로 잡는 되돌림 매매로는 비용 뒤 이익을 주지 않는다.
한계
- IRS 값은 데이터 풀의 중개 호가 종가다(5년은 툴렛 프레본 호가와 모든 날 같다). 실제 체결은 호가 폭 안에서 이뤄지며, 비용 1bp 는 다리당 0.5bp 가정이다. 비용이 더 작다면 결론이 달라질 수 있지만, 비용 전 이익이 0.59bp 라 비용이 그 아래로 내려가야 한다.
- DV01 가중을 5년 1 : 날개 0.5 씩으로 고정했다. 실제 만기별 DV01 비율(2년과 10년 DV01 이 다르다)로 맞추면 손익이 조금 달라진다.
- 손절은 종가로만 판정해 장중에 더 크게 밀린 경우를 모른다.
- 버터플라이를 만드는 방식(수준과 기울기 두 요인)은 사전등록 하나뿐이고 다른 정의(주성분 잔차 등)는 시험하지 않았다.
산출물
- 계획
protocol.md(사전등록 07952db) - 분석과 판정
analysis.md - 코드
code/s1.py(확증),code/spreadrule.py(묶음 D 공용 엔진),code/s_detail.py(계수 저장),code/render_figures.py(그림) - 런
results/20261030T141309_main/(metrics.json, series.csv, trades_*.csv),results/20261030T162844_detail/(coef.csv)
Appendix
A. 데이터셋 실물
coef.csv(기술 통계 런)의 실제 행. lvl 은 IRS 5년(%), slope 는 10년 − 2년(%p), fit 은 적합값(bp), sd 는 창 잔차 표준편차(bp)다.
| 날짜 | f | lvl | slope | a | b | c | fit | sd | z |
|---|---|---|---|---|---|---|---|---|---|
| 2026-08-27 | 3.750 | 3.8675 | 0.3450 | −15.7815 | 5.0023 | 11.4826 | 7.5263 | 1.6188 | −2.3328 |
| 2026-08-28 | 4.875 | 3.9400 | 0.3475 | −15.5312 | 4.9429 | 11.2912 | 7.8677 | 1.6313 | −1.8345 |
| 2026-09-11 | 7.375 | 4.2075 | 0.3625 | −13.2560 | 4.3630 | 10.2586 | 8.8199 | 1.6510 | −0.8752 |
| 2026-10-29 | 4.000 | 3.8275 | 0.1600 | −7.4858 | 2.9031 | 8.7090 | 5.0191 | 1.4942 | −0.6821 |
trades_R.csv 의 실제 행. dir +1 은 5년 받기, −1 은 5년 주기, gross 는 비용 전 bp, slip 은 손절 추가 비용이다.
| s | 진입 | 청산 | z | dir | how | gross | slip | net1 |
|---|---|---|---|---|---|---|---|---|
| 2010-12-30 | 2011-01-03 | 2011-01-07 | −2.47 | −1 | z_exit | +3.63 | 0 | +2.63 |
| 2026-08-14 | 2026-08-18 | 2026-08-27 | −2.15 | −1 | stop | −2.38 | 0.5 | −3.88 |
| 2026-08-27 | 2026-08-28 | 2026-09-11 | −2.33 | −1 | holiday | +2.50 | 0 | +1.50 |
B. 모델 입출력 실물
- Request meta
- 행 s = 2026-08-27 종가 확정 뒤 판단. 적합 창은 그 전 250 거래일
- Input
- IRS 2년 3.6575, 5년 3.8675, 10년 4.0025(%). f = +3.75bp, 수준 3.8675, 기울기 0.3450. 창에서 학습한 a = −15.7815, b = 5.0023, c = 11.4826, 잔차 표준편차 1.6188
- Model response
- 적합값 7.5263bp, 잔차 −3.776bp, z = −2.33. |z| ≥ 2, z < 0 이므로 «2026-08-28 종가에 5년 주기, 2년과 10년 DV01 반씩 받기(V 매도)»
- Ground truth check
- 2026-09-11 종가에 휴장 앞 청산, f 4.875 → 7.375, 비용 전 +2.50bp, 비용 1bp 뒤 +1.50bp. 방향 일치. 119건 평균은 −0.57bp 다
C. 실험 설정
- 거래V = −f, 5년 DV01 1 : 2년, 10년 0.5 씩, 단위당 bp
- 모델f 를 IRS 5년과 10년 − 2년에 직전 250일 롤링 최소제곱, 관측 200개 이상
- 신호|z| ≥ 2, z > 0 이면 5년 받기, 행 s 종가 신호, s+1 종가 진입, 보유 중 건너뜀
- 청산최대 20거래일, z 부호 바뀐 다음 날, 휴장 앞(달력 4일 이상) 종가, 2.5 × σ60 종가 손절 + 0.5bp
- 비용건당 1.0bp(판정), 2.0bp(보고)
- 검정건별 비용 뒤 손익의 월 블록 부트스트랩 5,000회(seed 66), 한쪽 p < 0.05, 묶음 D(H334 ~ H337) Holm
- 표본2010-12-30 ~ 2026-10, 표본 전체 한 번. 보고 구간 2010 ~ 2019, 2020 ~ 2026
- 보고 변형휴장 앞 청산 뺌, 손절 뺌, 괴리 0 청산 뺌, 조건 없음