비트코인에서 만든 전략이 주식지수에서도 같은 성과를 내야 좋은 전략일까? 처음부터 특정 시장의 거래 시간·계약·수급을 이용하는 가설이라면 다른 자산에서 실패했다고 바로 무효라고 할 수는 없다.
반대로 “이 시장에 특화했다”는 설명이 과거 한 구간의 최고 숫자를 정당화할 수도 있다. 구분하려면 어떤 변화까지 견뎌야 하는 전략인지 먼저 정하고, 그 범위에 맞는 평가를 해야 한다.
특화는 검증을 생략하는 이유가 아니다. 어떤 시장과 조건에서 성립한다고 주장하는지 검증의 범위를 좁혀 명시하는 일이다.
1. 적용할 시장과 이용하는 구조를 먼저 적는다
한 자산만 거래할지, 여러 자산에 같은 규칙을 쓸지 정한다. 거래 시간·계약의 현금 흐름·유동성과 필요한 데이터가 가설의 어느 부분에 들어가는지도 적는다.
특정 거래소의 조건을 이용하는 전략이라면 다른 거래소에서는 그 조건이 없을 수 있다. 범위를 좁히는 것은 가능하다. 다만 평가가 실패한 뒤에 범위를 계속 줄이면 결과에 맞춘 사후 설명이 된다.
대상·조건·변경 가능 범위를 결과를 보기 전에 기록해야 무엇을 확인하려 했는지 남는다.
2. 구조를 설명한 가설과 최고 설정의 선택을 나눈다
거래 규칙이나 자금 조달 시점과 연결한 가설과, 과거 수익률이 가장 높았던 숫자를 고른 결과는 다르다. 그럴듯한 설명이 있어도 가설의 예측력이 확인되는 것은 아니다.
설정을 조금 바꿨을 때 성과가 어떻게 변하는지, 거래가 특정 시기·몇 번의 큰 이익에 집중되는지 확인한다. 주변 설정의 성과가 비슷한 것은 참고 자료지만 과적합이 없다는 증명은 아니다.
자산·기간·규칙·변수를 많이 비교했다면 그 선택 이력도 남긴다. 단순한 전략과 복잡한 전략 모두 결과를 반복해서 고르면 선택의 영향을 받을 수 있다.
3. 검증의 축마다 답하는 질문을 구분한다
평가의 변화 | 확인하는 질문 |
|---|---|
같은 시장의 이후 시기 | 개발 이후에도 같은 규칙이 기여하는가 |
다른 자산·거래소 | 다른 구조에도 적용할 수 있는가 |
주변 설정·입력 정의 | 작은 연구 선택에 결과가 얼마나 민감한가 |
비용·규모·체결 조건 | 가정에서 실제 운용으로 옮겨도 결과가 남는가 |
다른 자산의 성공은 적용 범위를 넓히는 근거가 될 수 있다. 하지만 자산들이 같은 기간의 공통 요인에 노출돼 있다면 서로 완전히 독립된 확인으로 세지 않는다.
한 시장의 이후 시기에 성공한 결과도 모든 다른 시장이나 무기한 미래를 보장하지 않는다. 통과한 축과 아직 평가하지 않은 축을 따로 표시한다.
4. 시간 순서와 평가 자료의 역할을 보존한다
이후 시기를 평가하려면 그 전에 확정한 규칙과 당시 알 수 있던 자료를 사용한다. 평가 결과를 보고 계속 수정했다면 그 기간은 이제 개발에 쓰인 자료다.
scikit-learn의 TimeSeriesSplit 설명은 시간순 자료에서 미래를 학습하고 과거를 평가하는 문제가 생기지 않도록 나누는 방법을 설명한다. 도구를 썼다는 사실만으로 금융 평가의 정보 누출이 모두 해결되지는 않는다.
발표 시점·전처리·겹치는 결과 기간·종목 편출입도 별도로 확인한다. 필요한 구간 간격과 자료 제외 기준은 예측 기간과 입력 구조에 맞춰 정한다.
5. 성과표에 적용 범위와 실패 조건을 붙인다
시장별·기간별 결과에 비용·거래 횟수·노출·낙폭과 사용한 데이터 버전을 함께 남긴다. 실거래 결과가 있다면 모형 성과와 구분하고, 두 결과가 어긋난 원인도 확인한다.
목표가 여러 시장에 쓸 수 있는 방법이라면 다른 시장의 평가가 필요하다. 목표가 한 시장의 특정 구조라면 그 구조의 변화·유지 조건을 감시해야 한다. 좁은 범위도 현재 근거로 명시하면 평가할 수 있다.
특화의 성과는 과거 최고 수익률 하나보다, 정한 범위에서 어떤 확인을 통과했고 어디에서 실패했는지를 통해 읽는다. 그 범위를 넘는 주장은 추가 평가 뒤에 붙인다.
전략 설명 첫 줄에 대상 시장·사용할 정보·평가 기간·비용 조건을 적어 보자. 결과를 본 뒤 어느 항목을 바꿨는지 이력을 남기면 시장 특화의 이유와 사후 선택을 구별하기 쉬워진다.
