파이썬을 활용한 금융 분석
파이썬으로 데이터 주도 금융 분석 마스터하기
현재 파이썬은 데이터와 인공지능이 주도하는 금융 분석 분야에서 대표적인 프로그래밍 언어로 사용되고 있다. 일부 대형 투자은행과 헤지펀드는 파이썬을 핵심적인 거래 시스템과 위험 관리 시스템 구축에 활용 하고 있다. 이 책에서는 다양한 파이썬 패키지와 도구를 사용하여 금융 데이터 과학, 알고리즘 트레이딩 및 계산 금융에 활용하는 방법을 설명한다.
이 책은 파이썬 프로그래밍 소개서나 일반적인 금융 입문서가 아니라는 점을 강조하고자 한다. 이 책은 이 두 가지 분야가 만나는 그 중간에 있다. 이 책은 독자들이 (반드시 파이썬이 아니라도) 프로그래밍에 대해 약간의 배경지식이 있고 어느 정도 금융 지식도 가지고 있다는 전제하에 쓰였으며 독자들은 이 책을 읽고 파이썬과 파이썬 생태계를 금융 분야에 적용하는 방법을 배우게 될 것이다. 이 책은 파이썬 3에 맞게 업데이트되었기 때문에 수록된 예제 코드는 대화형 개발 환경인 주피터 노트북을 사용하여 실행할 수 있다. 이 책의 예제 코드와 주피터 노트북은 필자의 Quant Platform에서 직접 실행할 수 있다. 웹사이트 주소는 http://py4fi.pqp.io이며 사용자 등록이 무료다.
이브 힐피시는 DX Analytics 금융 분석 라이브러리의 창시자이며, 금융 데이터 과학, 인공지
능, 알고리즘 트레이딩 및 계산 금융을 위한 오픈소스 기술 사용에 중점을 둔 회사 The Python
Quants(http://home.tpq.io), AI Machine(http://aimachine.io)의 설립자이자 최고
경영자다. 주요 저서로는 『Artificial Intelligence in Finance』(O’Reilly, 2020), 『Python
for Algorithmic Trading』(O’Reilly, 2020), 『Python for Finance, 2e』(O’Reilly, 2018),
『Listed Volatility and Variance Derivatives』(Wiley Finance, 2017), 『Derivatives
Analytics with Python』(Wiley Finance, 2015) 등이 있다. 한편 CQF(https://www.
cqf.com)에서 컴퓨터 금융, 머신러닝 및 알고리즘 트레이딩을, htw saar 대학(https://www.
htwsaar.de)에서는 데이터 과학을 강의하고 있다. 또한 금융 관련 파이썬 자격증을 취득할 수 있
는 온라인 교육 프로그램의 책임자이기도 하다.
PART I 파이썬과 금융
CHAPTER 1 왜 금융 분석에 파이썬을 사용하는가
1.1 파이썬 소개
1.2 금융에서 쓰이는 기술
1.3 금융공학을 위한 파이썬
1.4 데이터 주도 금융과 인공지능 우선 금융
1.5 마치며
1.6 참고 문헌
CHAPTER 2 파이썬 기반구조
2.1 패키지 매니저로서의 콘다
2.2 가상 환경 매니저로서의 콘다
2.3 도커 컨테이너 사용법
2.4 클라우드 인스턴스 사용법
2.5 마치며
2.6 참고 문헌
PART II 파이썬 기초 정복
CHAPTER 3 자료형과 자료구조
3.1 기본 자료형
3.2 기본 자료구조
3.3 마치며
3.4 참고 문헌
CHAPTER 4 NumPy를 사용한 수치 계산
4.1 데이터 배열
4.2 정규 NumPy 배열
4.3 구조화 NumPy 배열
4.4 코드 벡터화
4.5 마치며
4.6 참고 문헌
CHAPTER 5 pandas를 사용한 데이터 분석
5.1 DataFrame 클래스
5.2 기본적인 분석
5.3 기본적인 시각화
5.4 Series 클래스
5.5 GroupBy 연산
5.6 고급 선택법
5.7 병합, 조인, 머지
5.8 성능 측면
5.9 마치며
5.10 참고 문헌
CHAPTER 6 객체지향 프로그래밍
6.1 파이썬 객체 소개
6.2 파이썬 클래스 기초
6.3 파이썬 데이터 모델
6.4 Vector 클래스
6.5 마치며
6.6 참고 문헌
PART III 금융 데이터 과학
CHAPTER 7 데이터 시각화
7.1 정적 2차원 플롯
7.2 정적 3차원 플롯
7.3 상호작용형 2차원 플롯
7.4 마치며
7.5 참고 문헌
CHAPTER 8 금융 시계열
8.1 금융 데이터
8.2 이동 통계
8.3 상관관계 분석
8.4 고빈도 데이터
8.5 마치며
8.6 참고 문헌
CHAPTER 9 입출력 작업
9.1 기본 파이썬 입출력
9.2 pandas를 이용한 입출력
9.3 PyTables를 이용한 입출력
9.4 TsTables을 이용한 입출력
9.5 마치며
9.6 참고 문헌
CHAPTER 10 파이썬 성능 개선
10.1 반복문
10.2 알고리즘
10.3 이항트리
10.4 몬테카를로 시뮬레이션
10.5 재귀적 pandas 알고리즘
10.6 마치며
10.7 참고 문헌
CHAPTER 11 수학용 도구
11.1 근사화
11.2 최적화
11.3 적분
11.4 심볼릭 연산
11.5 마치며
11.6 참고 문헌
CHAPTER 12 확률 과정
12.1 난수 생성
12.2 시뮬레이션
12.3 가치 평가
12.4 위험 측도
12.5 파이썬 스크립트
12.6 마치며
12.7 참고 문헌
CHAPTER 13 통계 분석
13.1 정규성 검정
13.2 포트폴리오 최적화
13.3 베이즈 통계학
13.4 머신러닝
13.5 마치며
13.6 참고 문헌
PART IV 알고리즘 트레이딩
CHAPTER 14 FXCM 트레이딩 플랫폼
14.1 시작하기
14.2 데이터 받기
14.3 API 다루기
14.4 마치며
14.5 참고 문헌
CHAPTER 15 매매 전략
15.1 단순 이동평균
15.2 랜덤워크 가설
15.3 선형 회귀분석
15.4 클러스터링
15.5 빈도주의 방법론
15.6 분류 알고리즘
15.7 심층 신경망
15.8 마치며
15.9 참고 문헌
CHAPTER 16 매매 자동화
16.1 자금 관리
16.2 머신러닝 기반 매매 전략
16.3 온라인 알고리즘
16.4 기반구조와 배포
16.5 로깅과 모니터링
16.6 마치며
16.7 파이썬 스크립트
16.8 참고 문헌
PART V 파생상품 분석
CHAPTER 17 가치 평가 프레임워크
17.1 자산 가격결정 기본 정리
17.2 위험 중립 할인
17.3 시장 환경
17.4 마치며
17.5 참고 문헌
CHAPTER 18 금융 모형 시뮬레이션
18.1 난수 생성
18.2 일반적인 시뮬레이션 클래스
18.3 기하 브라운 운동 모형
18.4 점프 확산 모형
18.5 제곱근 확산 모형
18.6 마치며
18.7 참고 문헌
CHAPTER 19 파생상품 가치 평가
19.1 일반적인 가치 평가 클래스
19.2 유러피안 행사 방식
19.3 아메리칸 행사 방식
19.4 마치며
19.5 참고 문헌
CHAPTER 20 포트폴리오 가치 평가
20.1 파생상품 포지션
20.2 파생상품 포트폴리오
20.3 마치며
20.4 참고 문헌
CHAPTER 21 시장 기반 가치 평가
21.1 옵션 데이터
21.2 모형 보정
21.3 포트폴리오 가치 평가
21.4 파이썬 코드
21.5 마치며
21.6 참고 문헌
APPENDIX A 날짜와 시간
A.1 파이썬
A.2 NumPy
A.3 pandas
APPENDIX B 블랙-숄즈-머튼 옵션 클래스
B.1 클래스 정의
B.2 클래스 사용