숫자부터 꺼내겠습니다. 그게 논지의 전부이기 때문입니다. 주요 무기한 선물 거래소에서 taker로 왕복 거래를 하면 수수료만 명목가의 약 0.10%가 나갑니다. 롱이 몰린 구간에서는 펀딩이 연 10-30%씩 여러분에게 불리하게 붙습니다. 호가창 상단 깊이 대비 큰 시장가 주문은 스프레드 위에 제곱근 법칙 임팩트까지 얹어서 냅니다. 그리고 어제 데이터의 오늘자 수정본을 읽는 백테스트는 애초에 존재한 적 없는, 연 수 퍼센트짜리 엣지를 얻습니다.
놀라운 숫자는 첫 번째입니다. 크기가 커서가 아니라, 거래 빈도에 미치는 영향 때문입니다. 다들 "수수료를 반영하라"는 말에 고개를 끄덕이고는, 하루에 마흔 번 거래하는 전략을 테스트합니다. 왕복 0.10%면 마흔 번은 하루에 명목가의 4%가 비용으로 나갑니다. 중형 무기한 선물에서 그 문턱을 넘는 시그널은 없습니다. 그 전략은 애초에 생존 가능성이 없었는데, 수수료 없는 백테스트는 훌륭하다고 말해준 겁니다.
수수료는 깎아내리는 게 아니라 걸러내는 장치다
대부분이 갖고 있는 심상은 수수료가 곡선을 살짝 깎는다는 것입니다. 모양은 같고 조금 낮아진다는 식이죠. 틀렸습니다. 수수료는 빈도 필터입니다. 같은 엣지라도 고빈도 변형은 통째로 지워버리고, 저빈도 변형은 거의 건드리지 않습니다. 우리 파이프라인이 거래소별 실제 maker/taker 요율을 적용하기 시작했을 때 죽어나간 전략들은 나쁜 아이디어가 아니었습니다. 너무 자주 거래하는 좋은 아이디어였죠. 해법은 대개 더 나은 시그널이 아니라 더 긴 타임프레임이었습니다. 지금 우리는 평균 거래 수익률이 명목가의 0.15% 미만인 전략은 폐기합니다. 양방향 비용을 치르고 나면 복리로 쌓일 게 아무것도 남지 않기 때문입니다.
펀딩은 기억을 가진 포지션 세금이다
무기한 선물은 1시간 또는 8시간마다 펀딩을 주고받는데, 이건 노이즈가 아닙니다. 모멘텀 시스템이 정확히 원하는 그 거래들과 구조적으로 상관되어 있습니다. 모두가 롱일 때 펀딩은 양수가 되고, 여러분의 롱 모멘텀 포지션이 그걸 지불합니다. 펀딩 누적을 반영하지 않은 백테스트는 무기한 선물에서의 추세추종을 체계적으로 부풀립니다. 우리는 이걸 창피한 방식으로 배웠습니다. 펀딩 캐리 전략 계열 전체가 자동 폐기됐는데, 알고 보니 엔진이 그 전략들이 수확하도록 설계된 펀딩을 정산에 반영하지 않고 있었습니다. 시그널은 멀쩡했습니다. 회계가 빠져 있었죠.
임팩트는 사이즈의 제곱근으로 커진다
바 기반 백테스트의 점잖은 허구는 종가에 체결된다는 가정입니다. 소액 주문이라면 대략 맞습니다. 하지만 의미 있는 규모라면, 통용되는 모델은 임팩트가 거래량 대비 주문 크기의 제곱근에 비례해 커지고 다시는 되돌아오지 않는다는 것입니다. 우리는 제곱근 법칙 임팩트 추정치를 모든 체결과 자산 곡선 자체에 반영합니다. 이게 가장 크게 작용하는 지점은 하필 가장 불편한 곳, 바로 수용 능력(capacity)입니다. 어떤 전략은 $50k에서는 진짜로 수익이 나고 $5M에서는 구조적으로 손실이 나는데, 그 경계선은 임팩트를 반영한 곡선에서만 드러납니다.
미래 참조는 코드가 아니라 데이터에 숨어 있다
아무도 if tomorrow_close > today_close: buy()라고 쓰지는 않습니다. 미래 참조는 데이터 배관을 타고 스며듭니다. 수집 시각이 아니라 발행 시각으로 찍힌 뉴스 센티먼트, 알려진 시점이 아니라 적용 기간에 조인된 펀딩 레이트, 과거 구간에 적용된 "현재" 심볼 유니버스(생존 편향), 실제로 시장에 찍혔던 수치를 대체해버린 경제지표 수정치 같은 것들이죠. 우리 원칙은 어디서나 시점 정합성(point-in-time)입니다. 모든 보조 시계열은 우리가 알 수 있었던 시점 기준으로 타임스탬프가 찍히고, 백테스트는 그 나노초에 존재했던 것만 읽을 수 있습니다.
백테스트의 시험대는 곡선이 우상향하느냐가 아닙니다. 같은 코드에 같은 시그널을 실시간으로 먹였을 때 같은 거래가 나오느냐입니다. 그리고 그건 매일, 끝없이 확인해야만 알 수 있습니다.
마지막 문장은 구호가 아니라 실제 프로세스입니다. 우리는 매일 페이퍼 트레이딩 중인 각 전략의 구간을 백테스트 엔진으로 재생하고 거래를 하나씩 대조합니다. 페이퍼와 재생 결과가 어긋나면 둘 중 하나가 거짓말을 하고 있는 것이고, 범인은 대개 비용 아니면 타임스탬프입니다. 위의 네 가지 항목은 그저 우리에게 가장 먼저 거짓말을 했던 것들일 뿐입니다.
← 전체 글