1. 개요
무상증자가 발생한 경우, 기존 가격 데이터를 보정하지 않으면 차트나 백테스트 결과가 왜곡될 수 있습니다. 특히 1주당 3주 무상증자의 경우 기존 가격은 1/4 수준으로 조정해야 하며, 본 문서에서는 일봉과 분봉 데이터에 적용하는 마이그레이션 방법을 설명드립니다.
2. 보정 비율 계산
- 1주당 3주 무상증자 → 총 4주 보유
- 보정 비율 = 1 / (1 + 3) = 0.25
3. 일봉 데이터 보정 쿼리 예시
UPDATE stock_daily
SET open_price = open_price * 0.25,
high_price = high_price * 0.25,
low_price = low_price * 0.25,
close_price = close_price * 0.25
WHERE stock_code = 'XXXX'
AND stock_date < '2025-07-01'; -- 무상증자 상장일 기준
4. 분봉 데이터 보정 쿼리 예시
UPDATE stock_minute
SET open_price = open_price * 0.25,
high_price = high_price * 0.25,
low_price = low_price * 0.25,
close_price = close_price * 0.25
WHERE stock_code = 'XXXX'
AND stock_date < '2025-07-01';
5. 거래량 보정 여부
- 거래량은 실제 체결 수량이므로 일반적으로 보정하지 않음
- 다만 거래대금 기반 지표를 계산할 경우 보정이 필요할 수 있음
6. 보정 전 백업 권장
CREATE TABLE stock_minute_backup AS
SELECT * FROM stock_minute WHERE stock_code = 'XXXX';
7. 정리
- 상장일 이전 가격에만 보정 적용
- 원본 보존이 필요 없다면 UPDATE만으로도 충분
- 다중 종목, 다중 일자에 대해 자동화 쿼리 작성도 가능