세 줄 요약
- 확인 구간 561 세션(2024-07 ~ 2026-10)에서 비용 1틱 뒤 일평균 손익(50계약 = 1 기준)은 필터 +0.33틱, 문턱 규칙 +0.35틱이고 차이는 −0.02틱(월 블록 부트스트랩 한쪽 p 0.54, 선택 절차 귀무 p 0.64)이다. 비용 2틱 뒤 필터는 +0.16틱(p 0.24)이다. Holm 보정 p 는 0.64, 0.47 이다.
- 이 신호의 알파는 하루 만에 사라진다. 발견 구간에서 다음 날 기울기는 −2.75 인데 이틀 뒤는 −0.36 이다. 그래서 천천히 따라가면 회전은 19% 줄어도 총이익이 10% 줄고, 확인 구간 격자 20칸 모두에서 조정 속도 λ 가 작을수록 손익이 낮았다. 필터가 문턱 규칙을 넘는 것은 왕복 약 1.6틱 위이고, 2틱에서도 차이는 +0.01틱이다.
- 판정은 폐기다. 하루짜리 되돌림 신호에서 부분 조정 필터는 비용 뒤 이익을 늘리지 못한다. 이 신호에 남은 실행 축은 회전이 아니라 진입 시각이다.
가설과 결론
3선 장중 움직임 가운데 같은 시간 코스피200 선물과 달러선물로 설명되지 않는 몫(«3선 고유 몫», 기호 r)은 다음 날 반대로 움직이는 경향이 있다. 이 신호를 쓰는 가장 단순한 규칙은 |r| 이 상위 20% 인 날 종가에 반대로 들어가 다음 날 종가에 나오는 것이다. 이 규칙은 거래마다 왕복 비용을 내므로 비용 가정에 따라 승패가 갈린다.
Smerlak(arXiv:2610.24558, 2026-10)은 거래 비용이 있을 때 최적 정책이 «조건부 예측 + 인과 선형 필터» 로 나뉘고, 지수 회복 충격이면 Gârleanu–Pedersen 의 목표 포지션(aim)을 향한 부분 조정이 된다고 보였다. 같은 신호를 이렇게 매일 연속 포지션으로 바꾸면 회전이 줄어 비용 뒤 손익이 좋아지는지 물었다.
- H372
- 확인 구간에서 필터(발견에서 고른 h*, λ*) 일별 net1 − 문턱 규칙 일별 net1 의 평균 > 0. 월 블록 부트스트랩 한쪽 p < 0.05 와 선택 절차 귀무 p < 0.05 를 모두 요구한다.
- H373
- 확인 구간에서 필터 일별 net2 평균 > 0, 월 블록 부트스트랩 한쪽 p < 0.05.
- 결론
- H372 차이 −0.02틱(Holm p 0.64), H373 +0.16틱(Holm p 0.47). 둘 다 미지지, 판정 폐기.
| 가설 | 비교 | 확인 구간 값 | 단독 p | Holm p | 판정 |
|---|---|---|---|---|---|
| H372 | 필터 − 문턱, 비용 1틱 | −0.02틱/일 | 0.54(귀무 0.64) | 0.64 | 미지지 |
| H373 | 필터, 비용 2틱 | +0.16틱/일 | 0.24 | 0.47 | 미지지 |
사전등록 때 H372 통과 가능성을 30% 정도로 보았고, 그 이유로 «신호가 하루짜리라 부분 조정이 낡은 목표 포지션을 끌고 다닐 수 있다» 고 적었다. 결과는 그 걱정대로였다.
용어와 기호
- 3선
- 한국거래소 3년 국채선물. 가격으로 거래하며 금리가 오르면 가격이 내린다. 근월물을 이어 붙인 연결 시세를 쓴다
- 틱
- 가격 최소 단위 0.01. 1계약 1틱은 1만원
- 세션 s, e
- s 는 신호를 내는 거래일, e 는 그다음 거래일
- rs(3선 고유 몫)
- 세션 s 의 시가 → 15:30 3선 변화(틱)를 같은 구간 코스피200 선물 % 변화와 달러선물 % 변화에 직전 250 세션 회귀(s 미포함, 최소 200 관측)해 남은 잔차
- zs
- rs ÷ 직전 유효 r 최대 250개의 표준편차(최소 20개). 신호가 없는 날은 0
- c2cs
- 세션 s 종가 → 세션 e 종가의 연결 수준 변화(틱). 롤을 끼어도 같은 월물 기준으로 이어 붙였다
- h, δ
- 알파 반감기(일)와 하루 감쇠율 δ = 0.51/h
- fs
- 누적 예측 fs = zs + δ·fs−1
- aims(목표 포지션)
- clip(−fs·√(1−δ²) ÷ 1.28, −1, 1). √(1−δ²) 는 f 를 단위 분산으로 맞추고, 1.28 은 |표준정규| 의 80% 분위수다. 부호 −는 되돌림 방향
- λ(조정 속도)
- xs = xs−1 + λ(aims − xs−1). λ = 1 이면 aim 을 바로 따른다
- w, x
- 포지션. 1 이 50계약(매수 +). 손익은 «w = 1 기준 틱» 이고 × 50 이 계약 합계 틱이다
- 문턱 규칙
- |rs| 이 직전 유효 |r| 최대 250개의 80% 분위수 이상이면 w = −sign(rs), 아니면 0
- c, net1, net2
- c 는 왕복 비용(틱), 편도 c/2. net1 은 c = 1(판정), net2 는 c = 2(보고)
- 회전
- 평균 |Δw|, 하루에 바꾼 포지션 크기
- 월 블록 부트스트랩
- 일별 손익을 달 단위로 묶어 복원 추출해 평균을 5,000번 다시 계산(seed 66). 한쪽 p 는 «진짜 평균이 0 인데 이만큼 나올 확률»
- 선택 절차 귀무
- r 의 날짜 순서를 무작위로 섞고 z, 문턱, h 추정, λ 선택까지 처음부터 다시 돌려 얻은 차이의 분포(1,000회)
- Holm 보정
- 가설 여러 개를 함께 시험할 때 p 를 가설 수에 맞춰 키우는 방법. H372, H373 두 개에 건다
- 샤프
- 일평균 ÷ 일 표준편차 × √250
자료
데이터셋
| 자료 | 기간 | 해상도 | 쓰임 |
|---|---|---|---|
| 3선 연결 1분봉 | 2012 ~ 2026-10-28 | 1분(라벨 = 봉 끝) | 시가, 15:30 가격 |
| 코스피200 선물 1분 | 2022-01-03 ~ 2026-10-28 | 1분 | 같은 구간 % 변화 |
| 달러선물 1분(현재가) | 2019 ~ 2026-10-28 | 1분 | 같은 구간 % 변화 |
| 3선 일봉 연결 수준 | ~ 2026-10-27 | 일 | c2c, 롤 표시 |
| 10선 일봉 | 같은 기간 | 일 | 탐색 H376 의 3선 − 10선 복제 오차 |
코스피200 1분이 2022 ~ 2024-01 에 149 세션 비어 있어, 잔차 회귀에 필요한 200 관측이 2024-01-22 에야 찬다. 3선 1분봉은 2026-07 ~ 08 에 41 세션 비어 그날은 신호가 0 이다. 만기일(거래소 달력: 3, 6, 9, 12월 셋째 화요일, 휴장이면 직전 거래일)과 그 전날은 연결 1분봉이 두 월물을 섞을 수 있어 신호를 0 으로 두었다. 결과적으로 신호가 있는 날은 604 세션이다. 국채선물 개장은 2025-12 부터 08:45, 그 전 09:00 이다.
표본 분할
방법
세 포지션을 같은 날, 같은 비용으로 비교한다. 모두 세션 s 종가 단일가에 맞추고(r 은 15:30 에 알려진다), 손익은 행 s 에서 ws·c2cs − (c/2)·|ws − ws−1| 이다. 다음 세션이 만기일이면 들고 있는 포지션을 옮기는 왕복 비용 c·|ws| 를 더 낸다.
- 문턱 규칙: 상위 20% 날만 −sign(r) 크기 1. 문턱은 직전 자료만으로 정한다(미래 정보 없음). 이어진 같은 방향 날은 포지션을 유지하므로 왕복 비용을 다시 내지 않는다(문턱 규칙에 유리한 쪽).
- 필터: aim 을 λ 속도로 따라간다.
- aim 바로 추종: λ = 1.
발견 구간에서 h 는 zs 와 s+k−1 일 c2c 의 기울기 βk(k = 1..5)에 지수 감쇠를 맞춰 {1, 2, 3, 4, 5} 중 하나로 고르고, λ 는 {0.25, 0.5, 0.75} 중 발견 구간 net1 이 가장 큰 것을 고른다. 행 하나의 손익은 다음 세션 종가에 실현되므로, 두 선택 모두 다음 세션이 2024-06-30 이내인 행(106개)만 쓴다. 선택이 만든 우연을 따지려고 r 의 순서를 섞은 귀무에서 이 선택 절차 전체를 1,000번 다시 돌렸다.
모델
모델은 두 층이다. 첫 층은 예측이다. 오늘 고유 몫 z 가 내일 c2c 를 β1 만큼 움직이고, 그 영향이 하루마다 δ 배로 줄어든다고 보고 누적 예측 f 를 만든다. 둘째 층은 거래 필터다. 목표 포지션 aim 을 향해 매일 거리의 λ 만큼만 다가간다. 학습하는 값은 h 와 λ 둘뿐이고 둘 다 발견 구간에서 한 번 정했다.
| 항목 | 값 |
|---|---|
| 잔차 회귀 | OLS, 상수 + 코스피200 %, 달러선물 %, 직전 250 세션, 최소 200 |
| z 표준화 | 직전 유효 r 최대 250개 표준편차, 최소 20 |
| h 후보, 고른 값 | {1, 2, 3, 4, 5}, h* = 1(δ = 0.5) |
| λ 후보, 고른 값 | {0.25, 0.5, 0.75}, λ* = 0.75 |
| 발견 net1(λ 0.25, 0.5, 0.75) | +0.17, +0.34, +0.55틱/일 |
| 크기 | |w| ≤ 1(50계약), aim 포화 1.28σ |
알파 감쇠와 반감기 선택
학습된 필터
daily.csv 의 z 로 x 와 aim 을 다시 계산해 일치를 확인했다). 파랑이 고른 필터다. 신호 당일 −0.51 로 들어가 다음 날 −0.38, 이틀 뒤 −0.22 로 남는다. aim 바로 추종(초록 점선)은 당일 −0.68 에서 더 빨리 빠진다. λ 0.25(회색)나 반감기 4일(주황)은 신호가 없는 날까지 노출을 길게 끈다.결과
확증 결과
| 항목 | 필터(h 1, λ 0.75) | 문턱 규칙 | aim 바로 추종 |
|---|---|---|---|
| 비용 전 | +0.50 | +0.56 | +0.67 |
| 비용 1틱 뒤 | +0.33(0.07) | +0.35(0.04) | +0.44 |
| 비용 2틱 뒤 | +0.16(0.24) | +0.15(0.23) | +0.20 |
| 연간 샤프(1틱) | 0.71 | 0.87 | 0.81 |
| 회전(평균 |Δw|) | 0.33 | 0.41 | 0.46 |
| 평균 노출 |w| | 0.43 | 0.24 | 0.49 |
| 포지션을 바꾼 날(연) | 223 | 94 | 211 |
| 연도별 합(1틱) 2024 하반기, 2025, 2026 | +35, +110, +41 | +60, +37, +101 | +40, +139, +66 |
H372 의 차이(필터 − 문턱, 비용 1틱)는 −0.02틱/일, 90% 구간 [−0.41, +0.36], 한쪽 p 0.54 이다. H373 의 필터 net2 는 +0.16틱/일, 90% 구간 [−0.20, +0.51], 한쪽 p 0.24 이다. 필터는 회전을 19% 줄였지만 비용 전 이익이 10% 줄었다. 노출은 문턱 규칙의 1.8배인데 이익은 더 적다.
비용 민감도
선택 절차 귀무
포지션이 실제로 어떻게 움직였나
탐색 결과
아래는 판정에 쓰지 않는다.
| 번호 | 내용 | 결과 |
|---|---|---|
| H374 | 필터 − aim 바로 추종, 비용 1틱 | −0.11(90% 구간 [−0.19, −0.02]). 부분 조정이 오히려 손해 |
| H375 | 격자 20칸 | net1 이 양인 칸 75%, λ 클수록 높음 |
| H376 | 3선 − 10선 5일 복제 오차 신호를 같은 필터에 합침 | 그 신호 단독 −0.02. 합친 aim +0.18(샤프 0.48), 따로 운용 반반 +0.16(샤프 0.41). 합치면 매매 상계로 +0.03 낫지만 고유 몫 단독(샤프 0.71)보다 낮음 |
| H377 | 충격 구간(2024-12 계엄, 2025-04 관세) 제외 | 필터 +0.31, 문턱 +0.31, 차이 −0.00(p 0.50) |
| H377 | 휴장 앞 청산(다음 세션까지 달력 4일 이상이면 비움) | 필터 net1 +0.19, net2 +0.01 |
| 비교 | 전체 표본 분위수 문턱(미래 정보) | +0.37(p 0.03). 직전 자료 문턱(+0.35)과 비슷 |
해석
원 논문의 결론과 맞는 결과다. 비용이 있을 때 신호의 가치는 마찰로 가중한 예측이 정하고, 빨리 사라지는 신호일수록 부분 조정이 깎아 먹는 몫이 크다. 3선 고유 몫은 하루짜리 신호다. 어제의 목표 포지션을 끌고 다니면 알파가 없는 날에 노출을 지는 셈이고, 그 노출은 이익 없이 변동만 더한다(샤프 0.87 → 0.71).
왕복 1틱(편도 0.5틱 단일가) 가정에서는 문턱 규칙의 회전이 이미 낮아 아낄 비용이 많지 않다. 하루짜리 신호에서 회전을 줄이는 방법은 비용 뒤 이익을 늘리지 못한다. 이 신호에 실행 개선의 여지가 남아 있다면 15:30 신호와 종가 진입 사이의 지연 쪽이다.
한계
- 첫 런 뒤 독립 감사가 두 결함을 짚어 고쳤다. h 추정과 λ 선택이 발견 구간 마지막 며칠 신호의 7월 초(확인 구간) 손익을 썼고, 롤일을 일봉 가격 차이로 사후 판별했다(15개 중 2026-09-23 하나가 일봉 누락으로 생긴 거짓 표시). 선택에는 다음 세션이 발견 구간 안인 행만 쓰고 롤일은 거래소 달력으로 정했다. 고친 뒤에도 h = 1, λ = 0.75 로 선택과 판정이 같다.
- 신호가 2024-01-22 부터만 있어 발견 구간이 107 세션이다. h 와 λ 선택이 거칠다. 다만 확인 구간 격자 전체가 같은 방향이라 선택이 결론을 바꾸지 않는다.
- 2026-07 ~ 08 의 41 세션은 3선 1분봉이 비어 신호가 0 이다. 필터는 이전 포지션을 이어 가고 문턱 규칙은 비운다. 일봉 표에 2026-09-14 와 2026-09-22 행이 없어 그 앞 행에 이틀 손익이 들어갔다. 세 포지션이 같은 자료를 쓴다.
- 2025-11 이전에는 3선 시가(09:00)와 코스피200 시가(08:45 첫 봉이 섞임)의 시각이 어긋날 수 있다. 앞선 정의를 그대로 썼다.
- 비용은 종가 단일가 왕복 1틱과 롤 왕복 1회다. 50계약은 단일가 물량 안이지만 실제 충격은 더 클 수 있다. 필터 포지션은 계약 단위로 반올림하지 않았다.
- 결과를 본 뒤 탐색 H376 의 «따로 운용» 계산을 고쳤다(처음 코드는 두 포지션을 합친 뒤 비용을 매겨 합친 것과 같아졌다). 확증 수치는 바뀌지 않았다.
- 문턱 규칙 자체의 p 0.04 는 이 실험의 사전 가설이 아니고, 확인 구간이 2.3년이며 이익이 2026 년에 몰렸다.
산출물
- 계획
protocol.md(사전등록 d8d280e, 수정 09080ee 는 첫 런 뒤 감사가 찾은 결함) - 분석, 판정
analysis.md - 코드
code/s1.py(확증 런, 귀무, 탐색),code/render_figures.py(그림, 재현 검사 포함) - 정본 런
results/20261102T220029_main/(metrics.json, daily.csv, grid.csv, null.csv) - 무효 런
results/_void_20261102T214001_main/(발견 경계 누설과 사후 롤 판별, 비교용으로만 남김)
Appendix
A. 데이터셋 실물
정본 런 daily.csv 의 실제 행(소수 셋째 자리 반올림). 한 행이 세션 하나이고, net1 은 그 행 포지션을 다음 종가까지 든 손익이다.
| date | r | z | aim | x_filter | w_thresh | c2c | net1 필터 | net1 문턱 |
|---|---|---|---|---|---|---|---|---|
| 2025-10-13 | +3.442 | +0.489 | −0.307 | −0.177 | 0 | +8 | −1.608 | 0 |
| 2025-10-14 | +7.072 | +1.004 | −0.832 | −0.668 | 0 | +1 | −0.914 | 0 |
| 2025-10-15 | +6.087 | +0.862 | −0.999 | −0.916 | 0 | −17 | +15.450 | 0 |
| 2025-10-16 | −15.311 | −2.167 | +0.965 | +0.495 | +1 | +11 | +4.738 | +10.5 |
| 2025-10-17 | +2.765 | +0.389 | +0.220 | +0.289 | 0 | −9 | −2.701 | −0.5 |
| 2025-10-20 | +0.175 | +0.025 | +0.093 | +0.142 | 0 | −10 | −1.495 | 0 |
10-14 와 10-15 는 z 가 +1 안팎이라 문턱 규칙은 쉬었지만(직전 분위수 문턱이 더 높았다) 필터는 매도 노출을 쌓아 10-15 에 +15.45 를 벌었다. 10-17 과 10-20 에는 신호가 작은데 남은 매수 노출 때문에 −2.70, −1.50 을 잃었다.
B. 모델 입출력 실물
2025-10-16 하루에 필터가 받은 입력과 낸 출력이다.
- Request meta
- 2025-10-16 15:30 신호, 종가 단일가 체결, h* = 1(δ 0.5), λ* = 0.75, 비용 1틱
- Input
- r = −15.311틱(3선이 코스피200 과 달러선물로 설명되는 것보다 15틱 더 올랐다), 직전 표준편차로 z = −2.167. 전날 누적 예측 f = +1.478, 전날 포지션 x = −0.916
- Model response
- f = −2.167 + 0.5 × 1.478 = −1.428. aim = 1.428 × √0.75 ÷ 1.28 = +0.965. x = −0.916 + 0.75 × (0.965 + 0.916) = +0.495(약 25계약 매수 보유). 거래량 1.411(약 71계약), 비용 0.5 × 1.411 = 0.705
- Ground truth check
- 다음 날 종가까지 c2c = +11틱. 필터 net1 = 0.495 × 11 − 0.705 = +4.74. 같은 날 문턱 규칙은 0 → +1(50계약 매수)이라 비용 0.5, net1 +10.5 였다. 필터는 전날 매도 노출을 뒤집느라 더 많이 거래하고 덜 실었다
C. 실험 설정
- 표본신호 2024-01-22 ~, 발견 ~ 2024-06-30(107, 선택에 쓰는 행 106), 확인 2024-07-01 ~ 2026-10-26(561)
- 제외달력 만기일과 그 전날, 1분봉이 빈 날은 z = 0(포지션 손익은 계속)
- 목표 포지션f = z + δf, aim = clip(−f√(1−δ²)/1.2816, −1, 1)
- 필터x = x + λ(aim − x), x0 = 0
- 선택h: 발견 β1..5 지수 감쇠 최소제곱, β1 ≥ 0 이면 1. λ: 발견 net1 최대, 같으면 작은 값. 둘 다 다음 세션이 발견 구간 안인 행만
- 문턱 규칙직전 유효 |r| 250개 80% 분위수(최소 20), 크기 1, 다음 종가 청산
- 비용왕복 c(편도 c/2) × |Δw|, 만기 앞 c × |w|, 판정 1틱, 보고 2틱, 민감도 0, 1.5, 3, 4
- 검정월 블록 부트스트랩 5,000회 seed 66 한쪽 p, 선택 절차 귀무 1,000회 seed 166, H372 는 둘 중 큰 p, Holm 2개
- 충격 구간2024-12-03 ~ 12-31, 2025-04-02 ~ 04-30
- 판정 문턱Holm p < 0.05 둘 다 채택, 하나 보류, 없음 폐기. 이익이 한 해에 70% 넘게 몰리면 채택 대신 보류