반응형

티커는 짧고 익숙해서 기본 키처럼 쓰기 쉽다. 문제는 티커가 재사용될 수 있다는 점이다. 한 기업이 상장폐지된 뒤 같은 코드가 다른 기업에 붙으면, 오래된 가격과 새 회사 정보가 한 줄로 이어지는 사고가 난다.

티커 재사용 문제 처리: 상장폐지 종목을 구분하는 법 핵심 흐름과 판단식 도식
티커 재사용 문제 처리: 상장폐지 종목을 구분하는 법 핵심 구조도

티커만으로 조인하면 생기는 일

상황 겉보기 실제 위험
상장폐지 후 재사용 같은 티커 두 기업의 가격이 이어짐
거래소 이전 같은 티커 시장 기준이 달라짐
클래스 변경 비슷한 코드 보통주와 우선주가 섞임
합병 이후 코드 변경 새 티커 과거 이력 연결이 끊김

식별자는 기간을 포함해야 한다

security_identity = (ticker, exchange_id, valid_from, valid_to)

join_condition:
  price.date >= valid_from
  and price.date < coalesce(valid_to, '9999-12-31')

장기 데이터의 원칙

화면 검색은 티커로 해도 된다. 저장과 조인은 security_id로 해야 한다. 이 둘을 섞으면 재사용 문제를 나중에 찾기 어렵다.

매일 돌릴 점검

  • 새로 들어온 티커가 과거에 존재했는지 확인한다.
  • 상장폐지 종목이 active universe에 남아 있는지 본다.
  • 티커 변경 이벤트가 가격, 재무, 기업 정보 테이블에 모두 반영됐는지 비교한다.

실전 적용 포인트

티커는 사람이 읽기 좋은 기호지만 장기 데이터의 영구 식별자로 쓰기에는 약하다. 같은 티커가 다른 시점에 재사용될 수 있고, 거래소 이전이나 합병 이후에는 과거 가격과 현재 회사 정보가 잘못 이어질 수 있다.

따라서 가격, 재무, 기업 이벤트를 조인할 때는 티커와 함께 거래소, 유효기간, 내부 보안 식별자를 같이 써야 한다. 이 기준을 정해두면 상장폐지 종목까지 포함하는 백테스트에서도 데이터가 덜 흔들린다.

  • 티커 단독 조인을 피한다.
  • valid_from과 valid_to를 매핑 테이블에 포함한다.
  • 상장폐지 종목을 active universe에서 따로 관리한다.

함께 보면 좋은 글

반응형

+ Recent posts