CHAPTER 06 / SECTION 06
6.6 신호와 상태를 결합하고 탐색 통제하기
변동성별 정보계수와 사건 연구를 읽고 중복 특성과 탐색 횟수를 관리합니다.
같은 모멘텀 신호로 다른 주문 만들기
연구자가 최근 수익률이 6%인 종목을 발견했다. 평소에는 이 값으로 매수 후보를 고르지만 시장이 크게 흔들릴 때 같은 주문을 낼지는 따로 판단한다. Interaction(상호작용)은 모멘텀 신호의 사용법을 변동성 같은 상태에 따라 바꾼다. 예를 들어 6% 모멘텀이 유지된 채 변동성이 3%에서 6%로 올랐다고 하자.
| 방식 | 계산 또는 거래 규칙 | 결과에 생기는 차이 |
|---|---|---|
| Gating(거래 허용 조건) | 변동성이 과거 67번째 백분위 이하일 때만 거래한다. | 문턱을 넘으면 포지션을 닫는다. 거래일, 회전율, 수용력이 바뀐다. |
| Scaling(강도 조절) | 모멘텀을 같은 기간 변동성으로 나눈다. 6% ÷ 3%는 2, 6% ÷ 6%는 1이다. | 점수에 비례해 금액을 정한다면 같은 방향으로 절반을 투자한다. |
| Conditional Variant(조건별 변형) | 낮은 변동성의 모멘텀과 높은 변동성의 모멘텀을 별도 후보로 저장한다. | 두 환경의 효과와 실패 조건을 분리해 검증한다. |
캐리를 내재 변동성으로 나누면 위험 대비 캐리, 모멘텀을 호가 스프레드율로 나누면 비용 대비 모멘텀을 볼 수 있다. 두 값의 기준 기간과 단위를 먼저 맞춘다. 변동성이 0에 가까우면 점수가 폭증하므로 과거 자료로 정한 양의 하한을 적용한다. 분모가 결측이거나 유효하지 않을 때는 결측 처리나 거래 제외를 명시한다. 유동성이 주문 비용을 바꾸거나 변동성이 추세 지속을 바꾸는 등 동인이 있는 조합부터 시험한다. 상태를 바꿔도 IC가 일정하다면 단순 크기 조절과 실제 예측 관계 변화를 구분한다.
상태별 예측력이 실제로 다른지 확인하기
상장지수펀드를 비교한 분석에서는 매일 126일 모멘텀으로 펀드 순위를 매겼다. 같은 날 SPY의 42일 실현 변동성을 구해, 당일까지 이용 가능한 자료로 정한 33번째와 67번째 백분위를 기준으로 날짜를 셋으로 나눴다. 각 날짜의 모멘텀 순위를 이후 20일 수익률 순위와 대조해 IC를 구한 뒤 상태별로 모았다. 전체 기간의 백분위를 먼저 계산했다면 초반의 날짜를 분류할 때 이후 위기를 미리 이용하게 된다.
| 상태 | IC | 보정 t값 | p값 |
|---|---|---|---|
| 낮음 | +0.071 | 2.8 | 0.006 |
| 중간 | +0.025 | 1.3 | 0.21 |
| 높음 | −0.034 | −1.1 | 0.26 |
낮은 상태에서 높은 상태까지 IC가 만큼 내려갔다. IC를 100배 표시하면 10.5%p 차이다. 이 패턴은 가장 높은 변동성 구간을 제외하는 후보의 근거가 된다. 높은 구간의 음수 값 자체로 반대 방향에 투자할 근거는 약하다. 표의 p값은 각 상태의 IC가 0인지 보는 값이므로 낮음과 높음 사이의 차이를 직접 검정한 값과 구분한다. 20일 수익률 창이 매일 겹치므로 Heteroskedasticity and Autocorrelation Consistent(이분산·자기상관 일관, HAC) 오차를 사용해 가까운 날짜가 함께 움직이는 영향을 고려한다.
한 번의 전체 기간 표에 더해 각 전진 검증 구간의 IC를 구해 중앙값과 최악 구간을 본다. 상태가 높아질수록 예측력이 약해지는 모양이 반복되는지, 부호가 구간마다 뒤집히는지, 상태 관측을 한 구간 늦춰도 결과가 남는지 확인한다. 문턱 근처의 작은 측정 오차가 전량 진입과 청산을 반복시키는지도 거래 기록에서 확인한다.
신호가 나온 뒤 가격이 계속 움직이는지 보기
어떤 펀드가 오늘 모멘텀 상위 10%에 새로 들어왔다. 신호를 정의한 날의 상승과 거래 뒤에 남은 상승을 구분하기 위해 Event Study(사건 연구)를 한다. 먼저 해당 날짜를 사건일로 정하고, 사건 창 이전 자료로 정상 수익률의 기준을 추정한다. 예를 들어 시장 수익률과 펀드 수익률 사이의 과거 관계를 구한 뒤, 사건 창의 실제 시장 수익률을 넣어 기준 수익률을 계산한다. 이 비교는 사건 이후 성과 평가에 쓰인다.
- 사건 창 이전
시장 움직임에 대한 펀드의 민감도를 과거 자료로 추정한다. - −3~0일
사건 전후의 초기 움직임을 기록한다. 0일에 확인 가능한 값으로 진입 신호를 정의한다. - +1~+10일
실제 수익률에서 기준 수익률을 빼고 합해 신호 뒤에 남은 움직임을 본다.
사건 창은 성과를 비교하는 시간축이다. 거래 가능 성과는 신호 이후 체결 시점에 맞춰 별도로 계산한다.
Abnormal Return(비정상 수익률, AR)은 실제 수익률에서 기준 수익률을 뺀 값이다.
- Abnormal return(비정상 수익률), %p
- Asset and event-time indices(자산과 사건 기준 시간), 종목 번호와 거래일
- Observed return(실제 수익률), %
- Estimated normal return(추정 정상 수익률), %
- Benchmark inputs(기준 모형 입력), 예에서는 시장 수익률 %
Cumulative Abnormal Return(누적 비정상 수익률, CAR)은 사건 창의 차이를 합한 값이다.
- Cumulative abnormal return(자산별 누적 비정상 수익률), %p
- Asset index(자산 번호), 종목 번호
- Event time and window boundaries(사건 기준 시간과 창의 시작·끝), 거래일
- Abnormal return(해당 자산·날짜의 비정상 수익률), %p
신호 뒤 이틀의 실제 수익률이 1.2%, 0.3%이고 기준은 0.7%, 0.4%라고 하자. 날짜별 차이는 +0.5%p, −0.1%p다. CAR는 +0.4%p다. 여러 사건을 같은 상대 날짜에 맞춰 날짜별 AR를 평균하면 Average Abnormal Return(평균 비정상 수익률, AAR), CAR를 평균하면 Cumulative Average Abnormal Return(누적 평균 비정상 수익률, CAAR)이 된다.
ETF 돌파 사례에서 −3~+10일 평균 CAR는 1.11%였고 t값은 3.28이었다. 누적 경로는 사건 뒤에도 쌓였다. 매수 신호의 별도 CAAR는 +0.87%, t값 3.30이었다. 매도 신호 쪽은 −0.25%, t값 −1.31로 근거가 약했다. 두 방향의 신호를 합쳐 판단하면 이런 비대칭이 가려진다. 기준 지수나 요인을 합리적으로 바꿔도 모양이 유지되는지 본다. 같은 시장을 공유하거나 기간이 겹치는 사건은 결과가 함께 움직이므로 HAC나 Clustered Standard Errors(군집 표준오차)를 사용한다. 매매 비용, 공매도 가능 여부, 실제 체결은 이후 거래 평가에서 확인한다.
비슷한 후보를 정리하고 탐색 횟수 남기기
신호 5개에 상태 3개와 결합 규칙 3개를 전부 붙이면 개다. 검증 결과가 약했던 조합도 시험 기록에 포함한다. 추세 신호와 변동성 상태에 각각 후보 예산을 두고, 처음에는 같은 가설 안에서 관측 기간처럼 한 가지 선택만 바꾼다. 여러 검정을 동시에 했다면 Benjamini–Hochberg Procedure(벤자미니–호크버그 절차, BH)로 False Discovery Rate(거짓 발견률, FDR)을 관리하고 선택한 후보는 별도로 남겨 둔 기간에서 확인한다.
같은 추세를 조금씩 다른 창으로 만든 값은 비슷하게 움직일 수 있다. Deduplication(중복 제거)에서는 각 학습 구간에서 후보 쌍의 순위 상관 를 계산한다. 거리 를 쓰면 상관이 +0.95인 쌍과 −0.95인 쌍 모두 거리가 0.05다. 반대 부호라도 같은 정보를 담을 수 있기 때문이다. Hierarchical Clustering(계층적 군집화)으로 가까운 후보를 모으고 어느 거리에서 묶음을 자를지 기록한다. 절대 상관 0.6~0.8은 점검할 출발점이다. 묶음마다 과거 검증 구간의 IC 중앙값과 분산, 자료 수신 지연, 구현 부담을 비교한다. 한 번 큰 수치가 나온 후보보다 여러 구간에서 안정적인 후보를 남긴다.
ETF 사례에서는 57개에서 상관 0.9 기준으로 14개를 덜어 냈고, IC 단계에서 18개를 남긴 뒤 최종 10개를 선택했다. 전체 감소율은 다. 52주 저점과의 거리의 단일 IC가 0.076으로 가장 컸다. 별도 다중 검정 진단에서는 보정 전 5% 기준을 통과한 34개 중 네 개가 BH 보정 뒤 탈락했다. 상관 제거 뒤에도 모델 입력을 평가해야 한다. 트리 분기가 불순도를 얼마나 낮췄는지 합하는 Mean Decrease in Impurity(평균 불순도 감소, MDI)와 한 입력을 섞은 뒤 성능이 얼마나 떨어지는지 보는 Permutation Importance(순열 중요도)의 순위 일치율은 49%였다. 비슷한 다른 열이 남아 있으면 한 열을 섞어도 정보가 일부 보존될 수 있다.
전처리 기준을 바꾸면 검증할 주장도 바뀐다
- Residualization(잔차화). 시장과 함께 오른 5% 전체를 쓸 때와 공통 상승을 제외한 1%를 쓸 때는 다른 움직임이 이어진다고 가정한다. 시장 민감도는 학습 구간에서 적합한다.
- Winsorization(극단값 절단). 1·99번째 백분위에서 자를 때보다 5·95번째에서 자를 때 더 많은 큰 수익률을 같은 값으로 묶는다. 큰 움직임 자체가 신호라면 결과도 바뀐다. 문턱은 과거 학습 자료로 정해 대응하는 검증 구간에 그대로 쓴다.
- Stationarity–Memory Trade-off(정상성과 기억의 절충). 가격 수준은 오랜 추세 때문에 과거와 현재의 분포가 다를 수 있다. First Differencing(1차 차분)은 오늘 가격에서 어제 가격을 빼 수준 변화를 줄이지만 오래된 움직임의 정보도 약해진다. Fractional Differencing(분수 차분)은 0과 1 사이 차분 차수로 더 먼 과거의 가중치를 일부 남긴다. 차수에 따라 남는 기억과 분포 안정성이 달라지므로 학습 자료에서 고른 차수와 창을 기록한다.
잔차화 계수, 절단 문턱, 변동성 상태 경계와 학습 표현은 원자료가 같아도 적용한 파라미터에 따라 결과가 달라진다. 전진 검증에서 파라미터를 적합한 구간과 검증한 구간을 분리하고, 최종 후보의 기록에 적합 값과 버전을 붙인다.