세 줄 요약
- 10선 100계약 장중 왕복 비용은 중앙 1.93틱 [1.88, 1.99]이고 개장 15분은 4.01틱이다. 3선 100계약은 1.00틱으로 1호가 안에서 끝난다. 30선은 100계약이 호가 5단에 들어가지 않는 시간이 95%다.
- 직전 호가 상태로 5분 뒤 10선 100계약 비용을 분위회귀로 예측하면 고정 비용표보다 MAE 가 5.5% 줄고(p 0.0022) 유의하지만, 미리 정한 문턱 15%에는 못 미친다.
- 판정은 보류다. 직전 30분 비용 평균을 특징에 더하면 감소가 17.5%로 커지는데, 결과를 본 뒤 고른 변형이라 다음 실험에서 잠그고 새 날로 확인한다.
가설과 결론
- 가설
- 측정 가설은 넷이다. H930 은 10선 100계약 장중 왕복 비용의 중앙이 2틱을 넘는다고 예측했다. H931 은 같은 100계약이면 30선이 10선보다 비싸다고 했다. H932 는 3선 100계약이 1틱 근처라고 했고, H934 는 3선 50계약 비용이 지난 7~10월 측정(1.00틱)에서 0.1틱 넘게 바뀌지 않았다고 했다. 판정은 예측 가설 하나(H933)로 한다. 시각 t 에 알 수 있는 호가 상태(시각대, 1호가 잔량, 스프레드, 직전 30분 변동, 사건일)로 5분 뒤 10선 100계약 비용을 분위회귀로 예측하면, 시각대별 중앙값만 적은 고정 비용표보다 확인 구간 MAE 가 15% 이상 작고 한쪽 p 가 0.05 보다 작다는 것이다. H935 는 같은 비교를 90분위 핀볼 손실로 한다.
- 결론
- 측정에서는 10선 100계약이 1.93틱으로 2틱 바로 아래였다(H930 미지지). 3선 100계약은 1.00틱(H932 지지), 3선 50계약도 그대로 1.00틱(H934 지지)이고, 30선은 100계약을 호가에 보이는 범위로 채울 수 없었다(H931 지지). 예측에서는 분위회귀의 MAE 가 0.326틱, 고정표가 0.345틱으로 5.5% 작았고, 확인 날을 복원추출한 부트스트랩 5,000회의 한쪽 p 는 0.0022 였다. 호가 상태는 비용 예측에 유의한 정보를 더하지만 그 크기가 문턱 15%의 삼분의 일에 그쳐 판정은 보류다. 90분위로 보아도 감소는 11.9%였다.
이 질문을 지금 묻는 까닭은 간단하다. 국채선물 전략을 판정할 때 쓰는 비용 가정(3선 1틱, 보고 2틱)은 50계약 이하의 주문을 놓고 잰 값에서 왔다. 주문 규모가 100계약으로 커지면 10선과 30선은 1호가를 넘어 2단 이하까지 먹게 되므로 같은 가정을 그대로 쓸 수 있는지 다시 봐야 했다. 또 비용이 시각과 호가 두께에 따라 크게 달라지는데 판정은 하나의 상수로 하므로, 상태에 따른 비용 예측이 그 상수를 대신할 만큼 나은지도 함께 물었다.
용어와 기호
- 3선, 10선, 30선
- 한국거래소 3년, 10년, 30년 국채선물 근월물. 근월은 전 거래일 체결량이 가장 많았던 종목으로 정하고, 그 종목의 최종 거래일(만기일)에는 다음 월물로 넘긴다. 장중 시각에는 그날 체결량을 모르기 때문이다. 9월물에서 12월물로의 교체는 2026-09-14 전후에 일어났다.
- 틱
- 호가 가격 단위. 3선과 10선은 0.01포인트(계약당 1만원), 30선은 0.02포인트(계약당 2만원)다. 비용은 그 상품 자기 틱으로 적는다.
- 호가 1~5단
- 매도와 매수 각각 가장 좋은 가격부터 다섯 단계의 가격과 잔량(계약). 1호가는 가장 좋은 단이다.
- 미드
- 1단 매도호가와 1단 매수호가의 평균.
- q
- 시장가로 한 번에 내는 수량(계약). 10, 20, 21, 35, 50, 100 을 쟀다.
- 걷기 비용
- q 계약을 시장가로 내면 1단부터 차례로 잔량을 먹는다고 보고 계산한 평균 체결가. 우리 주문 뒤 호가가 회복되는 것은 보지 않는 정적 계산이다.
- RT(q)
- 즉시 왕복 비용. q 계약을 매도호가 쪽에서 사고 같은 순간 매수호가 쪽에서 파는 두 평균 체결가의 차를 틱으로 나눈 값. 스프레드 1틱이고 잔량이 충분하면 1.00이다.
- 못 채움
- 1~5단 잔량 합이 q 보다 작은 시각. 중앙값과 분위수를 셀 때는 가장 큰 값(+∞)으로 순위에 넣는다.
- 연장값
- 못 채운 수량을 마지막 단 가격보다 1틱 나쁜 가격에 채웠다고 보고 계산한 RT. 회귀 표적과 평균에 쓰며 실제보다 낮을 수 있는 하한이다.
- 2호가 가정값
- 2~5단 잔량이 없는 날을 위해 1단 초과분을 2단 가격(1틱 나쁨)에 무한히 채운다고 본 값. 별도 표로만 낸다.
- 시각대
- 개장 08:45~09:00, 오전 09:00~11:00, 점심 11:00~13:00, 오후 13:00~15:20, 마감전 15:20~15:35. 연속 거래만 다루고 시가와 종가 단일가는 뺀다.
- L1
- log(1 + 1단 매도 잔량과 매수 잔량의 평균). 시각 t 의 값.
- S
- 시각 t 의 스프레드(틱).
- V30
- log(1 + 직전 30분 동안 1분 간격 미드 변화 절댓값의 합(틱)). 그날 개장 뒤 자료만 쓴다.
- E
- 사건일 더미. 금통위 결정일, 국고채 경쟁입찰일, 미국 FOMC 결과의 한국 날짜, 미국 CPI와 고용 발표 다음 한국 영업일이면 1.
- h
- 예측 지평(분). 시각 t 의 상태로 t+h 의 RT 를 예측한다. 주 설정은 h = 5.
- 고정표
- 발견 구간에서 시각대별로 구한 RT 중앙값(또는 90분위). 상태를 보지 않는 기준선이다.
- MAE
- 평균 절대 오차(틱). 중앙 예측의 채점 지표.
- 핀볼 손실
- 분위 τ 예측의 채점 지표. 오차 e = 실제 − 예측일 때 max(τe, (τ−1)e).
- 감소율
- 1 − (모델 손실 합 ÷ 고정표 손실 합). 양수면 모델이 낫다.
- 날 블록 부트스트랩
- 확인 구간의 날을 복원추출해 감소율을 다시 계산하는 일을 반복한다. 한쪽 p 는 감소율이 0 이하로 나온 비율이다.
- DV01
- 금리가 1bp 움직일 때의 손익. 10선 1계약은 3선 약 2.9계약과 같다.
자료
원자료는 코스콤이 중계한 한국거래소 국채선물 호가 기록이다. 호가가 바뀔 때마다 한 행이 쌓이고, 행마다 거래소 시각(마이크로초), 1~5단 가격, 1단 잔량이 있다. 2~5단 잔량은 수집 설정 때문에 2026-07-21 ~ 07-28 과 2026-09-08 이후에만 있다. 이 실험의 확증 분석은 2~5단 잔량이 있는 날만 쓴다. 날마다 09:00~15:30 사이에 300초 넘는 기록 구멍이 없고, 체결 중 직전 미드에서 2틱 넘게 떨어진 비율이 2% 이하, 중복 호가 행이 1% 이하인 날만 통과시켰다. 이 검사로 2026-07-31 같은 손상된 날이 빠진다.
30선은 다르게 다뤘다. 30선은 호가 단위가 0.02포인트라 «2틱 넘게 떨어진 체결» 검사가 한 틱 차이만으로 걸리므로 의미가 없다. 그래서 30선은 같은 날 3선이 위 검사를 통과한 날(수신 장애가 없던 날)만 쓴다. 30선은 연속 거래 체결이 하루 중앙 20건, 137계약밖에 안 되는 매우 얇은 시장이다. 같은 날 3선은 약 10.8만 계약, 10선은 약 5.6만 계약이 연속 거래로 체결됐다. 마지막 세 날(11-04 ~ 11-06)은 다른 중계 서버에서 받아 호가 행이 더 촘촘하지만, 매 분 정각의 상태만 쓰므로 영향이 작다고 보고 그 세 날을 뺀 결과도 따로 냈다.
| 자료 | 기간 | 해상도 | 표본 | 쓰임 |
|---|---|---|---|---|
| 국채선물 호가 (3선, 10선, 30선 근월) | 2026-07-08 ~ 11-06 | 호가 갱신마다, 매 1분 정각으로 표본 | 검사 통과 61일, 그중 2~5단 잔량 있는 날 39일 | 걷기 비용, 상태 변수 |
| 국채선물 체결 | 같음 | 체결마다 | 품질 검사용 | 날 품질 검사, 30선 거래량 |
| 선물 틱가치 일별 | 같음 | 일 | 상품마다 날마다 1행 | 틱을 bp 로 환산 (bp당 틱: 3선 약 2.86, 10선 약 8.31) |
| 금통위, 국고채 입찰, 미국 지표 일정 | 같음 | 일 | 39일 중 18일이 사건일 | 사건일 더미 E |
| 구간 | 기간 | 날 | 1분 스냅샷 (상품마다) | 쓰임 |
|---|---|---|---|---|
| 발견 | 2026-07-21 ~ 09-30 | 17 | 약 6,950 | 고정표와 모델 적합 |
| 확인 | 2026-10-01 ~ 11-06 | 22 | 약 9,000 (예측 표본 8,888) | 판정 채점 |
| 깊이 없는 날 | 2026-07-08 ~ 09-07 일부 | 22 | 약 9,000 | 2호가 가정값 별도 표 |
방법
날마다 08:46 부터 15:34 까지 매 1분 정각 409개 시각에서, 그 시각 이하의 마지막 호가 갱신을 그 시각의 호가로 잡았다. 한쪽 호가가 비었거나 매도호가가 매수호가보다 낮지 않은 시각은 뺐는데, 3선과 10선은 0.1%, 30선은 1.7% 였다. 각 시각에서 q 계약 매수는 매도호가 1단부터, 매도는 매수호가 1단부터 잔량을 차례로 먹는다고 보고 평균 체결가를 구한 뒤 두 값의 차를 틱으로 나눠 RT(q)를 얻었다. 예를 들어 10선에서 1단 매도 잔량이 69계약, 2단이 94계약이면 100계약 매수는 69계약을 1단에, 31계약을 1틱 위 2단에 체결해 평균이 1단보다 0.31틱 높다.
측정 가설은 깊이 있는 39일 전체의 1분 RT 를 모아 중앙값을 내고, 날을 복원추출하는 부트스트랩 2,000회로 95% 구간을 만들었다. 못 채움 시각은 중앙값 순위에서 가장 큰 값으로 두어 비용을 낮게 잡지 않게 했다. H931 은 같은 날 표본에서 30선과 10선 중앙값의 차를, H934 는 확인 구간 3선 50계약 중앙값에서 지난 측정값 1.00을 뺀 차를 같은 방식으로 구간 추정했다.
예측 가설은 이렇게 짰다. 시각 t 의 특징 여덟 개(시각대 더미 넷, L1, S, V30, E)로 t+5분의 10선 100계약 RT 연장값을 맞힌다. 시각대 더미는 예측 대상 시각 t+5분의 시각대를 쓰는데, 시계는 미리 알 수 있으므로 미래 정보가 아니다. 그날 08:46 이전이나 15:34 이후로 넘어가는 표적은 쓰지 않았다. 모델은 τ = 0.5 선형 분위회귀이고 발견 구간 17일로 한 번만 적합했다. 기준선은 셋이다. 고정표(발견 구간 시각대별 중앙), 단일 상수(발견 구간 전체 중앙), 지속(시각 t 의 RT 를 그대로 t+5 예측으로)이다. 비교 모델로 그래디언트 부스팅 분위 회귀(같은 특징에 t 의 RT 와 시각을 더함)를 함께 돌렸다.
판정 지표는 확인 구간 22일 8,888행에서 분위회귀와 고정표의 MAE 감소율이다. 확인 날을 복원추출해 감소율을 5,000번 다시 계산하고 0 이하가 나온 비율을 한쪽 p 로 썼다. H935(90분위 핀볼)와 함께 Holm 두 개 묶음으로 조정했다. 채택은 감소율 15% 이상이고 조정 p 가 0.05 미만일 때, 보류는 둘 중 하나만 맞을 때, 폐기는 감소율이 0 이하이거나 p 가 0.05 이상이면서 감소율도 15% 미만일 때로 미리 정했다. 강건성으로 상품 셋, 수량 셋(10, 50, 100), 지평 넷(1, 5, 15, 30분)의 격자를 같은 방식으로 돌렸고, 사건일 제외, 개장 제외, 마지막 세 날 제외 민감도를 냈다. 이 모든 설정은 결과를 보기 전에 계획 문서로 고정해 커밋했다. 진단 절의 변형 모델, 쪼개기 비용, 같은 DV01 비교는 결과를 본 뒤 정한 탐색이다.
모델
판정 모델은 선형 분위회귀(sklearn QuantileRegressor, τ = 0.5, 벌점 없음, highs 해법) 하나다. 선형을 고른 이유는 표본이 17일로 짧아 유연한 모델이 날마다 다른 우연을 외우기 쉽고, 비용 결정 요인이 몇 개뿐이라 계수로 읽히는 편이 표를 대신할 후보로 쓸모 있기 때문이다. 분위회귀는 오차 절댓값을 줄이도록 맞추므로 꼬리가 긴 비용 분포에서 평균 회귀보다 중앙을 안정되게 잡는다. 아래 그림은 정본 런과 같은 설정으로 다시 적합해 확인 구간 예측을 그대로 재현한 모델에서 그렸다.
계수는 직관과 맞는다. 1호가가 두꺼우면 싸고 스프레드가 넓으면 비싸며, 개장 시각대는 다른 시각대보다 1.5~1.8틱 비싸다. 직전 30분 변동과 사건일 계수는 작다(각각 0.07, 0.14틱). 비교용 부스팅은 최대 반복 200, 학습률 0.05, 잎 15개, 잎 최소 표본 50, 무작위 seed 259 로 고정했다.
결과
수량별 비용
표 3은 깊이 있는 39일의 장중 전체 왕복 비용이다. 3선은 1호가 잔량 중앙이 719계약이라 100계약까지 모든 시각대에서 중앙 1.00틱, 90분위도 1.00틱이다. 1틱을 넘는 시각은 100계약에서도 5.5%뿐이다. 10선은 1호가 잔량 중앙이 58계약이라 35계약부터 2단을 먹기 시작한다. 50계약은 1.34틱, 100계약은 1.93틱 [1.88, 1.99]로, 예측했던 2틱을 구간 상단까지 넘지 못했다. 그래서 H930 은 미지지다. 다만 10선 100계약은 1분 시각 중 41.6%가 2틱을 넘고 4.8%가 3틱을 넘으므로, 평균(연장값) 2.02틱으로 보면 보고용 2틱 가정과 거의 같다.
30선은 다른 세계다. 스프레드 중앙이 7틱(0.02포인트 단위, 0.77bp)이고 1호가 잔량 중앙이 15.5계약이다. 1~5단 합의 작은 쪽 중앙이 61계약이라 100계약을 채울 수 있는 시각은 4.9%밖에 없고, 50계약도 27% 시각에 못 채운다. 10계약 왕복만 해도 0.82bp 로 10선 100계약(0.23bp)보다 비싸다. 같은 100계약이면 30선이 비싸다는 H931 은 이렇게 자명하게 지지된다. 30선에서 100계약 시장가는 호가에 보이는 범위로는 성립하지 않는다.
| 상품 q | 중앙 | 90분위 | 평균(연장값) | bp | 못 채움 | 1호가 잔량 중앙 |
|---|---|---|---|---|---|---|
| 3선 50 | 1.00 | 1.00 | 1.020 | 0.35 | 0% | 719 |
| 3선 100 | 1.00 [1.00, 1.00] | 1.00 | 1.032 | 0.35 | 0% | 719 |
| 10선 10 | 1.00 | 1.60 | 1.112 | 0.12 | 0% | 58 |
| 10선 50 | 1.34 | 2.00 | 1.435 | 0.16 | 0.08% | 58 |
| 10선 100 | 1.93 [1.88, 1.99] | 2.62 | 2.021 | 0.23 | 0.66% | 58 |
| 30선 10 | 7.00 | 97.0 | 29.3 | 0.82 | 0% | 15.5 |
| 30선 50 | 62.4 | 못 채움 | 72.6 | 7.25 | 27% | 15.5 |
| 30선 100 | 못 채움 | 못 채움 | 137.4 | 못 채움 | 95% | 15.5 |
3선 50계약을 앞선 측정과 같은 칸으로 다시 재면 확인 구간 중앙이 1.00틱으로 차가 0.00 [0.00, 0.00]이다(H934 지지). 평균으로 보아도 1.020틱 [1.018, 1.023]이다. 10선은 같은 칸에서 오히려 조금 싸졌다. 장중 전체 50계약은 앞선 측정 1.40틱에서 확인 구간 1.28틱으로, 개장 50계약은 2.80틱에서 2.48틱으로 내려왔다. 발견에서 확인 구간으로 넘어오며 10선 100계약 중앙은 2.05틱에서 1.86틱으로 0.19틱 [0.10, 0.31] 내렸는데(탐색), 같은 사이 1호가 잔량 중앙이 52계약에서 61.5계약으로 늘었다.
시각대와 날
시각대가 비용을 가장 크게 가른다. 10선 100계약은 개장 15분에 중앙 4.01틱, 오전 1.97틱, 점심 1.93틱, 오후 1.83틱, 마감전 2.19틱이다. 개장 직후에는 1호가가 얇고 스프레드가 2틱 이상인 시간이 길어서다. 3선 100계약은 개장에서도 1.00틱이다. 날 단위로 보면 10선 100계약 날 중앙은 1.60틱에서 2.51틱 사이를 움직였고, 날 중앙 비용과 날 중앙 1호가 잔량의 상관은 −0.94 로 거의 한 몸이다. 9월 둘째 주(월물 교체 직전과 직후)에 비용이 2.4~2.5틱으로 뛰었고 그때 1호가 잔량은 40계약 아래로 얇아졌다.
상태 예측
판정 가설 H933 의 결과는 표 4 와 같다. 확인 구간 22일 8,888행에서 분위회귀의 MAE 는 0.326틱, 고정표는 0.345틱이다. 감소율은 5.5% [1.6, 9.6]이고 한쪽 p 는 0.0022, Holm 조정 뒤에도 0.0022 다. 유의하지만 미리 정한 15%의 삼분의 일 수준이다. 90분위로 채점한 H935 는 핀볼 손실이 0.0817 대 0.0927 로 11.9% [8.2, 15.6] 줄었고 p 는 0.001 미만이다. 역시 15%에 못 미친다. 상태 정보는 실재하지만 시각대 표가 이미 대부분을 잡고 있어 덧붙는 몫이 작다.
기준선끼리의 비교도 읽을 거리가 있다. 지속(지금 비용을 5분 뒤 예측으로)은 고정표보다 2.4% 나빴고(p 0.82), 시각대를 무시한 단일 상수는 6.4% 나빴다. 그러니 5분 뒤 비용은 지금 비용보다 시각대 평균에 더 가깝다. 비교용 부스팅은 중앙에서 5.7%로 분위회귀와 같았고, 90분위에서는 22.6%로 분위회귀보다 확실히 나았다. 꼬리(비싼 순간)를 맞히는 데는 지금 비용과 시각을 비선형으로 묶는 편이 낫다는 뜻이다.
| 모델 대 기준 | τ | 모델 손실 | 기준 손실 | 감소율 | 95% 구간 | 한쪽 p |
|---|---|---|---|---|---|---|
| H933 분위회귀 대 고정표 | 0.5 | 0.326 | 0.345 | 5.5% | [1.6, 9.6] | 0.0022 |
| H935 분위회귀 대 고정표 | 0.9 | 0.0817 | 0.0927 | 11.9% | [8.2, 15.6] | < 0.001 |
| 부스팅 대 고정표 | 0.5 | 0.325 | 0.345 | 5.7% | [0.4, 10.6] | 0.018 |
| 부스팅 대 고정표 | 0.9 | 0.0718 | 0.0927 | 22.6% | [19.1, 26.2] | < 0.001 |
| 지속 대 고정표 | 0.5 | 0.353 | 0.345 | −2.4% | [−7.4, 2.9] | 0.82 |
| 단일 상수 대 고정표 | 0.5 | 0.367 | 0.345 | −6.4% | [−9.1, −3.9] | 1.00 |
강건성 격자와 민감도
그림 6 은 미리 정한 격자의 결과다. 3선은 수량과 지평에 상관없이 비용이 거의 늘 1.00틱이라 고정표의 오차가 0.01~0.03틱뿐이고, 상태 모델이 더할 것이 없다(감소 0%). 10선 10계약도 같다. 10선 50계약과 100계약은 지평이 짧을수록 이득이 크다. 100계약은 1분 뒤 10.8%, 5분 뒤 5.5%, 15분 뒤 3.7%, 30분 뒤 −3.4% 다. 상태의 정보가 앞으로 몇 분 안에 몰려 있고 30분이면 사라진다는 뜻이다. 30선 10계약은 1분 뒤 78% 를 줄이는데, 30선 호가가 거의 움직이지 않아 지금 스프레드가 곧 1분 뒤 스프레드이기 때문이다. 이 역시 30분이면 거꾸로 −26% 가 된다.
민감도에서 판정 설정의 감소율은 사건일을 빼면 7.6%(확인 9일), 개장 시각대를 빼면 5.6%, 마지막 세 날을 빼면 5.3% 로, 어느 쪽도 15%에 닿지 않았다. 사건일만 남기면 22.4%(확인 13일)로 커진다. 사건일 비용 중앙(1.92틱)은 보통날(1.93틱)과 같으므로, 사건일이 비싸서가 아니라 사건일 안에서 비용이 더 크게 흔들려 상태가 설명할 몫이 커진 것으로 읽힌다. 이 분할은 결과를 보고 해석한 것이라 판정에 쓰지 않는다.
| 표본 | 확인 날 | 감소율 | 95% 구간 | 한쪽 p |
|---|---|---|---|---|
| 전체(판정) | 22 | 5.5% | [1.6, 9.6] | 0.0022 |
| 사건일 제외 | 9 | 7.6% | [4.6, 11.0] | < 0.001 |
| 사건일만 | 13 | 22.4% | [19.3, 25.6] | < 0.001 |
| 개장 시각대 제외 | 22 | 5.6% | [1.5, 9.7] | 0.003 |
| 11-04 ~ 11-06 제외 | 21 | 5.3% | [1.3, 9.6] | 0.005 |
진단과 변형
왜 이득이 작은지 분해했다(탐색). 10선 100계약 비용의 같은 날 안 자기상관은 1분 0.74, 5분 0.64, 15분 0.45, 30분 0.29, 60분 0.14 다. 전체 분산 가운데 시각대 평균이 이미 40%를 설명하는데 이것은 고정표가 가진 몫이다. 날과 시각대를 함께 묶은 평균은 58%, 그 안쪽 1분 단위 흔들림이 42% 다. 1분 흔들림은 몇 분 지나면 빠르게 사라지고, 호가 잔량 한 시점 값은 이 흔들림을 따라 흔들린다. 반면 «오늘 이 시간대는 평소보다 얇다» 는 느린 성분은 한 시점 잔량보다 직전 몇십 분의 비용 평균이 더 잘 담는다.
그래서 직전 30분 비용 평균(R30)을 특징에 더한 변형을 돌렸다. 5분 뒤 감소율이 17.5% [14.4, 20.9]로 커지고, 그날 지금까지의 중앙과 전날 중앙까지 넣으면 19.3% 다. R30 만 더한 판에서 1분 뒤는 23.7%, 15분 뒤는 11.7% 이고, 30분 뒤는 특징을 다 넣어도 7.4% 다. R30 하나만 넣어도 17.6% 라서 나머지 특징의 몫은 작다. 같은 변형이 10선 50계약에서는 7.8% 로 작은데, 50계약 비용은 1.0~1.4틱 사이에서만 움직여 맞힐 거리가 적다. 이 변형은 판정 결과를 본 뒤 고른 것이므로 확증이 아니다.
2호가 가정의 치우침도 확인했다. 깊이 있는 날에 «1단 초과분은 1틱 나쁜 가격에 무한히» 라고 가정하면 10선 100계약 비용을 평균 0.10틱 낮게 잡는다. 3선은 치우침이 없다. 30선은 2단이 1틱 뒤에 있지 않은 일이 많아 평균 109틱이나 낮게 잡으므로, 2~5단 잔량이 없는 날의 30선 값은 쓸 수 없다.
실행 방식 비교
100계약을 한 번에 치는 대신 1분 간격으로 나눠 치면 어떤지 정적 비용으로 보았다(탐색). 10선은 한 번에 평균 2.01틱, 20계약씩 다섯 번이면 1.17틱, 10계약씩 열 번이면 1.11틱이다. 그러나 정적 걷기는 우리 앞 조각이 미드를 밀어 놓는 효과를 무시한다. 앞선 측정에서 10선 6~20계약 공격 체결 뒤 60초 미드 이동(체결 방향)은 왕복 단위 0.84틱이었고 300초까지 되돌아오지 않았다. 이 이동이 조각마다 쌓인다고 두면 다섯 번 쪼개기는 2.84틱으로 한 번에 치는 것보다 나쁘다. 실제 값은 1.17틱과 2.84틱 사이에 있고, 정보 없는 주문의 충격은 평균 체결보다 작을 가능성이 크다. 3선은 한 번에 1.03틱, 쪼개면 정적으로 1.01틱이라 쪼갤 이유가 없다.
| 주문 | RT 중앙(틱) | RT 평균(틱) | 위험 1bp 당 비용(bp) | 왕복 금액(평균) |
|---|---|---|---|---|
| 3선 100계약 | 1.00 | 1.032 | 0.36 | 약 103만원 |
| 10선 35계약 (3선 100과 같은 DV01) | 1.06 | 1.293 | 0.16 | 약 45만원 |
| 3선 290계약 | 1.00 | 1.100 | 0.39 | 약 319만원 |
| 10선 100계약 (3선 290과 같은 DV01) | 1.93 | 2.021 | 0.24 | 약 202만원 |
표 6 은 같은 금리 위험을 사고팔 때의 비용이다. 10선 100계약은 틱으로는 3선 100계약의 두 배이지만, 같은 DV01 의 3선 290계약과 견주면 위험 1bp 당 0.24bp 대 0.39bp 로 10선이 더 싸다. 10선 1틱이 금리로 훨씬 작은 움직임이기 때문이다. 판정에서 틱 단위 비용만 보고 10선을 불리하게 다루면 이 점을 놓친다.
지정가와 월별 점검
여기부터는 계획에 없던 보강 분석이라 모두 탐색이다. 먼저 시장가 대신 지정가를 쓰면 얼마나 아끼는지 보았다. 09:00 부터 15:00 까지 5분마다 1호가 맨 뒤에 100계약 매수 지정가(또는 매도 지정가)를 건다고 두었다. 우리 앞에는 건 시각의 1호가 잔량이 줄 서 있고, 우리 가격에서 체결된 양이 그 잔량을 넘은 만큼 우리가 채워지며, 우리 가격을 뚫는 체결이 나오면 다 채워진다(큐 모형). h 분 안에 못 채운 양은 그 시각의 호가로 시장가 체결한다. 비용은 건 시각 미드 대비 편도 틱이고, 상품마다 39일 5,694건이다.
10선은 앞선 잔량이 중앙 58계약으로 짧아 5분 안에 100계약을 다 채우는 주문이 70% 다. 못 채운 양을 5분 뒤 시장가로 치면 평균 편도 0.59틱으로, 즉시 시장가 0.98틱보다 0.39틱 [0.34, 0.44] 싸다. 3선은 앞선 잔량이 689계약이라 5분 안에 다 채우는 주문이 42% 이고 편도는 0.52틱에서 0.37틱으로 준다. 대가도 보였다. 다 채운 10선 주문은 그 뒤 5분 미드가 우리에게 불리하게 1.06틱 움직였고(역선택), 못 채운 주문은 반대로 2.45틱 달아났다. 무작위 시각에서는 지정가가 100계약 비용을 절반 가까이 줄이지만, 방향 신호를 따라 칠 때는 놓친 주문이 신호 방향으로 달아나므로 이 이득을 그대로 믿으면 안 된다.
월별로 쪼개도 그림은 같다. 10선 100계약 중앙은 7월 1.99, 9월 2.08, 10월 1.85, 11월 1.88틱이고 1호가 잔량 중앙(56, 50.5, 61.5, 61계약)과 반대로 움직였다. 3선은 모든 달 1.00틱이다. 판정 지표 H933 의 감소율은 10월(19일) 6.2%, 11월(3일) 0.5% 였고 확인 22일 가운데 13일에서 양이었다. 충격 구간으로 10선 비용이 2.4~2.5틱으로 뛴 9월 월물 교체 주간(09-10 ~ 09-15)을 발견 구간에서 빼고 다시 적합해도 감소율은 6.7% [4.5, 8.8]로 비슷해서, 그 주가 결론을 끌고 가지는 않았다.
| 상품 q | 0.5틱 초과 | 1틱 초과 | 1.5틱 초과 | 2틱 초과 | 3틱 초과 |
|---|---|---|---|---|---|
| 3선 100 | 100% | 5.5% | 3.2% | 0% | 0% |
| 10선 35 | 100% | 52% | 26% | 2.8% | 0.5% |
| 10선 50 | 100% | 74% | 38% | 5.3% | 1.3% |
| 10선 100 | 100% | 99% | 86% | 42% | 4.8% |
표 7 처럼 왕복 0.5틱 가정은 시장가로는 어느 상품에서도 맞지 않는다. 3선 100계약에 1틱 가정은 94% 시간 맞고, 10선 100계약에 2틱 가정은 58% 시간 맞는다. 독립성 점검은 이 실험에 해당하지 않는다. 신호가 아닌 측정이고, 이미 검증된 두 전략(미국 야간 되돌림 3선, 금통위 전날 10선)은 개장과 종가 단일가로 체결하므로 연속 거래 비용표가 그 체결 비용을 정하지 않는다.
해석
측정 쪽 결론은 판정 비용 가정을 상품별로 나눠야 한다는 것이다. 3선은 1호가 잔량이 수백 계약이라 100계약에서도 판정 비용 1틱이 그대로 맞고, 보고용 2틱은 넉넉하다. 10선 100계약은 평균 2.0틱이라 보고용 2틱이 실측과 같고, 판정용 1틱은 너무 낮다. 10선에서 1틱 가정이 맞는 크기는 35계약 안팎까지다. 개장 15분에는 10선 100계약이 4틱이므로 개장 직후 연속 거래로 10선 큰 주문을 내는 규칙은 따로 비용을 매겨야 한다. 30선은 호가에 100계약이 없으므로 100계약 시장가를 가정한 30선 전략은 그 자체로 실행 불가능하다.
예측 쪽 결론은 «시각대 표가 이미 좋은 기준선» 이라는 것이다. 비용 변동의 40%가 시각대에서 오고, 한 시점의 호가 상태는 몇 분 안에 바뀌는 성분이 대부분이라 5분 뒤를 맞히는 데 기여가 작다. 표를 대신할 예측기를 만들려면 한 시점 호가보다 직전 수십 분의 비용 이력을 넣어야 한다는 것이 진단에서 나온 방향이다. 다만 판정용 비용 상수를 고르는 목적이라면 5% 남짓의 오차 감소는 실익이 작고, 시각대별 표를 상품과 수량별로 갱신해 두는 것으로 충분하다. 비용 예측이 쓸모 있는 곳은 장중 실행 시점을 고르는 일(지금 칠지 몇 분 기다릴지)인데, 그때는 1분 뒤 예측(10.8%, 변형 23.7%)이 더 맞는 지표다.
마지막으로, 이번 측정은 앞선 측정보다 10선이 조금 싸게 나왔다. 확인 구간 1호가 잔량이 늘어난 것과 맞물리므로 시장 깊이 자체가 변한 것으로 읽는다. 비용표는 시장 깊이를 따라 움직이므로 분기마다 다시 재는 규칙은 유지할 가치가 있다.
한계
표본이 짧다. 2~5단 잔량이 있는 날이 39일(발견 17, 확인 22)뿐이고 두 구간이 이어져 있다. 감소율 구간은 날을 독립으로 보고 복원추출했으므로 같은 주와 같은 월물 안의 상관을 무시해 너무 좁을 수 있다. 판정 결과가 15%와 거리가 멀어 결론이 뒤집힐 가능성은 낮지만, 5.5%라는 크기 자체는 넓게 읽어야 한다.
정적 걷기다. 우리 주문이 호가를 먹은 뒤의 회복, 호가에 안 보이는 잔량, 다른 참가자가 호가를 빼는 반응, 주문 전송 지연을 모두 무시했다. 10선 100계약은 2단 이하까지 가는 일이 잦아 다른 참가자가 반응하면 실제 비용이 더 클 수 있다. 쪼개기의 충격 상한도 평균 체결(정보가 섞인 주문)의 충격을 빌려 썼으므로 우리 주문에 그대로 맞지 않는다.
30선 수치는 하한이다. 하루 연속 거래가 137계약인 시장에서 100계약은 호가에 없는 양이다. 연장값은 5단 뒤 1틱에 남은 양이 다 채워진다고 본 값이라 실제로는 훨씬 나쁠 수 있다. 30선은 날 품질 검사도 3선의 검사로 대신했다.
감사 뒤 고친 것. 독립 감사가 근월을 그날 하루 체결량으로 고르는 것은 장중 시각에 모르는 정보를 쓰는 것이라고 지적했다. 맞는 지적이라 계획 문서에 수정 절을 먼저 커밋하고, 전 거래일 체결량 1위 종목(만기일에는 다음 월물)으로 바꿔 모두 다시 돌렸다. 같은 수정에서 미국 저녁 발표의 다음 한국 영업일을 휴장일을 건너뛰어 세도록 고쳤다. 두 규칙이 달라지는 날은 3선 2026-09-14 하루와 휴장일 10-05 뿐이라 10선 예측과 판정 수치는 첫 런과 소수 넷째 자리까지 같고, 3선 평균과 비율이 셋째 자리에서 조금 바뀌었다. 첫 런은 무효 표시를 붙여 남겼다.
사건일 정의가 넓다. 국고채 경쟁입찰이 거의 매주 있어 39일 중 18일이 사건일이다. 사건일 더미가 약하게 나온 것은 정의 탓일 수 있다. 결과를 본 뒤 한 것은 변형 모델, 쪼개기 충격 보정, 같은 DV01 비교, 구간 간 차의 검정이며 모두 탐색으로 적었고 판정은 사전등록한 H933 하나로만 했다. 지정가 보강 분석은 무작위 시각 기준이라 신호를 따라 칠 때의 놓침 비용을 담지 않는다. 판정 문턱 15%는 아이디어 단계에서 정한 숫자라 5% 감소가 실무에 쓸모없다는 뜻은 아니다. 5단을 넘는 시각은 중앙값에서 가장 큰 값으로 두는 보수적 선택을 했다(10선 100계약은 0.66% 라 영향이 작다).
다음에 해 볼 것
첫째, 직전 30분 비용 평균(R30)을 넣은 상태 모델을 지금 설정 그대로 잠그고 사전등록한 뒤, 2026-11-09 이후 새로 쌓이는 2~5단 잔량 있는 날 20일 이상으로 확인한다. 판정 문턱은 같은 15%로 두고 1분 뒤 예측을 보조 지표로 함께 낸다. 둘째, 쪼개기의 실제 비용을 좁힌다. 체결 기록에서 20계약 안팎의 같은 방향 공격 주문이 1~5분 간격으로 이어진 사례를 찾아 미드 경로를 재고, 정적 1.17틱과 충격 상한 2.84틱 사이의 실제 값을 구한다. 앞 조각을 지정가로, 남은 조각을 시장가로 내는 혼합 실행도 같은 표본으로 비교한다.
산출물
모든 수치는 아래 경로의 정본 런에서 왔다. 그림은 커밋된 결과 파일만 읽어 다시 그린다. 계획 문서는 결과보다 먼저 커밋했다.
- 계획
protocol.md - 분석과 판정
analysis.md - 데이터 점검
code/s0_datacheck.py→results/datacheck/coverage.csv - 1분 스냅샷과 걷기 비용
code/s1_snap.py(중간물은 캐시 폴더) - 정본 런
code/s2_main.py→results/20261110T002816_main/ - 진단과 변형(탐색)
code/s3_depth.py,code/s4_dv01.py→results/20261110T002816_main/depth/ - 그림과 구조도
code/render_figures.py,code/render_model.py - 재현 순서
uv run python code/s1_snap.py 6,s2_main.py,s3_depth.py 20261110T002816_main,s4_dv01.py 20261110T002816_main,render_figures.py,render_model.py
Appendix
A. 데이터셋 실물
2026-10-15 10:00:00 직전의 10선 12월물 호가 한 행(거래소 시각 09:59:59.198750)과, 그것으로 계산한 걷기 비용이다. 100계약 매수는 1단 106.18 에 69계약, 2단 106.19 에 31계약을 채워 평균 106.1831, 매도는 1단 106.17 에 19계약, 2단 106.16 에 81계약을 채워 평균 106.1619 이므로 RT(100) = 2.12틱이다.
| 단 | 매도호가 | 매도 잔량 | 매수호가 | 매수 잔량 |
|---|---|---|---|---|
| 1 | 106.18 | 69 | 106.17 | 19 |
| 2 | 106.19 | 94 | 106.16 | 100 |
| 3 | 106.20 | 167 | 106.15 | 107 |
| 4 | 106.21 | 74 | 106.14 | 105 |
| 5 | 106.22 | 102 | 106.13 | 83 |
| 시각 | 매도1 | 매수1 | 잔량1 매도/매수 | tot5 매도/매수 | S | RT(50) | RT(100) | 2호가 가정 RT(100) |
|---|---|---|---|---|---|---|---|---|
| 10:00 (36000) | 106.18 | 106.17 | 69 / 19 | 506 / 414 | 1 | 1.62 | 2.12 | 2.12 |
| 10:01 (36060) | 106.17 | 106.16 | 101 / 7 | 506 / 359 | 1 | 1.86 | 1.97 | 1.93 |
| 10:02 (36120) | 106.14 | 106.13 | 70 / 14 | 404 / 609 | 1 | 1.72 | 2.16 | 2.16 |
B. 모델 입출력 실물
같은 날 같은 세 시각에서 모델에 들어간 특징과 나온 예측이다(정본 런 pred_10y_q100_h5.csv 에서 그대로 옮김). 표적 y 는 5분 뒤 RT(100), 예측은 고정표(오전 칸 2.07), 단일 상수 2.04, 지속, 분위회귀, 부스팅 순이다. 이날은 전날 저녁 미국 CPI 발표가 있어 사건일(E = 1)이다.
| t | L1 | S | V30 | E | t 의 RT | y (t+5) | 고정표 | 지속 | 분위회귀 | 부스팅 |
|---|---|---|---|---|---|---|---|---|---|---|
| 10:00 | 3.807 | 1 | 4.007 | 1 | 2.12 | 2.00 | 2.07 | 2.12 | 2.281 | 2.123 |
| 10:01 | 4.007 | 1 | 3.970 | 1 | 1.97 | 2.11 | 2.07 | 1.97 | 2.183 | 2.064 |
| 10:02 | 3.761 | 1 | 3.989 | 1 | 2.16 | 2.01 | 2.07 | 2.16 | 2.301 | 2.110 |
이 세 행에서 분위회귀는 사건일 계수와 얇은 매수 잔량 때문에 실제보다 0.1~0.3틱 높게 예측했고, 고정표가 더 가까웠다. 이런 행이 많아 평균 이득이 5.5%에 그쳤다.
C. 실험 설정
| 항목 | 값 |
|---|---|
| 관측 시각 | 매 1분 08:46 ~ 15:34 (409개), 연속 거래만 |
| 수량 q | 10, 20, 21, 35, 50, 100 (격자는 10, 50, 100) |
| 날 품질 | 09:00~15:30 구멍 300초 이하, 2틱 초과 체결 2% 이하, 중복 호가 1% 이하 (30선은 3선 통과일) |
| 분할 | 발견 2026-07-21 ~ 09-30 (17일), 확인 10-01 ~ 11-06 (22일) |
| 판정 모델 | QuantileRegressor τ 0.5, alpha 0, solver highs, 특징 8개, 발견 구간 1회 적합 |
| 비교 모델 | HistGradientBoostingRegressor loss quantile, max_iter 200, learning_rate 0.05, max_leaf_nodes 15, min_samples_leaf 50, random_state 259 |
| 검정 | 확인 날 블록 부트스트랩 5,000회(격자 1,000회, 측정 구간 2,000회), seed 259, 한쪽 p, H933 과 H935 Holm |
| 판정 문턱 | 감소율 15% 이상이고 Holm p < 0.05 면 채택 |
| 격자 | 상품 3 × 수량 3 × 지평 1, 5, 15, 30분 |
| 민감도 | 사건일 제외, 개장 제외, 11-04 ~ 11-06 제외, 사건일만 |