데이터 소스 선택: 무료, 저비용, 유료 옵션
역사적 연구를 구축하는 첫 단계는 데이터를 찾는 것이며, 검색 엔진이 보통 출발점입니다. 무료 또는 저비용 데이터베이스는 온라인에 풍부합니다. 이들은 커버하는 범위가 다릅니다. 어떤 것은 일별 주식 데이터를 제공하고, 다른 것은 일별 선물 데이터, 일별 외환 데이터, 또는 주식과 선물의 장중 데이터를 제공합니다. 또한 덜 명백하지만 더 중요한 세 가지 차원에서도 다릅니다. 분할과 배당이 조정되는지, 데이터가 생존 편향을 겪는지, 그리고 역사가 얼마나 거슬러 올라가는지입니다. 유료 데이터베이스는 일반적으로 더 완전한 분할 및 배당 조정을 제공하고, 여러 심볼의 대량 다운로드를 지원하며, 펀더멘털 데이터를 포함합니다. 일부 제공업체는 생존 편향이 없는 데이터셋도 제공합니다. 대가는 비용이며, 상당할 수 있습니다. 무료 또는 저렴한 소스는 종종 생존 편향을 가지며, 보통 한 번에 하나의 심볼을 다운로드해야 하고, 가격 조정이 얼마나 일관되게 적용되었는지가 다양합니다. 이러한 차이 때문에 소스 선택은 중립적인 결정이 아닙니다. 같은 시장과 같은 기간을 커버하는 두 데이터셋은 동일한 규칙 세트에 대해 다른 백테스트 결과를 낼 수 있습니다. 기업 행동을 제대로 조정하고 상장폐지된 심볼을 유지하는 데이터셋은 둘 다 하지 않는 데이터셋과 매우 다르게 작동합니다. 따라서 실용적인 접근은 티커와 날짜로 표시된 파일이 다른 파일과 동등하다고 가정하기보다, 사용하기 전에 소스가 실제로 무엇을 포함하는지 파악하는 것입니다. 커버리지, 조정 정책, 역사 길이, 편향 처리가 연구가 의미 있는지 오해를 부르는지를 결정하는 속성입니다.
분할 및 배당 조정: 첫 번째로 물어야 할 질문
과거 가격이 분할과 배당에 대해 조정되었는지는 어떤 데이터베이스를 사용하기 전에 해결해야 할 핵심 질문입니다. 논리가 명확해지면 메커니즘은 간단합니다. 회사가 배당락일에 주식을 분할하면 각 주식은 여러 새 주식이 됩니다. 배당락일 이전의 모든 과거 가격은 분할 비율의 역수를 곱해야 하며, 이는 분할 배수로 나누는 것을 의미합니다. 예를 들어 2대1 분할은 모든 이전 가격을 절반으로 줄여 가격 시계열이 이벤트 전반에 걸쳐 연속적으로 유지되도록 해야 합니다. 배당은 다른 요인을 통해 작동합니다. 회사가 배당락일에 현금 배당을 지급하면 그 날짜 이전의 모든 과거 가격은 다음 요인을 곱합니다: 전일 종가에서 주당 배당금을 뺀 값을 전일 종가로 나눈 값입니다. 이는 배당락 경계를 넘어 주식의 일일 수익률을 보존합니다. 표준 방법은 단순히 배당 금액을 빼는 것이 아니라 가격을 곱셈적으로 조정한다는 점에 유의하세요. 곱셈은 수익률을 시간에 걸쳐 연속적이고 비교 가능하게 유지하기 때문입니다. 뺄셈은 백분율 수익률에 왜곡을 초래할 것입니다. 이러한 조정을 건너뛰는 결과는 심각합니다. 배당락일에는 시가가 전일 종가보다 대략 배당 금액만큼 자연스럽게 낮으며, 여기에 정상적인 시장 움직임이 더해집니다. 이 인위적인 갭은 잘못된 거래 신호를 유발할 수 있습니다. 예를 들어 하방 돌파를 스캔하는 시스템은 기계적 하락을 진짜 붕괴로 해석하여 실제 가격 약세가 없는 곳에서 공매도 지시를 내릴 수 있습니다. 가장 깔끔한 해결책은 이미 분할 및 배당 조정이 적용된 데이터베이스를 사용하는 것입니다. 조정을 수동으로 해야 하는 경우, 요인을 계산할 수 있도록 분할 및 배당 정보의 독립적인 소스가 필요하며, 이는 지루하고 오류가 발생하기 쉽습니다.
수동 조정: 요인, 곱셈, 오류 위험
데이터셋이 조정되지 않은 채 도착하고 교체할 수 없다면, 조정 작업은 사용자에게 떨어지며, 그것이 정확히 무엇을 포함하는지 이해할 가치가 있습니다. 이 과정은 각 심볼에 대한 모든 분할과 모든 배당의 별도이고 신뢰할 수 있는 기록을 필요로 합니다. 그 기록에서 각 기업 행동에 대한 조정 요인이 계산됩니다: 분할의 경우 분할 비율의 역수, 배당의 경우 종가에서 배당을 뺀 값을 종가로 나눈 값입니다. 그런 다음 각 요인은 해당 배당락일 이전에 발생하는 모든 과거 가격에 적용됩니다. 주식이 역사상 여러 분할과 여러 배당 지급을 모두 가진 경우, 주어진 과거 가격에 대한 총 조정 요인은 그 가격의 시간 간격에 적용되는 모든 개별 분할 요인과 배당 요인의 곱입니다. 이 곱셈 구조가 시계열을 내부적으로 일관되게 유지하는 것입니다: 각 이벤트는 이전 이벤트에 복리로 쌓입니다. 두 가지 실질적인 어려움이 발생합니다. 첫째, 데이터 수집 자체가 노동집약적입니다. 분할과 배당은 가격 파일과 독립적인 소스에서 수집해야 하며, 누락된 이벤트는 시계열에 영구적인 불연속성을 남겨 실제 가격 움직임으로 오인될 수 있습니다. 둘째, 산술 오류가 전파됩니다. 하나의 잘못된 요인은 그 날짜 이전의 모든 가격을 손상시키며, 결과적인 왜곡은 눈에 띄지 않을 만큼 그럴듯해 보일 수 있습니다. 검증 문제도 있습니다. 다른 공급업체는 조정을 약간 다른 방식으로 처리할 수 있으므로, 수동으로 조정된 시계열과 공급업체가 조정한 시계열은 둘 다 내부적으로 일관되더라도 정확히 일치하지 않을 수 있습니다. 결과가 정확한 가격 수준에 의존한다면, 다른 곳의 데이터와 결합하기 전에 소스가 조정을 어떻게 정의하는지 확인할 가치가 있습니다. 대부분의 경우 수동 조정의 노력은 적절한 사전 조정 소스가 없을 때만 정당화됩니다.



