자신만의 주식 시스템을 개발하고 운영해 보고 싶은 독자를 위해 준비했습니다!
파이썬을 이용해 데이터를 수집, 저장, 가공, 분석하는 방법부터 리액트를 이용해 사용자의 화면을 개발하는 방법까지 한 권에 담았다. 이 책을 차근차근 진행해 본다면 자신만의 HTS를 만들어 볼 수 있을 것이다.
★ 이 책에서 다루는 내용 ★
- 증권사(이베스트)에서 제공하는 API를 이용해 파이썬으로 거래 자동화 시스템을 개발한다.
- 외부로 기능을 제공하기 위한 Restful API 서버를 구현한다.
- 리액트를 이용해 웹과 앱에 필요한 화면을 만들어 본다.
- 데이터 분석에 필요한 기본적인 방법을 익히고, 퀀트 전략을 구현해 본다.
도서 상세 이미지
박재현
개발을 좋아하며 잘하고 싶은 개발자입니다. 개발자의 제1 덕목은 배움이라는 신념으로 새로운 것을 배우는 데 주저하지 않으려 노력하고 있습니다. 몇 년 동안 포탈 개발, 하둡, 스파크, MongoDB, Redis 셋업 및 사내 시스템 연계 등 다양한 업무를 맡아 진행했고, 최근 서울대학교 데이터 사이언티스트 교육 과정을 수료했습니다. 현재는 파이썬, 타입스크립트, 자바스크립트, 리액트 기반의 사내 메신저 개발 업무를 리딩하고 있습니다.
- ▣ 01: 주식 자동 거래 시스템 프로젝트
- 1.1 프로젝트 소개
- 1.2 프로젝트의 목표
- 1.3 프로젝트에 진행에 필요한 사항
- 1.4 책의 구성
- 1.5 책에서 다루지 않는 내용
- 1.6 개발 환경 구성
- 파이썬 설치 및 가상 환경 구성
- 파이썬 가상 환경 만들기
- 비주얼 스튜디오 코드 설치 및 실행
- 1.7 통합 개발 환경(IDE) - 비주얼 스튜디오 코드
- ▣ 02: 프로젝트 시작하기
- 2.1 시스템의 구조 및 설정
- 전체 시스템의 구성
- 프로젝트 모듈 구성
- 프로젝트 패키지 구성
- 2.2 프로젝트 초기 환경 설정
- 2.3 증권사 Open API
- 이베스트 투자증권
- xingAPI 사용법
- 2.1 시스템의 구조 및 설정
- ▣ 03: 데이터 수집
- 3.1 증권사 API 이용한 주식 정보 수집
- XASession 객체 구현
- XAQuery 객체 구현
- TR 기능 개발
- 3.2 공공데이터 수집
- 공공데이터 사용 신청
- 공공데이터 수집 개발
- 3.3 웹 크롤링
- 크롤링의 이해
- 웹 크롤러 개발
- 3.4 데이터 마켓
- Quandl
- 3.1 증권사 API 이용한 주식 정보 수집
- ▣ 04: 데이터베이스를 이용한 데이터의 저장, 삭제, 업데이트, 가공
- 4.1 MongoDB 설치 및 개발환경 구성
- MongoDB 설치 및 서버 실행
- 문서(Document), 컬렉션(Collection), 데이터베이스(Database)
- MongoDB의 저장 공간 생성
- 4.2 MongoDB의 기본적인 명령어
- 데이터 생성(Create)
- 데이터 조회(Read)
- 데이터 변경(Update)
- 데이터 삭제(Delete)
- 4.3 MongoDB의 다양한 명령어
- 배열(Array) 관련 명령어
- 데이터 집계(Aggregation) 관련 명령어
- 텍스트 탐색(Text Search)
- 4.4 데이터의 가공을 지원하는 모듈
- 접속 정보 설정 및 PyMongo 설치
- MongoDBHandler 클래스 구현
- 4.1 MongoDB 설치 및 개발환경 구성
- ▣ 05: 데이터 수집 및 트레이딩
- 5.1 윈도우 스케줄링을 이용한 데이터 수집 실행
- 스크립트 구현 및 스케줄러 등록
- 5.2 파이썬 스케줄러
- 스케줄러 구현
- 5.3 트레이딩 모듈
- 계좌 정보 API
- 주식 주문 API
- 트레이딩 모듈 구현
- 5.4 백테스팅
- 과거 데이터 조회 API
- 백테스팅을 위한 xingACE
- 트레이딩 로직의 백테스팅
- 5.1 윈도우 스케줄링을 이용한 데이터 수집 실행
- ▣ 06: REST API 서버
- 6.1 서버와 앱이 통신하기 위한 RESTFul 서비스 디자인
- 6.2 프로젝트의 REST API 디자인
- 플라스크를 활용한 REST API 서버
- 주식 종목 정보 API
- 주식 가격 정보 및 주문 정보 API
- API 서버의 테스트 케이스
- ▣ 07: 리액트를 이용한 프로젝트의 화면 구현
- 7.1 리액트(React)란?
- Material UI
- 개발 환경 설정 및 리액트 앱 생성
- 리액트 앱의 기본 구성
- 7.2 리액트 메인 컨셉
- 컴포넌트 구성 및 렌더링
- 이벤트 핸들링과 리프팅 스테이트 업
- 개발 화면 디자인
- 7.3 프로젝트 웹 개발
- 종목 검색 화면 개발
- 7.1 리액트(React)란?
- ▣ 08: 데이터 가공 및 분석
- 8.1 주피터 노트북(Jupyter Notebook)
- 주피터 노트북 설치 및 실행
- 주피터 노트북에서 새로운 폴더와 노트북 파일 생성
- 8.2 판다스(pandas)
- 판다스 설치 및 샘플 데이터 준비
- 판다스로 EPS, PER 데이터 구하기
- 8.3 회귀(Regression) 분석
- 단순 선형 회귀(Simple Linear Regression)
- 다중 선형 회귀(Multiple Linear Regression)
- 8.1 주피터 노트북(Jupyter Notebook)
- ▣ 09: 배포
- 9.1 서버 준비
- 마이크로소프트 에저(Azure)에서 서버 생성
- 9.2 MongoDB 서버
- 배포 전 준비
- 9.3 REST API 서버의 배포
- 에저 웹앱 배포
- 9.4 리액트 애플리케이션 배포
- 리액트 앱 빌드
- http-server에 리액트 앱 배포
- 에저에서 리액트 앱 배포
- 9.1 서버 준비
- ▣ 10: 퀀트 전략
- 10.1 NCAV 전략
- NCAV 전략의 구현
- 10.2 GP/A, PBR을 이용한 퀀트전략
- 판다스를 이용한 고GP/A, 저PBR 퀀트 전략의 구현
- 10.1 NCAV 전략
- ▣ 부록A: 형상 관리
- A.1 형상 관리 도구의 개념
- A.2 깃(Git)과 깃허브(GitHub)
- ▣ 부록B: 리액트의 다양한 오픈소스 프로젝트
- B.1 React-bootstrap
- B.2 Font Awesome
- ▣ 부록C: 비주얼 스튜디오 코드 플러그인
- C.1 REST Client
- C.2 React snippets
- GitHub 저장소: https://github.com/wikibook/stock-trading
- ZIP 형식으로 다운로드: https://github.com/wikibook/stock-trading/archive/master.zip