파이썬 증권 데이터 분석 본문

Programming

파이썬 증권 데이터 분석

halatha 2020. 8. 23. 11:17

PART 1 파이썬 데이터 분석 기본

CHAPTER 1 증권 데이터 분석에 앞서

파이썬으로 증권 데이터를 분석하는 책이라는 목적을 명확히 한다. 일반적인 프로그래밍 책과 달리 증권의 역사와 투자 기법 등으로 시작하면서 놀랍게도 저자의 계좌를 공개한다. 고민이 많았을 거 같지만 이 책을 보는 사람들에겐 무엇보다 확실한 동기 부여 및 객관적인 성과 지표로 판단할 수 있을 거 같다.

CHAPTER 2 파이썬 프로그래밍

2장부터 비로소 여러가지 설치 방법을 알려주면서 보통의 프로그래밍 서적과 같은 모습을 보여준다. 다만 약간 다른 점이 있는데 32비트 윈도우용 설치 방법을 별도로 설명하는데, 국내 증권사의 API를 사용하기 위해 어쩔 수 없이 필요한 부분이다. 이후로는 기본적인 파이썬 문법 설명을 하고, 마지막에 requests와 matplotlib의 아주 기초적인 사용법을 보여준다.

CHAPTER 3 팬더스를 활용한 데이터 분석

야후 파이낸스 등을 사용해 여러가지 주가 분석과 관련된 예제를 사용한다는 점을 제외하면 pandas의 사용법을 알려주는 다른 책들과 큰 차이는 없다.

 CHAPTER 4 웹 스크레이핑을 사용한 데이터 분석

html 문법을 간단히 설명하고 beautifulsoup를 사용해 데이터를 가져와 분석하는 방법을 보여준다. 캔들 차트 등 역시 주가 분석에 관련된 부분만을 설명한다.

PART 2 파이썬 데이터 분석 응용

CHAPTER 5 시세 DB 구축 및 시세 조회 API 개발

분석을 위해 가져온 데이터를 MariaDB에 입력하고 조회하는 방법을 알려준다. 이번 장에서도 내용은 주가 분석에 관계되었으나 pymysql을 이용해 MariaDB를 사용하는 방법이 핵심이기 때문에 일반적인 DB 프로그래밍을 위해서만 봐도 좋은 내용이며, MariaDB가 MySQL 개발자가 만든 DB이기 때문에 거의 그대로 MySQL을 사용할 때도 활용할 수 있어 여러 모로 유용한 장이다.

CHAPTER 6 트레이딩 전략과 구현

여러가지 투자 방법을 코드로 구현한다. 이전까지는 모두 이번 장부터 하는 작업을 돕기 위한 보조적인 방법을 배우고 구현한 것이고, 이 책의 진정한 목표는 여기부터 시작한다. 현대 포트폴리오 이론, 샤프 지수, 볼린더 밴드 지표, 이동 평균, 스토캐스틱, 모멘텀등 여러가지 다양한 기법을 간단히 설명하고 구현 코드를 보여준다. 금융, 주식 쪽으로는 아는 바가 없어 자세히는 모르겠지만, 아마도 기본적이며 대표적인 몇 가지 기법을 가져와서 설명하는 걸로 보인다.

CHAPTER 7 장고 웹 서버 구축 및 자동화

장고 서버와 슬랙 API를 사용하는 방법과 백트레이더 라이브러리로 백테스트를 하는 방법을 설명한다. 백테스트라는 건 과거의 데이터를 기반으로 사용하는 전략이 효과적인지 검증하는 방법인데, 과거 데이터가 기반이기 때문에 테스트 결과가 좋게 나온다고 해서 실제로 꼭 성공한다는 보장은 없다. 하지만 과거 데이터가 많을수록 성공에 가까울 확률이 높아지기는 한다. 저자의 설명에 따르면 벡테스트용 라이브러리가 여러가지가 있으나, 백트레이더가 문서화가 잘 되어 있고 다른 라이브러리보다 사용하기 쉬워서 선택했다고 한다. 상대적 강도 지수 RSI와 커틀러 RSI라는 방법을 이용해 엔씨소프트 주식을 매매했을 때의 테스트 결과를 코드로 구현한다.

CHAPTER 8 변동성 돌파 전략과 자동매매

크레온 플러스라는 대신증권 API와 pywinauto, selenium 여러가지 파이썬 라이브러리를 이용해 ETF 종목을 자동으로 거래하는 코드를 작성한다. ETF 정보 스크래핑, 매수 목표가 계산, 이동 평균값 조회, 주식 매수/매도를 모두 코드로 구현하고 작업 스케쥴러에 등록해 특정 시간에 작업을 자동으로 반복해서 실행시키며 변동성 돌파 전략을 구현한다. 역시 앞선 장들과 마찬가지로 금융에 관계된 부분을 제외하면 selenium을 이용하는 웹 스크래핑이나, pywinauto를 이용한 자동화 작업 등은 일반적인 업무에서도 매우 유용한 라이브러리이다.

CHAPTER 9 딥러닝을 이용한 주가 예측

경사 하강법을 포함해 기초적인 딥러닝에 대한 설명을 하고, 텐서플로우의 Keras API로 RNN으로 삼성전자의 다음 날 주가를 예측하는 코드를 작성하는데, 앞선 장들에 비해 설명이 조금 단순하다는 생각이 든다. 아마 저자가 아직 이 부분은 앞선 장들에 비해 공부나 연구를 진행중이지 않나 싶다.

400페이지가 넘는 책이지만 워낙 방대한 내용을 다루기 때문에 하나하나 자세하게 설명한다는 생각이 들지 않는다. 아마 초보자라면 각 장마다 쏟아지는 새로운 내용에 압도당할 지도 모르겠다. 하지만 금융과 프로그래밍 어느 한쪽이라도 경험이 있는 사람이라면 저자가 이 많은 내용을 익히기 위해 얼마나 많은 노력을 했을까 하는 생각이 먼저 들꺼라고 조심스레 장담한다. 또한 앞서 계속 말했듯이 금융에 대한 내용을 제외하고 나면 굉장히 많은 유용한 라이브러리의 사용방법을 실제 코드와 함께 볼 수 있기 때문에 금융이 아니라도 여러가지 업무에 적용하는데 큰 도움이 될 거라 생각한다.

Ref

INVESTAR/StockAnalysisInPython

Comments