파이썬을 이용한 딥러닝/강화학습 주식투자
도서명:파이썬을 이용한 딥러닝/강화학습 주식투자
저자/출판사:퀀티랩/위키북스
쪽수:352쪽
출판일:2022-03-30
ISBN:9791158393205
목차
▣ 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 벨만 방정식
___3.3.1 벨만 기대 방정식(Bellman expectation equation)
___3.3.2 벨만 최적 방정식(Bellman optimality equation)
3.4 MDP를 위한 동적 프로그래밍
___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 알파고(AlphaGo)
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 차별화 요인 4: 신경망
___4.2.5 차별화 요인 5: 강화학습 기법
4.3 차트 데이터와 학습 데이터 살펴보기
___4.3.1 차트 데이터
___4.3.2 학습 데이터
4.4 주식투자 강화학습 절차
___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 PyTorch 설치
___5.1.3 텐서플로 설치
___5.1.4 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 신경망 구조
___5.5.3 신경망 모듈의 주요 속성과 함수
___5.5.4 코드 조각: 딥러닝 프레임워크에 따라 신경망 모듈 구현체 선택
5.6 PyTorch를 이용한 신경망 모듈 개발
___5.6.1 코드 조각 1: PyTorch 등의 의존성 임포트
___5.6.2 코드 조각 2: PyTorch를 이용한 Network 클래스
___5.6.3 코드 조각 3: PyTorch를 이용한 DNN 클래스
___5.6.4 코드 조각 4: PyTorch를 이용한 LSTMNetwork 클래스
___5.6.5 코드 조각 5: PyTorch를 이용한 CNN 클래스
5.7 Keras를 이용한 신경망 모듈 개발
___5.7.1 코드 조각 1: Keras를 이용한 Network 클래스
___5.7.2 코드 조각 2: Keras를 이용한 DNN 클래스
___5.7.3 코드 조각 3: Keras를 이용한 LSTMNetwork 클래스
___5.7.4 코드 조각 4: Keras를 이용한 CNN 클래스
5.8 가시화 모듈 개발
___5.8.1 가시화 모듈의 주요 속성과 함수
___5.8.2 가시화 모듈이 만들어 내는 정보
___5.8.3 코드 조각 1: 가시화기 클래스의 생성자
___5.8.4 코드 조각 2: 가시화 준비 함수
___5.8.5 코드 조각 3: 가시화 함수
___5.8.6 코드 조각 4: 가시화 정보 초기화 및 결과 저장 함수
5.9 학습기 모듈 개발
___5.9.1 학습기 모듈의 주요 속성과 함수
___5.9.2 코드 조각 1: 학습기 모듈의 의존성 임포트
___5.9.3 코드 조각 2: 학습기 클래스의 생성자
___5.9.4 코드 조각 3: 가치 신경망 생성 함수
___5.9.5 코드 조각 4: 정책 신경망 생성 함수
___5.9.6 코드 조각 5: 에포크 초기화 함수
___5.9.7 코드 조각 6: 가치 신경망 및 정책 신경망 학습
___5.9.8 코드 조각 7: 에포크 결과 가시화
___5.9.9 코드 조각 8: 강화학습 실행 함수
___5.9.10 코드 조각 9: DQN 강화학습 클래스
___5.9.11 코드 조각 10: 정책 경사 강화학습 클래스
___5.9.12 코드 조각 11: Actor-Critic 강화학습 클래스
___5.9.13 코드 조각 12: A2C 강화학습 클래스
___5.9.14 코드 조각 13: A3C 강화학습 클래스
5.10 데이터 관리 모듈 개발
___5.10.1 코드 조각 1: 자질 벡터 정의
___5.10.2 코드 조각 2: 데이터 전처리 함수
___5.10.3 코드 조각 3: 차트 데이터 및 학습 데이터 로드 함수
5.11 강화학습 주식투자 실행 모듈 개발
___5.11.1 코드 조각 1: 프로그램 인자 설정
___5.11.2 코드 조각 2: 파라미터 설정
___5.11.3 코드 조각 3: 강화학습 설정
___5.11.4 코드 조각 4: 강화학습 실행
5.12 기타 모듈 개발
___5.12.1 코드 조각 1: 설정 모듈
___5.12.2 코드 조각 2: 유틸리티 모듈
5.13 개발 참여
5.14 이번 장의 요점
▣ 06장: 데이터 준비 - 주식 데이터 획득
6.1 방법 1. 증권사 HTS 사용
___6.1.1 증권사 HTS 다운로드
___6.1.2 증권 계좌 개설
___6.1.3 종목 차트 데이터 확인
___6.1.4 엑셀에서 일별 데이터 CSV 파일 저장
6.2 방법 2. 증권사 API 사용
___6.2.1 증권사 API 설치
___6.2.2 대신증권 크레온 API 사용 환경 준비
___6.2.3 대신증권 크레온 HTS 실행
___6.2.4 대신증권 크레온 API를 이용한 차트 데이터 획득 프로그램 작성
6.3 방법 3. 웹 크롤링
___6.3.1 pandas-datareader로 주식 데이터 획득하기
___6.3.2 금융 포털 크롤링으로 주식 데이터 획득하기
6.4 방법 4. 퀀티랩 데이터베이스 사용
6.5 이번 장의 요점
▣ 07장: 강화학습 실행
7.1 RLTrader 실행 방법
___7.1.1 학습 모드 실행 방법
___7.1.2 테스트 모드 실행 방법
___7.1.3 업데이트 모드 실행 방법
___7.1.4 예측 모드 실행 방법
___7.1.5 강화학습 과정 및 결과 확인
___7.1.6 학습이 잘 되지 않을 때의 체크리스트
7.2 학습 모드 예시
___7.2.1 학습 모드 결과 1: 삼성전자(005930)
___7.2.2 학습 모드 결과 2: 현대차(005380)
___7.2.3 학습 모드 결과 3: 카카오(035720)
___7.2.4 학습 모드 결과 정리 및 원숭이 투자와의 비교
7.3 테스트 모드 예시
___7.3.1 테스트 모드의 특징
___7.3.2 테스트 모드 결과 1: 삼성전자(005930)
___7.3.3 테스트 모드 결과 2: 현대차(005380)
___7.3.4 테스트 모드 결과 3: 카카오(035720)
___7.3.5 테스트 모드 결과 정리 및 원숭이 투자와의 비교
7.4 업데이트 모드 예시
___7.4.1 업데이트 모드의 특징
___7.4.2 업데이트 모드 결과 1: 삼성전자(005930)
___7.4.3 업데이트 모드 결과 2: 현대차(005380)
___7.4.4 업데이트 모드 결과 3: 카카오(035720)
___7.4.5 업데이트 모드 결과 정리 및 원숭이 투자와의 비교
7.5 예측 모드 예시
___7.5.1 예측 모드의 특징
___7.5.2 예측 모드 결과 1: 삼성전자(005930)
___7.5.3 예측 모드 결과 2: 현대차(005380)
___7.5.4 예측 모드 결과 3: 카카오(035720)
7.6 이번 장의 요점
▣ 08장: RLTrader 커스터마이징
8.1 에이전트 모듈 커스터마이징
___8.1.1 코드 조각 1: 매매 수수료 및 세금 커스터마이징 사례
___8.1.2 코드 조각 2: 행동 결정 로직 커스터마이징 사례
8.2 신경망 모듈 커스터마이징
___8.2.1 코드 조각 1: 신경망 커스터마이징 사례
___8.2.2 코드 조각 2: 최적화 방법 커스터마이징 사례
___8.2.3 코드 조각 3: 공유 신경망 적용 커스터마이징 사례
8.3 강화학습 학습기 커스터마이징
___8.3.1 코드 조각 1: 배치 학습 데이터 생성 커스터마이징 사례
___8.3.2 코드 조각 2: 가시화 파일 생성 수 조절
8.4 학습 데이터 커스터마이징
___8.4.1 ‘기관 순매수’ 및 ‘외국인 순매수’ 데이터 획득 사례
___8.4.2 코드 조각 1: 주식 데이터 전처리 커스터마이징 사례
___8.4.3 코드 조각 2: 학습 데이터 자질 구성 커스터마이징 사례
▣ 부록A: 프로그래밍, 머신러닝, 주식투자 용어
A.1 파이썬 프로그래밍 기본 용어 정리
A.2 머신러닝 기본 용어 정리
A.3 주식 기본 용어 정리
▣ 부록B: 딥러닝에서 TensorFlow+GPU 사용하기
B.1 GPU 사용을 위한 하드웨어 준비
___B.1.1 그래픽카드 인식 확인
___B.1.2 호환되는 그래픽카드 확인
B.2 GPU 사용을 위한 소프트웨어 준비
___B.1.1 CUDA 툴킷 설치
___B.2.2 cuDNN 라이브러리 설치
___B.2.3 TensorFlow의 GPU 사용 최종 확인
▣ 부록C: 딥러닝에서 plaidML+GPU 사용하기
C.1 plaidML 사용을 위한 Visual C++ 2015 설치
C.2 plaidML 설치 및 확인
▣ 부록D: RLTrader의 딥러닝 프레임워크 적용기
▣ 부록E: RLTrader 학습 데이터 명세
E.1 RLTrader 학습 데이터 v1
E.2 RLTrader 학습 데이터 v1.1
E.3 RLTrader 학습 데이터 v2
E.4 RLTrader 학습 데이터 v3
E.5 RLTrader 학습 데이터 v4