파이썬과 케라스를 이용한 딥러닝/강화학습 주식투자(개정판)

퀀트 투자, 알고리즘 트레이딩을 위한 최첨단 해법 입문

실제 주식 데이터를 이용해 파이썬으로 강화학습 주식투자 프로그램을 직접 구현해 봅니다!

강화학습은 스스로 학습하는 머신러닝 기법으로 주식 데이터 학습에 잘 적용되는 기법입니다. 이 책은 파이썬을 이용한 강화학습 기반의 주식투자 시뮬레이션 프로그램 개발에 대해 설명합니다. 이를 위한 이론과 코드 수준의 상세한 설명을 수록했습니다. 이 책을 통해 딥러닝과 강화학습을 이해하고 주식투자를 비롯한 다양한 도메인에서 활용할 수 있을 것입니다.

 

★ 이 책에서 다루는 내용 ★

  • 딥러닝과 강화학습의 이론
  • 주식투자에 강화학습을 적용하는 방법
  • 강화학습 기반의 주식투자 시스템 개발 방법
  • 강화학습을 위한 실제 주식 데이터 획득 및 처리 방법
  • 강화학습으로 주식 데이터를 학습하는 방법
  • 학습한 강화학습 모델을 활용하는 방법
  • 강화학습 주식투자 시스템 커스터마이징 방법

 

도서 상세 이미지

퀀티랩

퀀티랩(Quantylab)은 금융 데이터 분석 그룹입니다. 머신러닝, 딥러닝, 강화학습 등의 다양한 기술을 연구하고 금융 데이터를 분석하여 금융 투자에 도움이 될 의미 있는 정보를 만들어 내기 위해 노력하고 있습니다. 최근에는 이 책에서 다루고 있는 ‘파이썬 기반의 강화학습 주식투자 프로젝트’와 더불어 ‘딥러닝 주식 포트폴리오 관리 프로젝트’, ‘자동 주식투자 시스템 개발 프로젝트’ 등을 진행하고 있습니다. 관련 프로젝트 일부를 퀀티랩 Github에서 공유하고 금융 데이터 분석 결과를 퀀티랩 웹사이트와 퀀티랩 블로그에서 제공하고 있습니다.

  • ▣ 01장: 배경 이론 1 - 딥러닝이란?
    • 1.1 금융 데이터란?
    • 1.2 금융 데이터 분석의 필요성
    • 1.3 금융 데이터 분석 방법
      • 1.3.1 기본적 분석
      • 1.3.2 기술적 분석
      • 1.3.3 정서 분석
      • 1.3.4 종합 분석
    • 1.4 전통적인 퀀트투자 방법
      • 1.4.1 퀀트투자 역사
      • 1.4.2 저 PER+저 PBR+저 PCR 전략
      • 1.4.3 조셉 피오트로스키 F-Score
    • 1.5 퀀트투자 트렌드
    • 1.6 포트폴리오 평가
    • 1.7 이번 장의 요점
    •  
  • **▣ 02장: 배경 이론 2 - 딥러닝이란? **
    • 2.1 딥러닝 개요
      • 2.1.1 딥러닝의 정의와 역사
      • 2.1.2 딥러닝이 최근에 주목받는 이유
      • 2.1.3 딥러닝으로 풀고자 하는 문제
    • 2.2 딥러닝 발전 과정
      • 2.2.1 퍼셉트론
      • 2.2.2 인공 신경망
      • 2.2.3 다양한 활성화 함수 출현
      • 2.2.4 출력층에서 활성화 함수를 사용
      • 2.2.5 심층 신경망
    • 2.3 딥러닝에 필요한 핵심 기술
      • 2.3.1 오차 역전파 기법
      • 2.3.2 최적해 탐색 기법
      • 2.3.3 과적합 해결 기법
    • 2.4 고급 인공 신경망 구조
      • 2.4.1 순환 신경망
      • 2.4.2 LSTM 신경망
      • 2.4.3 합성곱 신경망
    • 2.5 딥러닝 적용 사례
      • 2.5.1 기계 번역
      • 2.5.2 음성 인식
      • 2.5.3 이미지 인식
    • 2.6 이번 장의 요점
    •  
  • **▣ 03장: 배경 이론 3 - 강화학습이란? **
    • 3.1 강화학습의 기초가 된 마르코프 의사 결정 과정
      • 3.1.1 마르코프 가정
      • 3.1.2 마르코프 과정
      • 3.1.3 마르코프 의사 결정과정
    • 3.2 상태 가치 함수와 상태-행동 가치 함수
      • 3.2.1 상태 가치 함수(state-value function)
      • 3.2.2 상태-행동 가치 함수(action-value function)
    • 3.3 벨만 방정식(Bellman equation)
      • 3.3.1 벨만 기대 방정식(Bellman expectation equation)
      • 3.3.2 벨만 최적 방정식(Bellman optimality equation)
    • 3.4 MDP를 위한 동적 프로그래밍(dynamic programming)
      • 3.4.1 정책 반복(policy iteration)
      • 3.4.2 가치 반복(value iteration)
      • 3.4.3 동적 프로그래밍의 한계와 강화학습이 필요한 이유
    • 3.5 주요 강화학습 개념
      • 3.5.1 강화학습 표기법(notation)
      • 3.5.2 Model-based vs. Model-free
      • 3.5.3 예측(prediction)과 제어(control)
      • 3.5.4 부트스트랩(bootstrap)
      • 3.5.5 On-policy vs. Off-policy
      • 3.5.6 이용(exploitation)과 탐험(exploration)
    • 3.6 주요 강화학습 기법
      • 3.6.1 몬테카를로 학습(Monte-Carlo learning, MC)
      • 3.6.2 시간차 학습(temporal-difference learning, TD)
      • 3.6.3 Q-러닝(Q-learning, QL)과 DQN(deep Q-network)
      • 3.6.4 정책 경사(policy gradient, PG)
      • 3.6.5 액터-크리틱
      • 3.6.6 A2C(advantage actor-critic)
      • 3.6.7 A3C(asynchronous advantage actor-critic)
    • 3.6.8 주요 강화학습 기법 정리
    • 3.7 강화학습 적용 사례
      • 3.7.1 벽돌 깨기
      • 3.7.2 알파고
    • 3.8 이번 장의 요점
    •  
  • **▣ 04장: 배경 이론 4 - 강화학습을 이용한 주식투자란? **
    • 4.1 직관적으로 강화학습 전략 알아보기
      • 4.1.1 강화학습을 이용한 주식투자 구조
      • 4.1.2 차트 데이터 이해하기
      • 4.1.3 차트 데이터를 바탕으로 강화학습을 하는 방식
      • 4.1.4 거래 수수료와 거래세
      • 4.1.5 무작위 행동 결정(탐험)과 무작위 행동 결정 비율(엡실론)
    • 4.2 강화학습 효과를 차별화하는 요인들
      • 4.2.1 차별화 요인 1: 학습 데이터 구성
      • 4.2.2 차별화 요인 2: 지연 보상 임곗값
      • 4.2.3 차별화 요인 3: 행동 종류
      • 4.2.4 차별화 요인 5: 신경망
      • 4.2.5 차별화 요인 6: 강화학습 기법
    • 4.3 차트 데이터와 학습 데이터 살펴보기
      • 4.3.1 차트 데이터
      • 4.3.2 학습 데이터
    • 4.4 주식투자 강화학습 절차(process)
      • 4.4.1 주식투자 강화학습 순서도
      • 4.4.2 행동 결정
      • 4.4.3 결정된 행동 수행
      • 4.4.4 배치 학습 데이터 생성 및 신경망 업데이트
    • 4.5 주식투자 강화학습 과정 및 결과 확인 방법
      • 4.5.1 강화학습 과정 확인의 필요성
      • 4.5.2 강화학습 과정을 로그로 남기기
      • 4.5.3 강화학습 과정을 이미지로 가시화하기
    • 4.6 이번 장의 요점
    •  
  • **▣ 05장: 모듈 개발 - 강화학습 기반 주식투자 시스템 개발 **
    • 5.1 RLTrader 개발에 필요한 환경
      • 5.1.1 아나콘다 설치
      • 5.1.2 텐서플로 설치
      • 5.1.3 plaidML 설치
    • 5.2 RLTrader의 설계
      • 5.2.1 모듈 구조
      • 5.2.2 디렉터리 구조
      • 5.2.3 클래스 다이어그램
      • 5.2.4 환경 모듈 개요
      • 5.2.5 에이전트 모듈 개요
      • 5.2.6 강화학습 학습기 모듈 개요
      • 5.2.7 신경망 모듈개요
      • 5.2.8 가시화 모듈개요
      • 5.2.9 학습기 모듈 개요
      • 5.2.10 실행 모듈 개요
      • 5.2.11 기타 모듈
    • 5.3 환경 모듈 개발
      • 5.3.1 환경 모듈의 주요 속성과 함수
      • 5.3.2 코드 조각: 환경 클래스
    • 5.4 에이전트 모듈 개발
      • 5.4.1 에이전트 모듈의 주요 속성과 함수
      • 5.4.2 코드 조각 1: 에이전트 클래스의 상수 선언
      • 5.4.3 코드 조각 2: 에이전트 클래스의 생성자
      • 5.4.4 코드 조각 3: 에이전트 클래스의 함수
    • 5.5 신경망 모듈 개발
      • 5.5.1 신경망 모듈의 주요 속성과 함수
      • 5.5.2 코드 조각 1: 신경망 클래스
      • 5.5.3 코드 조각 2: DNN 클래스
      • 5.5.4 코드 조각 3: LSTMNetwork 클래스
      • 5.5.5 코드 조각 4: CNN 클래스
    • 5.6 가시화 모듈 개발
      • 5.6.1 가시화 모듈의 주요 속성과 함수
      • 5.6.2 가시화 모듈이 만들어 내는 정보
      • 5.6.3 코드 조각 1: 가시화기 클래스의 생성자
      • 5.6.4 코드 조각 2: 가시화 준비 함수
      • 5.6.5 코드 조각 3: 가시화 함수
      • 5.6.6 코드 조각 4: 가시화 정보 초기화 및 결과 저장 함수
    • 5.7 학습기 모듈 개발
      • 5.7.1 학습기 모듈의 주요 속성과 함수
      • 5.7.2 코드 조각 1: 학습기 모듈의 의존성 임포트
      • 5.7.3 코드 조각 2: 학습기 클래스의 생성자
      • 5.7.4 코드 조각 3: 가치 신경망 생성 함수
      • 5.7.5 코드 조각 4: 정책 신경망 생성 함수
      • 5.7.6 코드 조각 5: 에포크 초기화 함수
      • 5.7.7 코드 조각 6: 가치 신경망 및 정책 신경망 학습
      • 5.7.8 코드 조각 7: 에포크 결과 가시화
      • 5.7.9 코드 조각 8: 강화학습 실행 함수
      • 5.7.10 코드 조각 9: DQN 강화학습 클래스
      • 5.7.11 코드 조각 10: 정책 경사 강화학습 클래스
      • 5.7.12 코드 조각 11: 액터-크리틱 강화학습 클래스
      • 5.7.13 코드 조각 12: A2C 강화학습 클래스
      • 5.7.14 코드 조각 13: A3C 강화학습 클래스
    • 5.8 데이터 관리 모듈 개발
      • 5.8.1 코드 조각 1: 자질 벡터 정의
      • 5.8.2 코드 조각 2: 데이터 전처리 함수
      • 5.8.3 코드 조각 3: 차트 데이터 및 학습 데이터 로드 함수
    • 5.9 강화학습 주식투자 실행 모듈 개발
      • 5.9.1 코드 조각 1: 프로그램 인자 설정
      • 5.9.2 코드 조각 2: 강화학습 설정
      • 5.9.3 코드 조각 2: 강화학습 실행
    • 5.10 기타 모듈 개발
      • 5.10.1 코드 조각 1: 설정 모듈
      • 5.10.2 코드 조각 2: 유틸리티 모듈
    • 5.11 개발 참여
    • 5.12 이번 장의 요점
    •  
  • **▣ 06장: 데이터 준비 - 주식 데이터 획득 **
    • 6.1 방법 1. 증권사 HTS 사용
      • 6.1.1 증권사 HTS 다운로드
      • 6.1.2 증권 계좌 개설
      • 6.1.3 종목 차트 데이터 확인
      • 6.1.4 일별 데이터 엑셀 파일 저장
    • 6.2 방법 2. 증권사 API 사용
      • 6.2.1 증권사 API 설치
      • 6.2.2 대신증권 크레온 API 사용 환경 준비
      • 6.2.3 대신증권 크레온 HTS 실행
      • 6.2.4 대신증권 크레온 API를 이용한 차트 데이터 획득 프로그램 작성
    • 6.3 방법 3. 웹 크롤링(web crawling)
      • 6.3.1 pandas-datareader, fix_yahoo_finance 설치하기
      • 6.3.2 Google Finance에서 주식 데이터 획득하기
      • 6.3.3 Yahoo Finance에서 주식 데이터 획득하기
      • 6.3.4 금융 포털
    • 6.4 데이터 요청
    • 6.5 이번 장의 요점
    •  
  • **▣ 07장: 모델 구축 - 주식투자 강화학습 **
    • 7.1 강화학습 실행
      • 7.1.1 DQN/PG/AC/A2C 강화학습 + DNN 신경망
      • 7.1.2 DQN/PG/AC/A2C 강화학습 + LSTM/CNN 신경망
      • 7.1.3 A3C 강화학습 + DNN 신경망
      • 7.1.4 A3C 강화학습 + LSTM/CNN 신경망
    • 7.2 강화학습 과정 및 결과 확인
      • 7.2.1 콘솔에 출력되는 로그의 의미
      • 7.2.2 가시화 결과가 저장되는 그림 파일
    • 7.3 학습이 잘 되지 않을 때의 체크리스트
    • 7.4 이번 장의 요점
    •  
  • **▣ 08장: 모델 검증 - 주식투자 시뮬레이션 **
    • 8.1 투자 시뮬레이션 결과 1: 삼성전자(005930)
    • 8.2 투자 시뮬레이션 결과 2: LG화학(051910)
    • 8.3 투자 시뮬레이션 결과 3: 현대차(005380)
    • 8.4 투자 시뮬레이션 결과 정리 및 원숭이 투자와의 비교
    • 8.5 이번 장의 요점
    •  
  • **▣ 09장: 모델 활용 - 학습된 강화학습 모델을 이용한 주식투자 시뮬레이션 **
    • 9.1 모델 학습과 모델 활용의 차이점
    • 9.2 학습된 정책 신경망 모델을 사용한 투자 시뮬레이션
      • 9.2.1 학습된 모델 적용 1: 삼성전자(005930)
      • 9.2.2 학습된 모델 적용 2: LG화학(051910)
      • 9.2.3 학습된 모델 적용 3: 현대차(005380)
      • 9.2.4 총평
    • 9.3 투자 시뮬레이션 결과 정리 및 원숭이 투자와의 비교
    • 9.4 이번 장의 요점
    •  
  • **▣ 10장: 기본 용어 정리 **
    • 10.1 파이썬 프로그래밍 기본 용어 정리
    • 10.2 머신러닝 기본 용어 정리
    • 10.3 주식 기본 용어 정리
    •  
  • **▣ 11장: RLTrader 커스터마이징 **
    • 11.1 에이전트 모듈 커스터마이징
      • 11.1.1 코드 조각 1: 매매 수수료 및 세금 커스터마이징 사례
      • 11.1.2 코드 조각 2: 행동 결정 로직 커스터마이징 사례
    • 11.2 신경망 모듈 커스터마이징
      • 11.2.1 코드 조각 1: 레이어 차원이나 드롭아웃 확률 커스터마이징 사례
      • 11.2.2 코드 조각 2: 최적화 방법 커스터마이징 사례
    • 11.3 강화학습 학습기 커스터마이징
      • 11.3.1 코드 조각 1: 배치 학습 데이터 생성 커스터마이징 사례
      • 11.3.2 코드 조각 2: 미니 배치 학습 비활성화 커스터마이징 사례
    • 11.4 학습 데이터 커스터마이징
      • 11.4.1 ‘기관 순매수’ 및 ‘외국인 순매수’ 데이터 획득 사례
      • 11.4.2 코드 조각 1: 주식 데이터 전처리 커스터마이징 사례
      • 11.4.3 코드 조각 2: 학습 데이터 자질 구성 커스터마이징 사례
    •  
  • **▣ 12장: 딥러닝에서 TensorFlow+GPU 사용하기 **
    • 12.1 GPU 사용을 위한 하드웨어 준비
      • 12.1.1 그래픽카드 인식 확인
      • 12.1.2 호환되는 그래픽카드 확인
    • 12.2 GPU 사용을 위한 소프트웨어 준비
      • 12.2.1 CUDA 툴킷 설치
      • 12.2.2 cuDNN 라이브러리 설치
      • 12.2.3 TensorFlow의 GPU 사용 최종 확인
    •  
  • **▣ 13장: 딥러닝에서 plaidML+GPU 사용하기 **
    • 13.1 plaidML 사용을 위한 Visual C++ 2015 설치
    • 13.2 plaidML 설치 및 확인
  • 판권지, [예제 파일 다운로드]의 예제 파일 URL

    예제 파일: https://github.com/quantylab
    

    ==>

    예제 파일: https://github.com/quantylab/rltrader
    
  • 판권지, 페이지 하단의 저작권 표기

    Copyright © 2020 by 퀀티랩

    ==>

    Copyright © 2020 by 주식회사 미손

  • 내지 표지, 저자명

    김문권 지음

    ==>

    퀀티랩 지음

  • VI쪽, 목차의 1장

    배경 이론 1: 딥러닝이란?

    ==>

    배경 이론 1: 금융 데이터 분석