CHAPTER 04 / SECTION 03
4.3 비교할 거래 조건 고정하기
거래 대상, 주문 시점, 포지션 규칙과 비용을 고정하고 변경의 범위를 기록합니다.
과거에 실제로 살 수 있었던 ETF부터 고른다
지우는 지금 거래되는 ETF 목록을 10년 전에도 그대로 쓸 수 없다. 그때 아직 상장되지 않았거나, 당시에는 거래됐지만 지금은 사라진 종목이 있기 때문이다. Investable Universe(투자 가능 대상군)는 각 결정일에 거래할 수 있는 상품의 집합이다. 거래소와 상품 유형, 최소 거래대금, 신규 상장과 상장폐지 처리, 오래되거나 빠진 가격을 거르는 규칙을 정한다.
ETF 예에서는 여러 자산에 투자하는 약 100개 ETF를 후보로 두고, 직전 1년 Average Daily Dollar Volume(평균 일 거래대금, ADV)이 1,000만 달러 이상인 ETF만 매수 대상으로 본다. 초기 표본에서도 연도별 약 70~95개가 남도록 정한 문턱이다. 각 날짜의 거래대금 조건을 당시 자료로 적용했더라도, 출발 목록 자체가 오늘까지 살아남은 ETF 위주라면 Survivorship Bias(생존 편향)는 남는다. 과거 구성 이력이 없다면 이 한계를 명시한다.
가격을 보는 시각과 주문 시각을 분리한다
- 월말 장중
당일 종가가 아직 정해지지 않았다. - 월말 장 마감 뒤
종가와 거래대금이 도착하면 대상과 순위를 확정한다. - 다음 거래일 시가
시가 체결을 가정하고 그 가격부터 보유 수익률을 계산한다.
월말 종가로 순위를 매긴 경우 그 종가를 매수가로 사용하지 않는다.
월말 결정은 비슷한 모멘텀 연구와 비교하기 쉽다. 주간 거래는 별도 주기의 변형으로 비교한다. 장중 호가 전략이라면 15분 봉의 시작·끝과 주문 지연을 명시한다. 한 봉 뒤로 주문을 밀 때 결과가 바뀔 수 있다. 통화나 여러 거래소를 합칠 때는 기준 시간대와 휴장일도 맞춘다.
가격 움직임과 왕복 비용을 같은 단위로 비교한다
사고팔 때마다 15 Basis Points(베이시스포인트, bp)가 든다고 가정한다. 1bp는 0.01%포인트다. 매수와 매도를 합친 비용은 30bp다. 15분, 하루, 한 달 가격의 절대 움직임을 각각 모아 30bp를 넘긴 비율을 구하면, 모델을 만들기 전에도 가격 변동이 비용보다 큰 기회가 얼마나 자주 있었는지 볼 수 있다.
이렇게 비용이 분명히 앞서는 구간, 신호 강도와 매매량에 따라 결론이 달라지는 구간, 비용이 첫 제약이 아닌 구간을 나눈다. 나스닥100 15분 사례와 ETF 일별·월별 사례가 각각 그 차이를 보여 준다. ETF 분석에서는 편도 5~15bp를 기준으로 삼았으며 월간 움직임의 90% 이상이 왕복 30bp를 넘었다. 그 비율은 방향을 맞힐 확률이 아니다. 실제 주기는 신호가 충분히 강한지, 매달 실제로 몇 종목을 교체하는지까지 보고 정한다.
점수를 주문으로 바꾸는 다섯 가지 선택
- 보유 상태. 매수만 할지, 공매도도 할지, 두 계약을 한 쌍으로 보유할지 정한다. ETF 예에서는 공매도 비용을 피하려고 매수만 한다.
- 진입. 순위 상위 10개를 살지, 점수가 일정 값보다 클 때만 살지 정한다. 순위 방식은 전체 점수가 낮은 달에도 상대적으로 높은 대상을 선택한다.
- 청산. 다음 조정일에 대상에서 빠질 때 팔거나, 신호 악화·손실 한도에 따라 중간에 판다. 규칙이 달라지면 보유 기간도 달라진다.
- 크기. 10개를 동일 비중으로 사면 각 10%다. 이렇게 하면 비중을 정교하게 조절한 효과와 순위의 효과를 구분하기 쉽다. 가격이 크게 흔들리는 상품을 적게 사는 규칙은 노출을 따로 바꾼다.
- 주문 시각. 다음 시가, 장중 일정 시간대, 관측 뒤 고정 지연 중 하나를 적용한다.
ETF 기준 실행은 전액을 매수 포지션으로 보유하고 빌린 돈을 쓰지 않는다. 다른 전략은 개별 종목 집중도나 주문이 하루 거래량에서 차지하는 비율에 한도를 둘 수 있다. 거래를 줄이거나 중단하는 Kill Switch(거래 중단 장치)는 실제 주문을 바꾸므로 작동 조건을 기록하고 버전으로 관리한다.
어떤 비용이 언제 발생하는지 기록한다
ETF 예는 주당 0.0035달러 수수료를 가정한다. 또한 매수할 때 중간 가격보다 반 호가 차이만큼 높게 체결한다고 보고, 매우 유동적인 ETF는 주당 0.005달러, 업종 ETF는 0.01달러, 기타는 기본 0.02달러로 둔다. 업종 ETF를 100주 사면 수수료 0.35달러에 호가 비용 1달러가 더해져 편도 1.35달러다. 이는 선택한 요금과 체결 가정이다. 규모가 커질수록 발생하는 추가 가격 충격은 별도 자료로 검증해야 한다.
무기한 선물에서는 Funding Payment(펀딩 지급액)가 수익의 일부다. 정산 시각에 보유한 쪽이 거래소의 규칙과 부호에 따라 내거나 받는다. 정산 직전 청산과 직후 청산의 가격이 같아도 지급액은 다를 수 있다. 대상 거래소, 계약, 보유량이 확정되는 시각, 계산 가격, 상한·하한과 수수료를 기록한다. 규칙이 바뀌면 적용 날짜와 버전을 남긴다. 다른 상품의 경우 대차·이자·계약 교체 비용이 중요할 수 있다.
숫자 조정과 거래 방식 변경을 구분한다
| 같은 설정 안에서 비교 | 새 설정 버전과 새 기준 실행이 필요 |
|---|---|
| 진입 문턱을 1.8에서 2.0으로 조정 | 순위 진입에서 점수 문턱 진입으로 전환 |
| 상위 10%에서 상위 20%로 조정 | 매수만 하다가 공매도도 허용 |
| 표준화 기간 20일을 60일로 조정 | 중도 청산 규칙이 없던 전략에 손절 추가 |
| 특성의 과거 관측창을 변경 | 재조정 주기 또는 주문 지연을 변경 |
| 같은 비용 모형에서 편도 10bp를 15bp로 조정 | 펀딩이나 계약 교체 비용을 새로 포함 |
종목 편입 규칙이나 실제로 걸리는 위험 한도가 바뀌어도 새 버전이다. 지우는 이 내용을 사람이 읽고 코드도 불러올 수 있는 setup.yaml 같은 설정 파일에 둔다. 월말 방식과 주간 방식은 서로 참고할 수 있지만, 월말 모형만 개선한 결과로 묶어 순위를 매기면 어떤 차이를 측정했는지 흐려진다.