파이썬과 리액트를 활용한 주식 자동거래 시스템 구축

데이터 수집부터 거래 자동화, API 서버, 웹 개발, 데이터 분석까지 아우르는

자신만의 주식 시스템을 개발하고 운영해 보고 싶은 독자를 위해 준비했습니다!

파이썬을 이용해 데이터를 수집, 저장, 가공, 분석하는 방법부터 리액트를 이용해 사용자의 화면을 개발하는 방법까지 한 권에 담았다. 이 책을 차근차근 진행해 본다면 자신만의 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 사용법
    •  
  • ▣ 03: 데이터 수집
    • 3.1 증권사 API 이용한 주식 정보 수집
      • XASession 객체 구현
      • XAQuery 객체 구현
      • TR 기능 개발
    • 3.2 공공데이터 수집
      • 공공데이터 사용 신청
      • 공공데이터 수집 개발
    • 3.3 웹 크롤링
      • 크롤링의 이해
      • 웹 크롤러 개발
    • 3.4 데이터 마켓
      • Quandl
    •  
  • ▣ 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 클래스 구현
    •  
  • ▣ 05: 데이터 수집 및 트레이딩
    • 5.1 윈도우 스케줄링을 이용한 데이터 수집 실행
      • 스크립트 구현 및 스케줄러 등록
    • 5.2 파이썬 스케줄러
      • 스케줄러 구현
    • 5.3 트레이딩 모듈
      • 계좌 정보 API
      • 주식 주문 API
      • 트레이딩 모듈 구현
    • 5.4 백테스팅
      • 과거 데이터 조회 API
      • 백테스팅을 위한 xingACE
      • 트레이딩 로직의 백테스팅
    •  
  • ▣ 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 프로젝트 웹 개발
      • 종목 검색 화면 개발
    •  
  • ▣ 08: 데이터 가공 및 분석
    • 8.1 주피터 노트북(Jupyter Notebook)
      • 주피터 노트북 설치 및 실행
      • 주피터 노트북에서 새로운 폴더와 노트북 파일 생성
    • 8.2 판다스(pandas)
      • 판다스 설치 및 샘플 데이터 준비
      • 판다스로 EPS, PER 데이터 구하기
    • 8.3 회귀(Regression) 분석
      • 단순 선형 회귀(Simple Linear Regression)
      • 다중 선형 회귀(Multiple Linear Regression)
    •  
  • ▣ 09: 배포
    • 9.1 서버 준비
      • 마이크로소프트 에저(Azure)에서 서버 생성
    • 9.2 MongoDB 서버
      • 배포 전 준비
    • 9.3 REST API 서버의 배포
      • 에저 웹앱 배포
    • 9.4 리액트 애플리케이션 배포
      • 리액트 앱 빌드
      • http-server에 리액트 앱 배포
      • 에저에서 리액트 앱 배포
    •  
  • ▣ 10: 퀀트 전략
    • 10.1 NCAV 전략
      • NCAV 전략의 구현
    • 10.2 GP/A, PBR을 이용한 퀀트전략
      • 판다스를 이용한 고GP/A, 저PBR 퀀트 전략의 구현
    •  
  • ▣ 부록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