몬테카를로는 반복적인 무작위 실험을 가리키는 포괄적인 명칭이지, 각 시뮬레이션이 새로운 시장 경로를 만든다는 약속이 아닙니다. 여기서는 제품 예시가 완료된 백테스트의 거래 결과를 반복적으로 다시 추출합니다. 거래 리샘플링은 선택된 기록이 특정 재배열이나 재추출 아래에서 어떻게 움직이는지를 묻습니다. 이는 하나의 백테스트에서 순서 민감도를 드러낼 수 있습니다. 그러나 새로운 시장 이력을 만들어내거나, 거래가 대표성을 지닌다고 입증하거나, 실시간 수익률을 예측할 수는 없습니다. 먼저 무엇을 표본으로 삼는지, 그 출력이 어떤 질문에 답하기 위한 것인지 밝히십시오.
순열은 거래를 유지하고, 부트스트랩은 다시 추출합니다
순열은 고정된 결과 집합을 비복원으로 섞습니다. 관측된 각 거래는 재배열된 각 경로에 한 번씩 나타납니다. 달러 결과가 고정되어 있고 자본이 가산적이라면 최종 합계는 동일하게 유지되지만, 순서에 따라 중간 최고점 대비 최저점 낙폭이 달라질 수 있습니다.
부트스트랩은 복원 추출로 표본을 뽑습니다. 하나의 경로에서 어떤 결과가 여러 번 나타나는 동안 다른 관측 결과는 빠져 있을 수 있습니다. 따라서 모든 추출이 동일한 원본 기록에서 나오더라도 추출 간에 최종 합계가 달라질 수 있습니다. 두 연산 모두 새로운 전략 실행이 아닙니다. 가격을 다시 생성하거나, 변경된 자본 잔고로 포지션 크기를 다시 계산하거나, 새로운 체결 경로를 모델링하지 않습니다.
12건 거래 예시
$1,000에서 시작하여 여섯 번의 $100 이익과 여섯 번의 $80 손실이라는 가상의 종료된 거래 순손익을 가정합니다. 달러 결과는 이 예시에 포함된 비용이 이미 차감된 순액으로 간주합니다. 두 순서 모두 동일한 12개 결과를 포함하므로 둘 다 $1,120, 즉 +12%로 끝납니다.
여섯 번의 손실이 먼저 오면 자본은 $520까지 떨어졌다가 회복됩니다. 최초 $1,000 고점 기준 낙폭은 48%입니다. 손실과 이익이 손실로 시작해 번갈아 오면 자본은 먼저 8% 하락해 $920이 되고, 이후의 고점 대비 최저점 하락은 더 작습니다. 두 순서 모두 여전히 같은 값으로 끝납니다. 이 비교는 순서를 분리해 보여줄 뿐, 어느 순서가 더 발생하기 쉽다거나 기초 전략이 미래에 48% 낙폭 확률을 지닌다고 말하지 않습니다.
복원 추출에서는 특정 12회 추출 경로가 예를 들어 여덟 번의 손실과 네 번의 이익을 담거나 그 반대일 수 있습니다. 그런 경로들은 최종 순액 합계를 바꿉니다. 그런 많은 추출에 걸친 백분위수는 이 표본에 적용된 선택된 리샘플링 규칙을 요약한 것이지, 내일의 시장에 대한 신뢰구간이 아닙니다.
SuperQuant의 진단이 실제로 하는 일
제품의 “부트스트랩 거래 순서 리스크” 진단은 현재 실행의 종료된 거래 net 달러 결과를 가져와 복원 추출로 표본을 뽑습니다. 각 추출된 달러 금액을 시작 자본에 더합니다. 기본 실행은 1,000회 재추출을 사용하고, 구현은 명시적 횟수를 100에서 5,000 사이로 제한하며, 종료된 거래가 10건 미만이면 “불충분” 결과를 냅니다. 전략과 데이터 지문에서 파생된 시드는 동일한 고정 실행을 재현 가능하게 만듭니다.
이 진단은 최종 수익률과 최대 낙폭에 대한 서술적 백분위수와 함께, 시작 자본 아래로 끝나는 시뮬레이션 경로의 비율 및 모델링된 자본이 0에 도달하는 경로의 비율을 보고합니다. 인터페이스에서 “loss in 18%”와 같은 표시는 이 유한한 리샘플링 실행의 18%가 마이너스로 끝났다는 뜻입니다. 실시간 전략이 18% 확률로 손실을 본다는 추정이 아닙니다.
표본으로 뽑힌 각 거래는 고정된 달러 결과로 남습니다. 이 계산은 시간적 군집이나 지속 시간을 보존하지 않고, 현재 시장 비용을 다시 적용하지 않으며, 자본이 변함에 따라 크기를 다시 계산하지 않고, 봉 내 갭을 만들지 않으며, 중단, 청산 규칙, 실제 거래소 체결을 모델링하지 않습니다. 원본 거래의 net 값에 이미 존재하는 비용은 그 관측 결과에 내재된 채로 남습니다. 원본 비용이 누락되었거나 과소 계상된 경우 리샘플링으로 바로잡히지 않습니다. 함께 제공되는 제품 이력은 합성 데이터이므로 시장 성과를 입증할 수 없습니다.
질문에 맞는 방법을 선택하십시오
같은 기록된 결과가 어떻게 서로 다른 자본 경로를 만들 수 있는지 보여주려면 섞기를 사용하십시오. 관측된 어떤 결과가 같은 길이의 표본에 추출되는지에 대한 민감도를 구체적으로 살펴보려면 복원 추출 부트스트랩을 사용하십시오. 연구 질문이 인접 관측치에 의존한다면, 개별 거래를 독립적으로 추출하는 것은 그 순서 구조를 버리는 것입니다.
Politis와 Romano가 도입한 정상 부트스트랩은 지수 분포 길이를 가진 연속 시계열 구간을 리샘플링합니다. arch 패키지는 이 방법을 시계열 부트스트랩 참고자료에 문서화합니다. 구간 내에서 관측치를 함께 유지하면 독립적인 단일 거래 추출이 버리는 일부 단기 의존성을 보존할 수 있습니다. 이는 SuperQuant의 거래 순서 진단과는 다른 절차이며, 그 정상성 및 약의존성 가정은 연구 대상 데이터와 통계량에 대해 검토되어야 합니다.
다음은 인덱스만 사용한 예시입니다. 1부터 9까지 번호가 매겨진 아홉 개의 순서 있는 관측치에서 시작합니다. 길이가 3인 연속 블록 세 개로 이루어진 가능한 길이 9 표본 하나는 2, 3, 4 | 7, 8, 9 | 1, 2, 3입니다. 원래 순서는 선택된 각 블록 내부에 유지됩니다. 다음 블록은 다른 곳에서 다시 시작할 수 있고, 관측치가 반복되거나 누락될 수 있습니다. 정상 부트스트랩은 모든 블록을 3으로 고정하는 대신 블록 길이를 무작위화합니다. arch 8.0.0 문서에서 StationaryBootstrap 입력은 평균 블록 크기입니다. 여기서 3개 관측치는 교육용 선택일 뿐이며, 추정되거나 권장되는 설정이 아닙니다.
단위가 중요합니다. 세 거래의 블록은 세 시간이 아니라 연속된 세 거래를 뜻합니다. 거래 지속 시간과 유휴 간격은 달라질 수 있습니다. 질문이 시간별 또는 일별 수익률 간의 의존성에 관한 것이라면, 그 빈도의 시간 인덱스 시계열을 사용하고 통계량을 그에 맞추십시오. 합리적으로 정당화할 수 있는 여러 평균 블록 크기를 검토하고 그 선택을 보고하십시오. 블록 부트스트랩은 일부 국지적 흐름을 함께 유지할 수 있지만, 사라진 시장 국면을 복원하거나 선택 편향을 고치거나 비정상 표본이 미래를 대표한다고 입증할 수는 없습니다.
입력 기간, 거래 건수, 순결과 정의, 포지션 크기 결정 규칙, 표본 추출 방법, 복원 규칙, 시드, 반복 횟수 및 요청된 모든 백분위수를 보고하십시오. 전체 분포와 그 옆에 원본 실행을 보여주십시오. 리샘플링된 출력을 반복적으로 검토하는 것이 전략을 바꾼다면, 그 연구 선택을 기록하고 이후 데이터는 새로운 평가를 위해 남겨두십시오. 백테스트 지표, 과최적화 점검 및 트레이딩 일지 가이드로 이어가십시오. 이는 진단 설명이며, 리스크 예측이나 투자 조언이 아닙니다.