(Python : Basic) Example - 주식 백테스트 툴

Posted by : at

Category : Python


현재 버전의 한계

  • (중요)Look ahead bias & Survivalship bias
    • 특정 년도에 상장이 폐지가 되었다면 -> 바로 이전 년도에서 종목선정에 고려가 안됨
    • 즉, 이미 상장 폐지 정보를 미래 시점에서 확인하고, 해당 년도의 수익률을 nan으로 미리 메꾸어 버림(치명적)
  • Data availability(time alignment)
    • 각 투자지표의 값들이 공시 되는 시기
      • 년도별, 분기별
    • 정확한 상장폐지 날짜? 알수없음
  • Data acquisition
    • 고정된 과거데이터로만 테스트 하면 안됨 -> 계속 새로운 데이터에 대한 갱신 필요
    • 크롤링, 증권사 API, 유료 데이터 벤더 등 -> TODO
  • Data의 무결성
    • 아무리 증권사 API나 유로 벤더를 통해서 받아온 데이터라도, 문제가 있는 경우가 많음
    • 예를 들어, 일봉 OHLC -> C가 H보다 더 큰 경우 / 배당락, 주식분할 등의 이벤트가 제대로 반영이 안된 경우 등
    • 데이터의 결함, nunique==1, 비이상적인 값 등에 대한 EDA 필요
  • 데이터가 년도별로만 존재하기 때문에, 1년에 한번 수익률이 찍혀서 변동성, MDD를 제대로 파악하기 어려움
  • 거래세, 수수료 반영 X
    • 정확한 asset turnover 고려가 안됨
  • 기타 위 실전예제에서의 한계
    • 데이터의 cleaning, validation 필요
    • Missing value에 대한 전처리 필요
    • 주어진 데이터 존재하지 않는 지표(column)은 다른 지표로 대체한 점
  • 결론을 말하자면 데이터의 무결성이 손상…
  • 좋은 데이터를 얻는것이 핵심 -> TODO

Get Code


About Taehyung Kim

안녕하세요? 8년차 현업 C++ 개발자 김태형이라고 합니다. 😁 C/C++을 사랑하며 다양한 사람과의 협업을 즐깁니다. ☕ 꾸준한 자기개발을 미덕이라 생각하며 노력중이며, 제가 얻은 지식을 홈페이지에 정리 중입니다. 좀 더 상세한 제 이력서 혹은 Private 프로젝트 접근 권한을 원하신다면 메일주세요. 😎

Star
Useful Links