Look-ahead Bias는 나중에야 얻을 수 있는 정보를 더 이른 의사 결정, 모델 학습 또는 규칙 선택에 사용하는 오류입니다. 표에 적힌 날짜보다 실제로 언제 알 수 있었는지가 중요합니다. 이미 내린 결정의 결과를 나중에 측정하는 것 자체는 오류가 아닙니다.
페트르는 자신의 규칙이 과거에 어떻게 거래했을지 컴퓨터로 시험합니다. 표에는 이미 전체 이력이 있으므로 프로그램이 당시에는 알 수 없던 값까지 잘못 읽을 수 있습니다. QuantConnect는 Look-ahead Bias를 이렇게 설명합니다. 입력마다 규칙이 결정할 때 이용할 수 있었는지 물어야 합니다. 날짜만으로는 부족할 수 있습니다. 사건은 아침에 일어났지만 보도는 나중에 나오고 거래자에게는 더 늦게 도착했을 수 있습니다. 시험은 행을 날짜순으로 정렬하는 데 그치지 않고 이 순서를 지켜야 합니다. [2]
가격 캔들은 한 구간의 시가, 종가, 고가, 저가, 거래량을 요약합니다. 구간이 끝나기 전에는 최종값을 알 수 없습니다. 따라서 페트르는 같은 캔들의 최종 고가를 근거로 구간 시작에 매수할 수 없습니다. QuantConnect가 사용하는 엔진 LEAN은 종료 시각인 EndTime에 따라 완성된 데이터를 전달합니다. 짧은 구간과 긴 구간을 함께 쓴다면 각 시계열의 이용 가능 시각을 따로 확인해야 합니다. 한 행을 미루는 방법도 시간대와 지연을 포함한 실제 이용 가능 시점과 맞을 때만 도움이 됩니다. [1]
페트르가 내려받은 경제 통계에는 지난달의 날짜가 붙어 있습니다. 하지만 일부 수치는 이후 수정됐습니다. 오늘의 수정값으로 당시 결정을 내리면 그때 없었던 지식을 보태는 셈입니다. St. Louis Fed는 그래서 오늘의 관점에서 과거를 보는 FRED와 당시 버전을 제공하는 ALFRED를 구분합니다. 이런 자료에는 당시 공개된 버전이 필요합니다. 통계의 대상 월만으로는 부족합니다. 일 단위 날짜가 붙은 과거 버전도 그날 정확히 언제부터 이용할 수 있었는지까지 입증하지는 않습니다. [3]
페트르는 오래된 자료를 학습용으로, 새로운 자료를 시험용으로 나눕니다. 그런데 입력을 변환하려고 전체 표의 평균을 계산하면 미래 정보가 다른 길로 들어옵니다. 따라서 기계 학습 라이브러리 scikit-learn의 문서는 변환을 학습용 부분에서만 학습한 뒤 시험용 부분에 적용하도록 요구합니다. 빠진 값을 채우는 방법과 입력 선택도 확인해야 합니다. 학습에 쓰는 거래 결과도 마찬가지입니다. 방금 시작한 거래의 최종 결과는 아직 모릅니다. 나중에 평가할 수는 있지만, 그 결과를 이전 학습에 돌려보내면 안 됩니다. [4]
과거 캔들은 고가와 저가를 보여 주지만 실제 거래의 전체 순서를 복원하지는 못합니다. TradingView는 그래서 시뮬레이터가 캔들 안의 가격 움직임에 어떤 가정을 쓰는지 설명합니다. 페트르는 신호 발생, 주문 전송, 가능한 체결 시점을 구별해야 합니다. 시뮬레이션이 나중에 밝혀진 고가를 찾을 수 있다고 해서 그 가격에 파는 규칙이 당시 사용 가능했던 것은 아닙니다. 미래 정보 유출과 지나치게 유리한 체결 가정은 서로 다른 오류입니다. 더 세밀한 자료가 도움이 될 수 있지만 실제 체결을 보장하지는 않습니다. [5]
Freqtrade Lookahead Analysis는 시험을 반복해 지표나 신호가 달라지는지 비교합니다. 미래 행을 참조하는 계산 등을 찾아낼 수 있습니다. 그러나 시험 중 한 번도 실행되지 않은 판단 분기는 검사할 수 없습니다. 그래서 결과뿐 아니라 검사 범위도 알아야 합니다. 문서는 한 시장과 전체 시장 묶음에서 전략의 동작이 다른 경우처럼 잘못된 경고가 나올 가능성도 지적합니다. 이상이 없다는 결과가 모든 것을 보증하지 않으며, 발견된 차이에도 설명이 필요합니다. 자료의 출처를 추적하는 일은 여전히 중요합니다. [6]
페트르가 미래 입력을 제거하자 훌륭했던 결과가 나빠졌습니다. 이제 옛 보고서를 수정된 절차의 결과로 제시하면 안 됩니다. 그렇다고 수정만으로 점검이 끝난 것은 아닙니다. TradingView는 Look-ahead Bias와 Overfitting을 구분합니다. 과적합은 규칙이 개발에 쓰인 자료의 특수한 성질에 지나치게 맞춰진 것으로, 미래 정보 없이도 생깁니다. 반대로 아주 간단한 규칙에도 시간 오류가 있을 수 있습니다. 과거 시험과 이후 성과의 차이만으로는 어느 문제 또는 시장 변화가 원인인지 판단할 수 없습니다. [5]
유용한 기록은 그때 페트르가 알았던 것을 복원할 수 있어야 합니다. 자료 버전, 규칙, 계좌 상태, 이용 가능한 입력, 보낸 주문에 체결 가정과 비용을 더합니다. 실제 돈을 쓰지 않는 연습 거래인 Paper Trading은 진행 중 기록을 남기는 데 도움이 되지만 모의 거래는 실제 거래와 다릅니다. 미국의 National Futures Association(NFA)은 가상 성과가 유동성, 예상가와 체결가의 차이, 손실 압박 속 판단을 제대로 반영하지 못할 수 있다고 지적합니다. 관련 홍보 규칙은 정해진 회원에게 적용됩니다. 시간 오류를 없애면 더 정직한 시험을 얻을 뿐, 미래 수익을 약속받는 것은 아닙니다. [7]
어느 구간이 오를지 시험이 미리 안다면
더 정확히 이해하려면 이 항목과 함께 다음도 읽어 보세요 Backtesting, Overfitting, Walk-forward Analysis, Survivorship Bias, Paper Trading. 다음 항목에서도 이 글을 참조합니다 Walk-forward Analysis, Overfitting, Survivorship Bias, On-chain Analysis.
01지표를 한 행 미루면 충분한가요?+
특정 오류를 고칠 수는 있지만 보편적인 해법은 아닙니다. 자료가 늦게 발표됐거나 나중에 수정됐을 수 있고, 전체 표를 준비할 때 이미 사용됐을 수도 있습니다. 각 입력을 결정 시점에 이용할 수 있었는지가 중요합니다.
02평가할 때는 나중의 결과를 사용해도 되나요?+
네. 이전 예측을 평가하려면 이후 결과를 알아야 합니다. 오류는 그 결과를 과거로 돌려보내 당시 알려지지 않았던 정보로 이전 판단, 학습, 규칙 선택에 영향을 줄 때 발생합니다.