본문 바로가기

퀀트

[퀀트 프로젝트] 주가 데이터 크롤링

2. 목차

  • 파트 2로 주가데이터 크롤링에 대해서 살펴보겠습니다. 

2.1 수정주가

  • 기술 분석에 있어서는 원주가가 아닌 수정 주가 데이터를 사용해야 돼요!

  • 2018년 5월, 주가가 265만원에서 다음날 50분의 1인 5만 3000원으로 거래됐습니다.
    • 이런 상황을 무시하면 수익률이 -98%처럼 나타날 수 있습니다.
  • 하지만 액면분할은 기업 가치의 변화가 아닌, 단지 회계적인 조정이죠!
    • 이는 주식 가격을 낮춰 더 많은 투자자가 쉽게 접근할 수 있게 하고 거래량을 늘리는 효과가 있지만, 기업의 실제 가치에는 영향을 주지 않습니다.
    • 그래서 이런 이벤트를 고려하지 않고 투자 분석을 하면, 잘못된 수익률이 나올 수 있으니 주의해야 합니다.
    • 수정주가는 이런 이벤트를 고려해 이전 주가를 50으로 나누어 데이터의 연속성과 정확성을 보장해 보다 실제적인 가치 변화를 분석할 수 있게 해주죠!

2.2 주가 크롤링

  • 네이버 증권에서 삼성전자를 검색해서 차트를 봤습니다!
    • 2018년 이전에는 주가가 4~5만원대로 나타나 수정주가가 적용된 것을 확인했습니다.
    • 그리고 이 데이터를 사용해서 프로젝트를 거의 끝까지 진행했죠.
  • 하지만 나중에 이 데이터의 이상한 점을 발견하고야 말았습니다...

  • 네이버 증권 데이터를 활용해 지난 1년간 수익률이 좋았던 종목들을 뽑아봤습니다. (최근 1년간의 차트)
  • 그 중 KH필룩스, 피에이치씨, 아이오케이, The E&M, 상상인더스트리, BF랩스 등의 종목이 차트에서 직각으로 올라가는 부분을 볼 수 있습니다.
    • 그리고 수익률이 가장 좋은 종목들 중 하나라면 제가 들어는 봤어야 하는데, 모르는 종목들이 다수 포함되어 있어서 매우 의아했죠! 
  • BF랩스에 대해서 한번 살펴보겠습니다.

  • 왼쪽 삼성증권 HTS에서는 아까 본 직각으로 올라가는 부분을 볼 수 없었습니다.
  • 오른쪽 네이버 증권을 통해 7월에 감자(자본 감소)를 진행했다는 걸 알게 됐습니다.
    • 감자란 기업이 자본을 줄이는 것을 말합니다.
    • 이는 주식의 수를 줄임으로써 주당 가치를 높이는 방법 중 하나예요.
    • 하지만 이 과정은 회사의 실제 가치에는 변화를 주지 않기 때문에, 주가 차트에는 수정주가를 적용해야 하죠.
 
  • 그리고 보시다시피 이전 주가가 반영이 되지 않았다는 사실을 깨달았죠. (최근 데이터에만 그런건지, 액면분할만 수정주가를 적용한건지 의문입니다.)
     
  • 그래서 눈물을 머금고 데이터를 변경할 수밖에 없었습니다...

  • 한국거래소 정보데이터 시스템 내 주식 > 종목시세 > 개별종목 섹션을 통해 BF랩스의 감자 시점을 확인!
  • 수정주가가 적용된 것을 확인할 수 있으며, 수정주가 적용 체크박스도 확인
    • 감자 적용 시점인 6월 28일 이전의 영업일에 수정주가가 적용된 것을 확인할 수 있었습니다.

  • 네트워크 창을 열어서 조회 버튼을 클릭하고 네트워크 흐름을 살펴봅니다.
    • 쿼리 부분을 확인해 보니 대부분은 이미 모아둔 데이터로 입력할 수 있습니다.
    • 하지만, 주목해야 할 부분은 종목코드가 아닌 표준코드가 입력된 부분이에요.
    • 알고 보니, 종목코드는 표준코드를 줄여 만든 것이더라고요.
    • 그래서 이제 표준코드 데이터를 찾으러 가야합니다.
 
 
  • 다행히 표준코드도 한국거래소 정보데이터 시스템에서 찾아냈습니다!
    • 경로는 주식 > 종목정보 > 전주식 종목정보입니다.
  • 코딩을 통해 표준코드와 단축코드만을 추출하고 이전과 같이 kor_code 테이블을 정의하고 갱신을 진행했습니다.

 

  • 위와 같이 표준코드 데이터와 기존에 가지고 있던 기본 정보를 활용해 주가 데이터를 받아옵니다.
  • 데이터를 수집한 뒤에는 MYSQL에 주가 테이블을 정의하고, 그 안에 데이터를 갱신 시키면 완료!

5년 전부터의 주가데이터가 입력되있는 것을 확인!