백테스팅 용어
연속 (백어드저스트) 선물 계약
연속 선물 계약은 만기되는 계약들을 하나의 선으로 연결하여 전략을 몇 달이 아닌 수년에 걸쳐 테스트할 수 있도록 합니다. 이를 연결하는 방식에 따라 나중에 보게 될 엣지가 실제인지 여부가 결정됩니다.
단일 선물 계약은 몇 달 동안 거래된 후 만기됩니다. 13년치 데이터를 통해 전략을 테스트하려면 끊어지지 않는 하나의 선이 필요하므로, 만기되는 계약을 다음 계약에, 그리고 그 다음 계약에 연결하여 하나의 연속 (백어드저스트) 계약을 만듭니다. 이 연결을 부주의하게 수행하면 모든 롤오버 날짜에 차트에 유령 같은 갭이나 유령 같은 이익이 남게 되며, 이는 실제 트레이더가 결코 얻을 수 없었던 점프입니다.
백어드저스팅은 해결책입니다. 각 롤오버 전의 모든 가격을 갭 크기만큼 이동시키면 이음새가 사라져 차트가 점프의 계단 대신 하나의 부드러운 선으로 읽힙니다. 이는 필수적이며, 오늘 날짜에 가까울수록 대부분 무해합니다. 그러나 충분히 과거로 돌아가면 누적된 이동이 이전 가격을 0에 가깝게, 심지어 음수로 밀어낼 수 있으며, 조정된 시리즈에 대한 부주의한 백분율 수익률 계산은 보이는 의미를 잃게 됩니다.
이 함정은 스스로를 드러내지 않기 때문에 조용합니다. 자산 곡선은 깨끗해 보이고 전략은 수익성이 있어 보입니다. 진짜 원인은 수십 개의 개별 계약이 어떻게 연결되었는지에 있으며, 이는 규칙과는 아무런 관련이 없습니다. 이는 미래 정보 편향과 밀접한 관련이 있습니다. 둘 다 백테스트에 결코 얻을 수 없었던 돈을 제공하는데, 하나는 미래 정보를 과거로 유출하고, 다른 하나는 연결 아티팩트를 가격 시리즈 자체로 유출합니다.
우리는 13년치 CME 선물 데이터를 실행하며, 기본 설정에 맡기지 않고 모든 롤오버를 의도적으로 처리합니다. 이는 잘못된 연결만으로도 아무것도 없는 곳에서 엣지를 만들어낼 수 있기 때문이며, 규칙 변경은 필요하지 않습니다. 중요한 확인은 간단합니다. 조정된 시리즈가 백테스트 기간 동안 롤오버 후에도 트레이더가 실제로 체결될 수 있었던 가격과 여전히 일치하는지 여부입니다.
이를 잘못 처리하면 백테스트는 전략을 테스트하는 것을 멈추고 아티팩트, 즉 존재하지 않았던 계약을 테스트하기 시작합니다. 차트는 실제처럼 보입니다. 그 안의 체결은 그렇지 않습니다. 부드러운 연속 시리즈와 그 아래의 불규칙하고 만기되는 현실 사이의 그 갭은 백테스트가 거래 가능한 어떤 것도 테스트하는 것을 조용히 멈출 수 있는 지점입니다.
이 연구의 배경
- López de Prado (2018). “Advances in Financial Machine Learning.” Wiley. — 금융 ML에서 백테스트 과적합 및 데이터 유출을 다루며, 이는 잘못된 계약 연결이 조용히 유발할 수 있는 동일한 실패 모드입니다.
외부 연구는 맥락과 추가 자료를 위해 연결되었습니다. FoxAlgo는 독립적이며 이 저자나 출판사와 제휴하지 않습니다.
이 용어들은 The No List의 배경이 됩니다. The No List는 모든 전략과 지표의 이름, 판결, 그리고 성공 또는 실패의 정확한 이유를 담은 전체 감사 보고서입니다.
The No List 받기 →