2026년 9월 30일 · 리서치

백테스트에서는 가장 좋은 시간이었는데, 시간대가 바뀐 뒤에도 거래할 수 있을까요?

백테스트에서는 가장 좋은 시간이었는데, 시간대가 바뀐 뒤에도 거래할 수 있을까요?

깔끔한 결과를 찾았습니다. 암호화폐 전략 수익의 대부분이 13:00~14:00 UTC 사이에 발생합니다. 수수료를 확인하고 백테스트를 다시 실행했으며 신호를 모의 거래로 검증했습니다. 이제 미국 주식 버전을 준비하는데, 가장 강한 시간대는 뉴욕 시간 09:30~10:30으로 나타납니다.

두 결과를 모두 신뢰하기 전에 시계가 어떻게 움직였는지 확인하세요. 미국 서머타임은 UTC 기준 뉴욕장 개장 시각을 1시간 바꿉니다. 피처, 세션 라벨, 주문이 서로 다른 시간 기준을 사용한다면, 전략은 반복 가능한 시장 패턴이 아니라 달력 경계의 효과를 이용하고 있을 수 있습니다.

시간대별 분석을 포기할 필요는 없습니다. 가설에서 기준으로 삼는 시계를 정하고 백테스트의 모든 요소가 그 기준을 일관되게 따르도록 하면 됩니다.

먼저 그 시간이 무엇을 뜻하는지 정하세요

“첫 1시간”은 기준 시계를 정하기 전까지 정확해 보일 뿐입니다. NYSE 개장 후 첫 60분일 수도, 뉴욕 현지 시각 09:30~10:30일 수도, 고정된 UTC 구간일 수도 있습니다. 이 정의들은 연중 일부 기간에는 일치하지만 서머타임 변경 무렵에는 달라집니다.

주식 가설에는 거래소 현지 세션 시각을 사용하세요. 뉴욕 시간 09:30은 뉴욕이 EST인지 EDT인지와 관계없이 09:30을 뜻합니다. 암호화폐 가설에서는 고정 UTC 시간이 의도한 변수가 될 수 있습니다. 암호화폐는 24시간 거래되므로 주장을 기준 잡을 거래소 개장 종이 없습니다.

최적화 전에 정의를 기록해 두세요. “정규 세션 개장 후 첫 1시간에 거래한다”는 검증할 수 있습니다. “신호가 가장 잘 작동하는 시간에 거래한다”라고 하면 최적화기가 전략과 함께 시계 기준까지 선택하게 됩니다.

시계가 맞지 않는 지점

주식 데이터는 UTC로 저장하고, 피처 코드는 UTC 시간 단위로 행을 묶으며, 실행 규칙은 뉴욕 시간 09:30에 포지션을 연다고 가정해 봅시다. 서머타임이 바뀌면 시장 개장은 14:30 UTC에서 13:30 UTC로 이동합니다. UTC 구간으로 “첫 1시간”이라 표시한 피처는 이제 세션의 다른 구간을 가리킵니다.

타임스탬프에서 바를 만들 때도 비슷한 문제가 생깁니다. UTC로 리샘플링한 다음 라벨을 뉴욕 시간으로 변환하면 예상치 못한 경계가 생길 수 있습니다. 특히 봄철 전환 때는 현지 시간이 한 시간 건너뛰고, 가을철 전환 때는 한 시간이 두 번 나타납니다. 가을 일요일의 현지 시각 01:30 같은 타임스탬프는 UTC 오프셋이 포함되어 있거나 UTC로 표현되지 않으면 모호합니다.

암호화폐 결과에서도 달력은 여전히 중요할 수 있습니다. UTC 시간 기준 전략은 몇 달 동안 미국 시장 활동과 맞물리다가 미국의 시계가 바뀌면 이동한 것처럼 보일 수 있습니다. 그렇다고 전략이 잘못된 것은 아니지만, 주장할 수 있는 내용은 달라집니다. 뉴욕장 개장과 연관된 효과가 아니라, 때때로 뉴욕장 개장과 겹치는 고정 UTC 패턴을 측정했을 수 있습니다.

세션 시계를 테스트에 반영하세요

이벤트 타임스탬프는 기준 기록으로 UTC에 보관하세요. 과거 규칙 변경도 처리하는 시간대 데이터베이스를 사용해 America/New_York 같은 명명된 시간대에서 현지 세션 필드를 계산하세요. “UTC에서 5시간 빼기” 또는 “UTC에서 4시간 빼기”를 하드코딩하지 마세요. 어느 쪽도 연중 내내 뉴욕 시간을 나타내지 않습니다.

결정주식 예시암호화폐 예시
가설의 시간 기준정규 세션 개장 이후 경과한 분하루 중 UTC 시간
세션 기준 정보휴장일과 조기 폐장을 포함한 거래소 일정연속적인 UTC 달력
주문 시점신호 발생 후 처음으로 체결 가능한 이벤트신호 발생 후 처음으로 체결 가능한 이벤트

그다음 경계 주간을 따로 테스트하세요. 각 서머타임 변경 전후의 성과를 비교하고, 우승 구간이 시장 세션에 붙어 있는지 아니면 UTC 기준으로 고정되어 있는지 살펴보세요. 최선의 결과를 찾으려고 여러 시간대와 날짜, 오프셋을 탐색했다면 과최적화 계산에 그 탐색도 포함하세요. 시계 선택도 또 하나의 시행이었습니다.

시간대는 뺄 시간 수가 아니라 규칙 집합입니다. UTC 이벤트를 저장하고, 필요할 때 현지 시장 시각을 계산하세요.

모의 거래에서 확인할 사항

전략을 모의 거래로 옮길 때 이벤트의 UTC 타임스탬프와 세션 시작 기준 경과 분을 모두 기록하세요. 그러면 개장 시각이 09:30이라고 생각하면서 실제로는 현지 시각 10:30에 신호를 내는 전략을 빠르게 찾아낼 수 있습니다. 휴일과 조기 폐장도 확인하세요. 평일마다 일반 세션 일정을 그대로 적용하면 거래소가 닫힌 날에도 거래가 있다고 잘못 만들어 낼 수 있습니다.

시계가 바뀔 때는 수익 곡선을 익숙하게 보이게 하려고 신호를 옮겨 결과를 “수정”하고 싶은 마음을 참으세요. 먼저 명시한 가설과 달력, 주문 시점을 확인하세요. 결과가 시장 세션을 따라 움직인다면 세션의 움직임에 대해 알게 된 것입니다. 같은 UTC 시간에 머문다면 다른 사실을 알게 된 것입니다. 백테스트는 이 차이를 보존해야 합니다.

장중 계절성시간대백테스트거래 시간데이터 엔지니어링
← 전체 글