trading

무상증자 발생 시 가격 보정 및 데이터 마이그레이션 방법

generator 2025. 7. 2. 17:16

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만으로도 충분
  • 다중 종목, 다중 일자에 대해 자동화 쿼리 작성도 가능