세 줄 요약
- 1호가가 쓸린 뒤 1초에 쓸린 쪽 새 최우선에 건 10계약 지정가(SR)는 주문당 −0.222틱, 아무 때나 최우선 맨 뒤에 건 0241 정책(P1r)은 −0.120틱이었다. 차는 −0.102틱이고 확인 25일 중 23일이 음이다.
- 쓸린 뒤 새 최우선은 원래 2호가라 이미 500계약 넘게 줄이 서 있고, 빈 칸이 열려 맨 앞에 설 수 있는 사건은 16% 뿐이며 그 자리는 가장 먼저 역선택을 받는 자리였다.
- 사건은 중간가를 공격 방향으로 0.6틱 옮기고 5분 뒤에도 대부분 머문다. 판정은 폐기(H924 ~ H926 미지지)이고 10선(탐색)도 같다.
가설과 결론
- 가설
- 앞선 두 실험은 3년 국채선물 지정가의 값이 거의 전부 큐 위치에서 나온다는 것을 보였다. 최우선 맨 뒤에 서면 잘 채워지지 않고, 한 칸 뒤 2호가에 미리 서도 그 칸이 최우선이 될 때 앞 대기열이 표시 잔량의 99.5% 라 자리를 얻지 못했다. 그래서 이번에는 큐가 저절로 짧아지는 순간을 골랐다. 공격 주문이 1호가 잔량을 다 먹으면(소진 사건) 그 쪽 가격 칸이 사라지고 새 최우선이 생긴다. 그때 쓸린 쪽에 지정가를 걸면 큐 앞에 서고, 충격 뒤 가격이 되돌아오면 그 되돌림이 우리 편이 된다는 생각이다. 확증 가설은 셋이다. H924: 사건 뒤 1초에 건 주문의 앞 대기열 중앙값이 평소 최우선 맨 뒤 위치의 20% 이하다. H925: 체결 확률을 넣은 주문당 손익이 0241 정책보다 0.05틱 이상 크다. H926: 체결 몫의 60초 마크아웃이 양이다. 지연 L 에 따른 곡선(H927)은 기술 결과로 낸다.
- 결론
- 쓸린 뒤 재충전 지정가는 0241 정책보다 주문당 0.102틱 나쁘고, 세 확증 가설 모두 지지되지 않는다. 확인 구간 소진 사건 3,835건에서 주문당 손익 차 ΔV 는 −0.102틱(90% 구간 −0.127 ~ −0.077, 한쪽 p 1.00)이다. 앞 대기열 중앙값은 521계약으로 평소 715계약의 73%(p 1.00)라 20% 문턱과 거리가 멀다. 체결 몫의 60초 마크아웃은 +0.028틱으로 부호는 예측대로지만 유의하지 않다(p 0.15, Holm 0.46). 판정은 폐기다.
이 결론은 비교 기준을 바꿔도 같다. 체결된 몫 하나만 놓고 보면 SR 은 계약당 −0.482틱으로 0241 정책(−0.545틱)보다 0.06틱 덜 잃는다. 하지만 SR 은 두 배 자주 체결되고(46% 대 22%), 체결될 때마다 청산에서 반 스프레드 0.51틱을 낸다. 되돌림으로 버는 몫(60초 중간가 변화 +0.04틱)이 청산 비용의 열 분의 일도 안 되므로, 자주 체결될수록 더 잃는다. 이 실험의 질문은 «쓸린 순간이 지정가에 유리한 순간인가» 였고, 답은 «아니다, 오히려 정보가 있는 흐름이 지나가는 순간이다» 이다.
용어와 기호
- 3선, 10선
- 3년, 10년 국채선물 근월물. 그날 체결량이 가장 많은 종목을 근월물로 본다.
- 틱
- 호가 단위 0.01포인트. 이 리포트의 손익과 비용은 모두 틱이다.
- 1호가, 2호가
- 매도 쪽이면 가장 낮은 매도 호가가 1호가(a1), 그 다음 가격이 2호가(a2)다. 매수 쪽은 대칭이다(b1, b2). 잔량은 aq1, bq1 처럼 적는다.
- 체결 묶음
- 앞 체결과의 간격이 1ms 이하인 체결의 최대 연쇄. 한 공격 주문이 여러 대기 주문과 맞으면 시각이 조금씩 다른 여러 줄이 되므로 이렇게 묶는다.
- 소진 사건
- 묶음의 모든 체결가가 직전 a1 이상(매수 공격)이고 묶음 수량이 직전 aq1 이상이거나 a1 너머 가격 체결이 있는 경우. 매도 공격은 대칭이다. 사건 시각 te 는 묶음 마지막 체결 시각이다.
- agg
- 사건의 공격 방향. 매수 공격 +1, 매도 공격 −1. 체결 표의 방향 열은 결함이 있어 직전 호가와 체결가를 견줘 정한다.
- 지연 L
- 사건에서 우리 주문이 거래소에 닿기까지의 시간. 0, 0.5, 1, 5초 격자다. 주문은 te + L 의 최신 호가 행을 보고 들어간다.
- SR
- 쓸린 쪽 재충전 정책(확증). 우리 방향 s = −agg. 스프레드가 2틱 이상으로 벌어져 있으면 빈 칸 안으로 한 틱 개선해 맨 앞(A0 = 0)에 서고, 아니면 우리 쪽 최우선 맨 뒤에 선다.
- SRj, SRm, SRr, TK
- 비교 정책. SRj 는 개선 없이 늘 맨 뒤, SRm 은 공격과 같은 방향에 같은 규칙, SRr 은 SR 가격 규칙을 무작위 시각에 쓴 귀무, TK 는 사건 뒤 시장가로 역방향 진입이다.
- P1r
- 0241 정책. 매일 5분 칸 78개마다 난수 시각 하나에 매수와 매도 둘 다, 우리 쪽 최우선 맨 뒤에 지정가.
- 앞 대기열 A0
- 주문을 낸 순간 같은 가격에서 우리보다 먼저 체결될 다른 참가자의 수량(계약). 빈 칸 안으로 개선하면 0 이다.
- ρ
- 큐 위치 비율. SR 주문 A0 의 중앙값을 P1r 주문 A0 의 중앙값으로 나눈 값. H924 는 ρ ≤ 0.20 을 묻는다.
- 주문당 손익 V
- 체결된 몫마다 체결 60초 뒤 그때 호가로 시장가 청산한 손익을 더해 목표 수량(10계약)으로 나눈 값. 못 채운 주문은 0 이다. ΔV = V(SR) − V(P1r).
- mk60
- 체결 몫의 60초 마크아웃. s × (체결 60초 뒤 중간가 − 체결가)를 수량 가중 평균한 값. 양이면 체결 뒤 가격이 우리 편으로 왔다.
- cons, trade
- 취소 위치 가정. cons(확증)는 취소가 모두 우리 뒤에서 빠지되 앞 대기열이 표시 잔량을 넘지 못한다는 보수 가정, trade 는 취소를 세지 않고 체결로만 대기열이 준다는 가정이다.
- 수명 Ho, 보유 Hx
- Ho 는 지정가를 걸어 두는 최대 시간(못 채운 몫은 취소), Hx 는 체결 뒤 시장가로 청산할 때까지의 시간이다.
자료
자료는 코스콤 선물 시세를 자체 수집한 두 표다. 호가 표는 근월물 매수와 매도 1 ~ 5단 가격과 잔량을 거래소 시각(마이크로초)으로 담고, 체결 표는 체결 가격, 수량, 누적 거래량을 담는다. 3선은 2026-07-08 부터 11-06 까지 75일이 있고, 지표를 보기 전 점검에서 세 날을 뺐다. 07-09 는 큰 호가 공백과 겹친 부분 수신일로 사건 직전 호가 행의 나이가 중앙 140초였고, 07-15 와 07-31 은 사건이 평소의 열 배 가까이 잡히면서 1호가 너머 체결이 86 ~ 96% 였다(07-31 은 이미 알려진 체결 중복 팽창일이다). 그 뒤 독립 감사의 지적으로 근월물 규칙을 «직전 거래일 체결량 최대 종목» 으로 바꿨고, 그날 최대 종목과 달라지는 3선 09-14 를 더 뺐다. 남은 71일을 발견 46일(07-08 ~ 09-30)과 확인 25일(10-01 ~ 11-06)로 나눴다. 10선은 같은 원천에서 09-08 부터 39일만 정리돼 있어 탐색으로만 썼다.
점검에서 확인한 것은 다음과 같다. 체결은 마이크로초 단위로 모두 다른 시각이라 «같은 밀리초» 로 묶으면 한 공격 주문이 쪼개지므로 1ms 연쇄로 묶었다. 3선 호가 행 간격은 중앙 0.5 ~ 0.9초이고(11-04 부터는 다른 미러에서 받아 6ms), 사건 직전 호가 행은 중앙 0.26 ~ 0.57초 묵었으며, 사건 뒤 첫 호가 행은 중앙 20 ~ 95ms 뒤에 찍힌다. 그래서 지연 0.5초면 사건 뒤 호가를 거의 언제나 본다. 소진 사건은 하루 80 ~ 290건이고 사건 직전 1호가 잔량은 중앙 15 ~ 66계약이다. 곧 사건은 대부분 거의 다 먹힌 칸의 마지막 몇십 계약이 먹히는 순간이다. 묶음 뒤 첫 호가 행에서 그 칸이 실제로 사라진 비율은 63 ~ 92% 다.
| 자료 | 기간 | 해상도 | 표본 | 쓰임 |
|---|---|---|---|---|
| 코스콤 선물 호가 5단 | 3선 2026-07-08 ~ 11-06 | 거래소 시각 마이크로초 | 하루 1.4만 ~ 6.9만 행 | 사건 판정, 앞 대기열, 시장가 청산 |
| 코스콤 선물 체결 | 같은 기간 | 마이크로초 | 하루 2,600 ~ 7,800건 | 사건 판정, 우리 가격의 체결 |
| 발견 구간 | 2026-07-08 ~ 09-30 (4일 제외) | 46거래일 | 사건 5,857 | 보고만(고르는 값 없음) |
| 확인 구간 | 2026-10-01 ~ 11-06 | 25거래일 | 사건 3,835, 무작위 3,742 | 판정 |
| 10선(탐색) | 2026-09-08 ~ 11-06 | 39거래일 | 하루 사건 520 ~ 1,320 | H929 |
방법
사건과 주문. 체결을 1ms 연쇄로 묶고, 묶음 첫 체결보다 엄격히 앞선 마지막 호가 행을 직전 호가로 삼는다. 그 행이 5초보다 묵었으면 사건을 버린다. 묶음의 체결가가 모두 직전 a1 이상이면 매수 공격, 모두 b1 이하면 매도 공격이고 섞이면 버린다. 공격 수량이 직전 1호가 잔량 이상이거나 1호가 너머 가격에서 체결이 있으면 소진 사건이다. 사건마다 te + L 의 최신 호가 행을 본다. 그 행이 te 이전 것이면 아직 사건 뒤 호가를 못 본 것이므로 «미관측» 으로 버린다. 그래서 L = 0 은 정의상 모든 사건이 버려진다. SR 은 공격 반대 방향 10계약 지정가이고, 스프레드가 2틱 이상 벌어져 있으면 빈 칸 안으로 한 틱 개선해 맨 앞에, 아니면 최우선 맨 뒤에 선다.
큐 재생. 앞선 실험과 같은 규칙이다. 체결과 호가 행을 시간 순으로 처리하며, 우리 가격의 체결은 앞 대기열을 먼저 줄이고 남는 몫이 우리를 채운다. 우리 가격 너머에서 체결이 찍히거나 반대편 최우선이 우리 가격까지 오면 남은 몫 전부가 채워진다. 호가 행에서 우리 가격 칸 잔량이 줄면 취소로 보고, 확증 가정 cons 에서는 앞 대기열을 그 칸 표시 잔량 이하로만 줄인다. 우리 주문은 시장에 없었다고 본다. 주문은 60초(Ho) 동안 걸려 있다가 남은 몫은 취소하고, 체결된 몫은 체결 시각 60초(Hx) 뒤 그때 반대편 1 ~ 5단을 먹는 시장가로 청산한다. 이 손익은 청산 스프레드를 실제로 낸 값이다.
기준선과 귀무. 주 기준선 P1r 은 0241 정책을 같은 재생기에서 무작위 시각(5분 칸 78개마다 난수 하나, 매수와 매도)에 돌린 것이다. SRr 은 SR 과 같은 가격 규칙을 같은 무작위 시각에 쓴 귀무로, «사건 시각을 고른 값» 과 «빈 칸 개선 규칙의 값» 을 가른다. SRj 는 개선을 뺀 대조, SRm 은 공격과 같은 방향에 서는 대조, TK 는 사건 뒤 시장가로 역방향에 들어가는 대조다. 고르는 문턱이나 학습하는 값이 없어 선택 편향을 재는 순열 재실행은 필요 없고, 발견 구간은 같은 수치를 보고만 한다.
검정과 판정. 확증 칸은 3선, 10계약, L = 1초, Ho = 60초, Hx = 60초, cons, 체결 기준 사건 정의, 확인 구간이다. 확인 25거래일을 복원 추출하는 날 블록 부트스트랩 10,000회로 ρ, ΔV, mk60 의 분포를 만들고, 귀무 경계(ρ 0.20, ΔV 0.05틱, mk60 0) 반대편 비율을 한쪽 p 로 썼다. 세 p 에 Holm 보정을 했다. 채택하려면 H925 가 Holm p < 0.05 이고, 동시에 V(SR) > 0, 그리고 mk60 에서 판정용 왕복 비용 1틱을 빼도 양이어야 한다. 계획은 결과를 보기 전에 사전등록 문서로 커밋했고 수정은 없다.
격자와 진단. 사전등록 격자는 L 넷, Ho 셋(10, 30, 60초), Hx 셋(10, 60, 300초), 취소 가정 둘로 72칸이다. 그 밖에 사건 정의(호가로 확인된 사건만), 사건 크기(묶음 50계약 이상), 주문 크기(1계약), 비용 0.5, 1, 2틱 민감도, 30분 칸별, 날별, 월별, 금통위일 제외, 재고 한도 10계약 순차 실행을 냈다. 실패 원인을 보려고 체결 몫 손익을 세 조각으로 나눴다. 들어갈 때 얻은 반 스프레드(체결 순간 중간가 대비), 그 뒤 60초 중간가 변화, 청산 반 스프레드다.
결과
확증 가설
첫 질문은 큐 자리다. 확인 구간 SR 주문의 앞 대기열 중앙값은 521계약이고, 무작위 시각 최우선 맨 뒤의 중앙값은 715계약이다. 비율 ρ 는 0.73 이고 부트스트랩 90% 구간이 0.61 ~ 0.85 라 문턱 0.20 에 한 번도 닿지 않았다(p 1.00). 매수 공격이 1호가를 먹으면 새 최우선 매도 칸은 원래 2호가이고, 3선의 2호가에는 평소 1,000계약 넘게 쌓여 있다. 그 일부가 공격 뒤에 빠지거나 공격이 둘째 칸을 조금 먹어 평소 최우선보다는 짧지만, 앞자리라고 부를 수준은 아니다. 1초 뒤에도 스프레드가 2틱으로 벌어져 빈 칸 안에 맨 앞으로 설 수 있었던 사건은 16.2% 다.
둘째 질문이 판정을 정한다. 주문당 손익은 SR −0.222틱, P1r −0.120틱이다. 두 정책 모두 음인 것은 60초 뒤 시장가로 청산하면서 반 스프레드를 내기 때문이고, 차 ΔV 는 −0.102틱(90% 구간 −0.127 ~ −0.077)이다. 25일 중 ΔV 가 양인 날은 둘뿐이고 가장 좋은 날도 +0.034틱이다. 문턱 0.05틱은커녕 0 을 넘을 확률도 부트스트랩에서 0 이다. 셋째로 SR 체결 몫의 mk60 은 +0.028틱(90% −0.017 ~ +0.072)으로 P1r 체결 몫(−0.039틱)보다 낫지만 0 과 가르지 못한다. 되돌림이 있다 해도 계약당 0.03틱 안팎이라 판정용 비용 1틱의 3% 에 그친다.
| 가설 | 검정량 | 값 | 90% 구간 | 한쪽 p | Holm p |
|---|---|---|---|---|---|
| H924 | ρ ≤ 0.20 | 0.73 (521 / 715계약) | 0.61 ~ 0.85 | 1.00 | 1.00 |
| H925 | ΔV > 0.05틱 | −0.102틱 | −0.127 ~ −0.077 | 1.00 | 1.00 |
| H926 | mk60 > 0 | +0.028틱 | −0.017 ~ +0.072 | 0.152 | 0.456 |
기준선 비교와 손실 분해
정책 다섯의 주문당 손익을 나란히 보면 순서가 분명하다. P1r(−0.120)과 SRr(−0.124)이 가장 덜 나쁘고, SRj(−0.142), SR(−0.222), SRm(−0.345) 순이다. 사건 뒤 시장가로 역방향에 들어가는 TK 는 −1.008틱이다. 무작위 시각에 SR 가격 규칙을 쓴 SRr 이 P1r 과 거의 같은 것은, 평소에는 스프레드가 2틱인 순간이 드물어(0.9%) 두 규칙이 같은 주문을 내기 때문이다. 반대로 사건 직후에는 그런 순간이 16% 라 SR 이 SRj 보다 0.08틱 나빠진다. 곧 빈 칸 안으로 들어가 맨 앞에 서는 행동 자체가 손해다. 발견 구간 수치(SR −0.223, P1r −0.121)도 거의 같고, 금통위 10-22 를 빼도 SR −0.227, P1r −0.117 이다.
손실이 어디서 오는지는 체결 몫 계약당 분해가 보여 준다. 표에서 «반 스프레드» 는 체결 순간 중간가와 체결가의 차로, 대기열을 먹혀 체결되면 +0.5, 가격이 우리 칸을 관통하면 −0.5 쪽으로 간다. P1r 은 이 값이 −0.163틱으로, 체결의 상당수가 관통이라는 뜻이다. SR 은 −0.011틱으로 덜 나쁘다. 그 뒤 60초 중간가 변화는 SR +0.039, P1r +0.124 다. P1r 의 되돌림이 더 큰 것은 관통으로 체결된 직후 가격이 조금 되돌아오는 평균 회귀 때문이다. 그리고 두 정책 모두 청산에서 0.51틱을 낸다. 세 조각을 더하면 SR −0.482, P1r −0.545틱이다. 체결 몫 하나만 보면 SR 이 낫지만, SR 은 46.1%, P1r 은 22.1% 체결되므로 주문당 손익은 SR 이 더 나쁘다.
| 정책 | V 확인 | V 발견 | 체결률 | 반 스프레드 | 60초 변화 | 청산 | 체결 몫 손익 | 앞 대기열 중앙 |
|---|---|---|---|---|---|---|---|---|
| SR 쓸린 쪽 재충전 | −0.222 | −0.223 | 46.1% | −0.011 | +0.039 | −0.511 | −0.482 | 521 |
| SR 중 빈 칸 맨 앞(16%) | −0.519 | 96.4% | −0.066 | +0.039 | −0.511 | −0.538 | 0 | |
| SR 중 맨 뒤 합류(84%) | −0.165 | 36.4% | +0.018 | +0.039 | −0.510 | −0.454 | ||
| SRj 개선 없이 맨 뒤 | −0.142 | −0.140 | 31.4% | +0.012 | +0.046 | −0.510 | −0.452 | 833 |
| SRm 공격 방향 편승 | −0.345 | −0.298 | 55.5% | −0.043 | −0.073 | −0.507 | −0.622 | 244 |
| SRr 같은 규칙 무작위 시각 | −0.124 | −0.125 | 22.9% | −0.162 | +0.126 | −0.505 | −0.541 | 709 |
| P1r 0241 정책 | −0.120 | −0.121 | 22.1% | −0.163 | +0.124 | −0.506 | −0.545 | 715 |
| TK 사건 뒤 시장가 | −1.008 | 100% | −0.601 | −1.008 | ||||
가장 눈여겨볼 것은 빈 칸 맨 앞 주문이다. 큐 앞자리를 얻은 주문은 96% 가 체결되지만 체결 순간 이미 중간가가 반대로 움직여 반 스프레드가 −0.066틱이고, 주문당 손익은 −0.519틱으로 가장 나쁘다. 빈 칸에 맨 먼저 선 우리를 채우는 것은 같은 방향으로 계속 들어오는 공격 주문이다. 앞자리는 체결 확률을 올려 주지만 그 체결은 대개 원치 않는 체결이다.
사건 뒤 가격은 되돌아오는가
아이디어의 두 번째 전제인 «충격 뒤 되돌림» 을 주문 없이 가격만으로 봤다(탐색 D1). 사건마다 직전 중간가 대비 중간가 변화를 공격 반대 방향 부호로 쟀다. 값이 음이면 가격이 공격 방향으로 갔고, 0 쪽으로 돌아오면 되돌림이다. 확인 구간 전체 사건은 0.5초 뒤 −0.63틱, 60초 뒤 −0.52틱, 300초 뒤 −0.47틱이다. 사건이 중간가를 0.6틱 옮기고 5분이 지나도 0.15틱 남짓만 되돌린다는 뜻이고, 발견 구간도 0.5초 −0.62, 300초 −0.53 으로 같다. 소진 사건은 일시적 충격이라기보다 정보를 담은 영구 이동에 가깝다.
사건 앞 5초에 이미 −0.32틱이 있는 것도 눈에 띈다. 소진은 같은 방향 흐름이 이어지다 마지막 몇십 계약을 먹는 순간인 경우가 많다는 뜻이다. 1호가 너머까지 먹은 큰 사건은 0.86틱을 움직였고, 확인 구간에서는 300초 뒤 0.47틱을 되돌렸지만 발견 구간에서는 0.18틱만 되돌렸다. 체결 몫 마크아웃 곡선(탐색 D2)도 같은 그림이다. SR 체결 몫은 1초 −0.091, 30초 −0.002, 60초 +0.028, 300초 +0.039틱이고, P1r 은 1초 −0.216, 60초 −0.040틱이다. 어느 보유 시간에서도 0.1틱을 넘지 않아 청산 반 스프레드 0.5틱 근처에도 가지 못한다.
지연 곡선
H927 은 지연에 따라 이득이 어떻게 사라지는지를 묻는다. 결과는 «사라질 이득이 처음부터 없다» 이다. ΔV 는 L = 0.5초 −0.093, 1초 −0.102, 5초 −0.069틱이다. 5초가 오히려 덜 나쁜 것은 늦게 낼수록 빈 칸이 이미 채워져(빈 칸 열림 18.3% 에서 6.7% 로) 맨 앞 주문이 줄고 체결도 줄기 때문이다. 사전등록한 L = 0 은 사건 뒤 호가 행을 볼 수 없어 비었다. 대신 결과를 본 뒤 «사건 뒤 첫 호가 행이 찍힌 순간»(확인 중앙 22ms)에 주문한다는 가장 빠른 경우를 탐색으로 쟀다(D6). 거래소 시세를 받자마자 반응해도 빈 칸 열림은 19.5%, 앞 대기열 중앙은 661계약, ΔV 는 −0.084틱(발견 −0.106)이다. 속도로 사는 것은 빈 칸에 설 기회인데, 그 기회의 값이 음이다.
| L | ΔV | 90% 구간 | V(SR) | 체결률 | mk60 | 앞 대기열 중앙 | 빈 칸 열림 |
|---|---|---|---|---|---|---|---|
| 첫 호가 행(중앙 22ms) | −0.084 | −0.204 | 44.0% | +0.044 | 661 | 19.5% | |
| 0.5초 | −0.093 | −0.118 ~ −0.067 | −0.215 | 45.9% | +0.040 | 569 | 18.3% |
| 1초 | −0.102 | −0.127 ~ −0.077 | −0.222 | 46.1% | +0.028 | 521 | 16.2% |
| 5초 | −0.069 | −0.088 ~ −0.052 | −0.194 | 40.1% | +0.023 | 615 | 6.7% |
강건성 격자와 비용
사전등록 격자 72칸 가운데 L = 0 의 18칸은 위 이유로 비었고, 남은 54칸은 모두 ΔV 가 음이다(−0.156 ~ −0.053틱). SR 의 주문당 손익이 양인 칸은 하나도 없고 가장 좋은 칸이 −0.087틱이다. 수명을 10초로 줄이면 두 정책 모두 체결이 줄어 손실이 작아지지만 차는 그대로 음이고, 보유를 300초로 늘려도 되돌림이 작아 결론이 바뀌지 않는다. 취소 가정을 trade 로 바꾸면 앞 대기열이 덜 줄어 체결이 조금 줄 뿐이다. 다른 변형도 같다. 호가로 확인된 사건만 쓰면 ΔV −0.065, 묶음 50계약 이상이면 −0.050, 1계약 주문이면 −0.099틱이다. 시간대 30분 칸 14개 모두 음(−0.195 ~ −0.012)이다.
비용 민감도는 결론을 더 굳힌다. 시뮬레이션 손익은 이미 청산 스프레드를 낸 값이고, 여기에 체결 몫마다 0.5, 1, 2틱을 더 빼면 SR 주문당 손익은 −0.453, −0.684, −1.145틱이 된다. 판정 조건인 «mk60 에서 왕복 1틱을 빼도 양» 은 −0.97틱으로 크게 실패한다. 재고 한도 10계약을 지키며 사건을 차례로 받는 순차 실행은 하루 평균 69개 주문을 내고 하루 손익이 −148틱 × 계약이며, 25일 모두 손실이다. 빈도는 충분하지만(하루 150건 안팎), 빈도가 문제가 아니라 건당 부호가 문제다.
살려 보려 한 변형
폐기 뒤에 결과를 보고 고른 변형 넷을 탐색으로 돌렸다. 첫째, 청산을 시장가 대신 한 틱 유리한 가격의 지정가로 걸고 60초 뒤 남은 몫만 시장가로 정리하는 시장 조성 왕복(D3)이다. 청산 지정가가 8% 만 채워져 체결 몫 손익은 SR −0.489, P1r −0.532틱으로 거의 그대로다. 둘째, 1호가 너머까지 먹은 큰 사건만(D4)의 SR 은 확인 구간에서 mk60 +0.41, 300초 보유 체결 몫 손익 +0.19틱이었지만 발견 구간에서는 각각 +0.10, −0.39틱이다. 결과를 보고 고른 하루 7 ~ 10건짜리 부분집합이고 두 구간이 엇갈리므로 신호로 쓰지 않는다. 셋째, 신호 진입의 체결 개선(H928)이다. 무작위 방향 10계약 주문을 P1 으로 걸어 두고 시한 3분 안에 반대 방향 소진 사건이 나면 그쪽으로 옮겨 거는 규칙은 P1 보다 주문당 +0.015틱(90% +0.008 ~ +0.022) 아꼈다. 부호는 양이지만 발견 구간은 +0.003틱이고 크기가 판정 비용의 1 ~ 2% 라 실익이 없다.
넷째, 10선(H929)이다. 10선은 1호가 잔량이 3선의 열 분의 일이라 큐 앞자리의 값이 다를 수 있다. 확인 25일에서 앞 대기열 중앙은 SR 41계약 대 P1r 63계약(ρ 0.65), 주문당 손익 SR −0.435, P1r −0.410, ΔV −0.025틱(90% −0.064 ~ +0.012)이다. 지연 0.5, 1, 5초가 모두 −0.019 ~ −0.025 로 같다. 체결 몫 분해는 반 스프레드 −0.108, 60초 변화 +0.057, 청산 −0.559 로, 청산 비용이 압도하는 구조가 3선과 같다. 마지막으로 효과가 없으므로 기존 검증 전략과의 손익 상관은 내지 않았다. 기존 전략은 개장과 종가 단일가에서 체결하므로 이 장중 60초 정책과 시각이 겹치지 않는다.
지연, 국면, 회피
첫 판정 뒤 깊이 점검에서 빠진 세 가지를 탐색으로 더 돌렸다. 먼저 진입을 사건 1분 뒤, 5분 뒤로 늦췄다(E1). 같은 SR 규칙이지만 이때는 빈 칸이 열려 있는 경우가 1% 아래라 주문이 사실상 평소의 최우선 맨 뒤 주문이 된다. 그런데도 ΔV 는 확인 구간 −0.042틱(90% −0.062 ~ −0.021), −0.030틱(−0.043 ~ −0.016)으로 음이고 발견 구간도 −0.037, −0.032 다. 사건 뒤 몇 분 동안 체결된 몫의 60초 마크아웃이 −0.05 ~ −0.07틱으로 평소보다 나쁘다는 뜻이다. 1초 지연(−0.102)보다 덜 나쁜 것은 빈 칸 맨 앞의 큰 손실이 빠졌기 때문이다. 쓸린 직후의 몇 분은 지정가를 걸기에 평소보다 나쁜 시간이다.
둘째로 날마다 연속 거래 중간가 고저 폭으로 국면을 나눴다(E2). 문턱은 발견 구간 삼분위(11.3틱, 16틱)로 잡았다. 확인 구간 ΔV 는 변동 저 −0.111, 중 −0.135, 고 −0.056틱이고 발견 구간은 −0.099, −0.119, −0.083 이다. 고저 폭 발견 구간 90분위(21.5틱) 초과의 충격일을 빼도 확인 −0.113, 발견 −0.102 다. 변동이 큰 날 차가 줄어드는 것은 SR 이 좋아져서가 아니라 기준인 P1r 도 함께 나빠지기 때문이다(−0.136). 어느 국면에서도 부호가 바뀌지 않는다.
셋째로 다음에 해 볼 것으로 남겼던 독성 흐름 회피의 첫 판을 돌렸다(E3). 무작위 방향 10계약 최우선 지정가(시한 3분)를 걸어 두고, 우리에게서 달아나는 방향의 소진 사건(매수 주문이면 매수 공격 소진)이 나면 1초 뒤 남은 몫을 시장가로 바꾼다. 결과는 P1 보다 주문당 0.034틱 비쌌다(확인, 90% −0.041 ~ −0.026, 발견 −0.043). 회피가 발동한 16% 주문만 보면 −0.21틱이다. 사건이 가격을 0.6틱 옮긴 뒤 쫓아가면 그 이동을 그대로 내므로, 회피는 사건 뒤가 아니라 앞에서 해야 한다. 반대로 사건 쪽으로 주문을 옮겨 거는 SW 는 +0.015틱이었지만 크기가 작다.
해석
아이디어는 두 전제 위에 서 있었다. «쓸린 뒤 새 최우선의 대기열은 짧다» 와 «충격 뒤 되돌림이 우리 편이 된다» 다. 3선에서는 둘 다 성립하지 않았다. 매수 공격이 1호가를 먹으면 새 최우선 매도 칸은 원래 2호가이고, 3선의 2호가는 평소 1,000계약 넘게 쌓여 있다. 그래서 새 최우선 칸의 줄은 평소의 73% 로 조금 짧을 뿐이다. 진짜로 빈 칸, 곧 스프레드가 2틱으로 벌어진 칸은 거래소 시세를 받자마자 반응해도 20% 사건에서만 열려 있고, 그 칸에 맨 먼저 서면 같은 방향으로 이어지는 공격 주문이 우리를 채운다. 사건은 중간가를 0.6틱 옮긴 뒤 5분이 지나도 대부분 그 자리에 머물므로 되돌림으로 메울 것도 없다.
출처 논문은 메이커의 손익분기 스프레드를 재호가 속도와 정보 흐름 선별을 한 저울에 놓고 잰다. 이 실험의 말로 옮기면, 속도는 선별을 사 주지 못했다. 사건 직후 22ms 에 반응하든 5초 뒤에 반응하든 SR 은 0241 정책보다 나쁘고, 빠를수록 빈 칸에 더 자주 서서 정보 있는 흐름을 더 먼저 받는다. 큐 앞자리를 얻는 길은 «줄이 짧아 보이는 순간» 을 고르는 것이 아니라, 그 순간 들어오는 흐름이 정보가 없는지 가려내는 데 있다. 이 재생에서 남은 실용적 교훈은 오히려 반대 방향이다. 지정가를 걸어 둔 쪽으로 소진 사건이 오면 그 주문은 곧 원치 않는 체결을 받을 가능성이 크다.
한계
표본과 국면. 확인 구간은 25거래일, 발견 구간은 46거래일로 넉 달이다. 다섯 달 모두 ΔV 가 −0.09 ~ −0.11틱으로 같아 부호는 안정적이지만 큰 변동성 국면이나 롤 주간 전체를 따로 검정할 표본은 없다. 사건은 하루 150건 안팎이지만 같은 공격 흐름이 짧은 간격으로 여러 사건을 만들기도 해(예: 0.15초 간격 두 사건) 사건끼리 독립이 아니다. 그래서 검정은 날 블록 부트스트랩으로 했고 실제 표본 크기는 25일에 가깝다.
자료 해상도. 10-31 까지의 호가는 중앙 0.6초 간격 스냅숏이다. 사건 직전 호가 행이 수백 ms 묵었으므로 소진 판정과 직전 1호가 잔량이 틀릴 수 있고, 0.5초 미만 지연의 큐 상태는 정확히 잴 수 없다. 호가로 확인된 사건만 써도 결론은 같았다. 코스콤 체결 표는 거래량의 일부(약 68%)만 담는다고 알려져 있어 우리 주문의 체결과 사건 수가 줄어든다. 이 편향은 SR 과 P1r 에 같은 방향으로 작용한다고 보지만 크기는 재지 못했다. 체결과 호가는 다른 표라 같은 순간의 순서는 체결이 먼저라고 가정했다.
재생 가정. 우리 주문은 시장에 없었다고 본다. 빈 칸 안의 우리 주문은 실제로는 그 뒤 공격 주문을 직접 받아 데이터에 없는 체결을 만들 수 있고, 그 체결은 공격 방향이라 손익을 더 나쁘게 할 가능성이 크다. 취소 위치는 모르며 cons 와 trade 두 가정이 같은 결론을 냈다. 청산은 반대편 1 ~ 5단을 먹는 시장가로 했고 수수료는 넣지 않았다. 10선과 30선의 실측 스프레드는 3선보다 넓을 수 있고 30선은 재지 않았다.
결과를 본 뒤 고친 것. 사전등록 L = 0 은 «사건 뒤 호가를 아직 못 봤으면 버린다» 는 정의 때문에 전부 비었고, 이를 대신한 «첫 호가 행» 측정(D6)은 결과를 본 뒤 정한 탐색이다. 첫 실행의 분석 코드는 L = 0 의 빈 칸을 SR 손익 0 으로 계산해 격자 12칸에 가짜 양수를 만들었고, TK 기준선은 날 사이 사건 번호가 겹쳐 286건만 셌다. 두 집계 버그를 고쳐 같은 시뮬레이션 장표로 다시 돌렸다. 시뮬레이터, 가설, 문턱, 판정 규칙은 바꾸지 않았고 확증 세 수치는 두 실행에서 같다. D3, D4, H928 의 부분집합과 규칙, 깊이 보강의 E1 ~ E3 도 결과를 본 뒤 정한 탐색이다.
독립 감사 뒤 고친 것. 결과를 본 뒤 독립 감사가 다섯 가지를 지적했고 모두 직접 확인했다. 첫째, 사전등록 문서의 SR 개선 가격 수식은 부호가 거꾸로 적힌 오기였다. 같은 줄의 정의(빈 칸 안 개선, 앞 대기열 0)와 코드는 처음부터 정의대로였으므로 확증 수치는 그대로다. 글자 그대로의 수식(한 칸 뒤 2호가 맨 뒤)을 탐색으로 재면 확인 구간 주문당 −0.139틱, 0241 정책 대비 −0.018틱으로 역시 음이다. 둘째, 근월물을 그날 전체 체결량으로 고른 것은 장중에 알 수 없는 정보다. 직전 거래일 기준으로 바꾸면 3선 09-14, 10선 09-15 만 달라져 그날을 뺐다. 확인 구간은 두 규칙이 같은 한 종목이라 확증 수치가 그대로이고, 발견 구간은 46일로 줄어 수치가 0.01틱 안에서 움직였다. 셋째, 격자 최대값 집계에 빈 칸의 0 이 섞였던 것을 고쳤다. 넷째, 국면 탐색의 충격일 문턱을 발견 구간만으로 다시 잡았다. 다섯째, 주문 뒤 호가 공백으로 표본을 버리는 규칙은 자료 품질 규칙이고 두 정책에 똑같이 적용돼 그대로 뒀다. 고친 뒤 다시 돌린 정본 런에서도 확증 세 수치와 판정은 같다.
다음에 해 볼 것
1호가 소진 직전 예측과 선제 전환. 소진 사건 뒤 가격은 공격 방향으로 0.6틱 옮겨가 머물고, 사건 앞 5초에 이미 0.3틱이 움직이며, 사건 뒤에 시장가로 바꾸면 그 이동을 그대로 낸다. 그래서 회피는 사건 앞에서 해야 한다. 최우선 지정가가 걸려 있는 동안 반대편 1호가 잔량, 최근 5초 같은 방향 체결 수량, 잔량 감소 속도로 «다음 5초 안 반대편 1호가 소진» 확률을 발견 구간에서 로지스틱으로 맞추고, 확률이 문턱을 넘으면 사건 전에 시장가로 바꾸는 규칙을 확인 구간에서 같은 재생기로 잰다. 문턱은 발견 구간 안에서만 고르고 순열 귀무에서 같은 절차를 다시 돌린다.
소진 확률의 짧은 방향 신호. 사건 뒤에는 이어지는 움직임이 없으므로 사건 자체는 방향 신호가 아니다. 대신 위 모형의 소진 확률이 높을 때 공격 방향으로 시장가 진입하면 사건 앞뒤 이동을 얼마나 미리 잡아 1틱 비용을 넘는지를 본다. 앞선 공격 체결 신호 실험들과 겹치지 않게 호가 소진 확률만으로 정의한다.
산출물
모든 수치는 아래 정본 런에서 나왔고 그림은 같은 런에서 다시 그린다. 시뮬레이션 장표(3선 주문 115만 행, 10선 229만 행)는 크기 때문에 실험 폴더 밖 캐시에 두며 같은 명령으로 다시 만들 수 있다.
- 사전등록
protocol.md - 분석과 판정
analysis.md - 사건 판정과 점검
code/data.py - 큐 재생 시뮬레이터
code/s1_sim.py - 검정과 표
code/s2_main.py - 깊이 보강 탐색
code/s3_depth.py,code/s4_fast.py,code/s5_depth2.py,code/s6_literal.py - 그림
code/render_figures.py - 정본 런
results/20261109T231103_main/ - 재현
uv run python code/data.py; uv run python code/s1_sim.py 3y 10; uv run python code/s1_sim.py 10y 10; uv run python code/s2_main.py; uv run python code/s3_depth.py results/20261109T231103_main; uv run python code/s4_fast.py results/20261109T231103_main; uv run python code/s5_depth2.py results/20261109T231103_main; uv run python code/s6_literal.py results/20261109T231103_main; uv run python code/render_figures.py
Appendix
A. 데이터셋 실물
사건 판정기가 읽는 정리된 호가 행과 체결 행을 캐시 파일에서 그대로 옮겼다(2026-10-14 3선 근월물, 10:32:46 전후). 가격은 포인트, 잔량과 수량은 계약이다. 실제 행은 1 ~ 5단을 모두 담지만 여기서는 2단까지만 싣는다.
| 시각 | b1 | bq1 | b2 | bq2 | a1 | aq1 | a2 | aq2 |
|---|---|---|---|---|---|---|---|---|
| 10:32:45.519888 | 102.92 | 1,299 | 102.91 | 1,127 | 102.93 | 28 | 102.94 | 1,233 |
| 10:32:46.282242 | 102.92 | 1,319 | 102.91 | 1,127 | 102.93 | 27 | 102.94 | 1,233 |
| 10:32:46.612248 | 102.93 | 181 | 102.92 | 1,322 | 102.94 | 1,212 | 102.95 | 1,555 |
| 10:32:46.971563 | 102.93 | 207 | 102.92 | 1,274 | 102.94 | 1,223 | 102.95 | 1,555 |
| 시각 | 가격 p | 수량 q | 누적 거래량 |
|---|---|---|---|
| 10:32:46.281952 | 102.93 | 1 | 57,720 |
| 10:32:46.425657 | 102.93 | 27 | 57,747 |
이 발췌는 전형적인 소진 사건이다. 102.93 매도 1호가에 27계약이 남아 있었고(직전 호가 행은 0.14초 전), 10:32:46.425657 에 27계약 매수가 그 칸을 다 먹었다. 0.19초 뒤 호가 행에서 102.93 은 매수 1호가(181계약)가 되었고 새 매도 최우선 102.94 에는 1,212계약이 서 있다. 이 사건에서 SR 은 102.94 매도 맨 뒤(앞 대기열 1,223계약)에 섰고 60초 안에 체결되지 않았다. 쓸린 뒤 새 최우선이 원래 2호가라 줄이 길다는 이 실험의 핵심 사실이 한 사건에 그대로 보인다.
B. 모델 입출력 실물
이 실험은 학습한 모델이 없고 규칙 기반 재생기가 있다. 재생기 한 번의 입력은 그날 호가 배열, 체결 배열, 주문 시각 te + L, 방향 s, 가격 P, 앞 대기열 A0, 수량, 취소 가정, 수명 끝 시각, 보유 시간 목록이고, 출력은 (체결 수량, 체결 총액, 마지막 체결 시각, 60초 마크아웃 합, 보유 시간별 청산 손익 합, 들어갈 때 반 스프레드 합)이다. 아래는 2026-10-14 확증 칸 설정의 실제 SR 주문 넷을 주문 장표에서 그대로 옮긴 것이다. 가격과 중간가 M 은 틱 단위(포인트 × 100), 합계 열은 틱 × 계약이다.
| 사건 시각 | agg | s | 스프레드 | M | P | A0 | 체결 | 반 스프레드 합 | mk 합 | pnl_60 | pnl_300 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 10:32:46.4257 | +1 | −1 | 1 | 10293.5 | 10294 | 1,223 | 0 | 0 | 0 | 0 | 0 |
| 10:41:44.9124 | +1 | −1 | 2 | 10293.0 | 10293 | 0 | 10 | −5 | +5 | 0 | 0 |
| 10:44:24.9252 | −1 | +1 | 2 | 10292.0 | 10292 | 0 | 10 | +5 | +5 | 0 | −20 |
| 10:48:54.3455 | −1 | +1 | 1 | 10290.5 | 10290 | 1,549 | 0 | 0 | 0 | 0 | 0 |
첫 행은 부록 A 의 사건으로, 줄 맨 뒤에 서서 채워지지 않았다. 둘째 행은 스프레드가 2틱으로 벌어진 빈 칸 10293 에 맨 앞으로 매도한 경우다. 열 계약이 모두 채워졌지만 그 순간 중간가가 반 틱 올라 있어 반 스프레드 합이 −5 이고, 60초 뒤 중간가가 반 틱 내려 마크아웃 합 +5 를 얻었으나 청산 때 매도 1호가 10293 에 되사 손익은 0 이다. 셋째 행은 반대 방향 사건의 빈 칸 매수로, 60초 청산은 본전이지만 300초 보유했다면 계약당 2틱을 잃었다. 빈 칸 맨 앞 주문이 체결은 잘 되지만 남는 것이 없는 모습이 실물에 그대로 있다.
C. 실험 설정
| 항목 | 값 |
|---|---|
| 사건 정의 | 체결 기준(1ms 연쇄 묶음, 직전 1호가 잔량 이상 또는 너머 체결), 비교로 호가 확인 |
| 사건 시각 창 | 08:50 ~ 15:25, 직전 호가 나이 5초 이하 |
| 주문 크기 | 1, 10계약(재고 한도 10계약) |
| 지연 L | 0, 0.5, 1, 5초 (0 은 관측 불가) |
| 주문 수명 Ho | 10, 30, 60초 |
| 보유 Hx | 10, 60, 300초, 그 뒤 반대편 1 ~ 5단 시장가 청산 |
| 취소 가정 | cons, trade |
| 기준선 | P1r(무작위 시각 5분 칸 78개, 매수와 매도, seed 258 + 날짜), SRr, SRj, SRm, TK |
| 검정 | 날 블록 부트스트랩 10,000회, seed 258, Holm 세 가설(H924 ~ H926) |
| 판정 문턱 | H925 ΔV > 0.05틱 Holm p < 0.05, V(SR) > 0, mk60 − 1틱 > 0 |
| 분할 | 발견 07-08 ~ 09-30 (07-09, 07-15, 07-31, 09-14 제외), 확인 10-01 ~ 11-06 |
| 제외 | 사건 전 60초부터 청산 끝까지 90초 넘는 호가 공백에 걸친 주문 |