본문 바로가기

Python

(책 소개) "파이썬으로 배우는 포트폴리오" (지은이: 곽승주) 초판: 2021.3.15.

요즘 읽으며 실습에 옮기는 책입니다. 지금의 저에게는 5장 (블랙-리터만 모델), 6장 (파마-프렌치 3요인 모델), 7장(금융산업과 머신 러닝), 8장(Yahoo_fin 패키지를 사용해 재무 데이터 가져오기), 부록(파이썬 라이브러리 삼총사) 부분이 특히 매력적으로 느껴지네요. 

"파이썬으로 배우는 포트폴리오" (지은이: 곽승주) 초판 2021년 3월 15일 가격 2만 6천원

추천사: 

"이 책은 금융과 IT에 입문하고자 하는 사람들에게 매우 적절한 길을 제시하고 있다. 또한, 금융의 기초와 파이썬 기초를 유효적절하게 연결해 상호보완적으로 이해를 돋우고 있다. 단지 가초만이 아니라, 포트폴리오 구축, 블랙-리터만 및 파마-프렌치 요인 분석의 고급 이론을 소개하고, 다양하고 심도 있는 재무 데이터를 어떻게 추출해 사용할 수 있는지 예시를 통해 살펴보며, 머신 러닝을 소개하면서 어떻게 전략에 활용할 수 있는지도 보여준다."

 

"... 어떤 식으로 파이썬 학습에 접근해야 할지 고민하는 사람들에게 당장 실행할 수 있는 해결책을 제시한다. 이들에게 이론과 실무를 적절히 조합한 최적의 책이 될 것이다." 

 

이기홍 (미국 피츠버거 대학교 Finance Ph.D., CFA, FRM, 금융투자 전문가)

 

 

지은이 서문

"이 책은 현재 포트폴리오 이론을 공부하고 있거나, 나처럼 아주 오래전에 공부한 뒤 잊고 사는 사람들을 위한 것이다. 따라서 포트폴리오 이론을 위한 기초 지식, 여러 포트폴리오 이론, 이론을 만든 학자들 이야기, 그 이론들을 파이썬으로 조립해보는 내용으로 구성돼 있다. 게다가 지루한 활자에 눈이 지치지 않도록 설명을 보조하는 그림도 잔뜩 담았다."

 

" 이 책에서는 포트폴리오 이론과 파이썬 프로그래밍을 다루지만, 책을 처음 기획하고 저술할 때 '학교에서 사용할 교과서'로서의 기능은 염두에 두지 않았다. 그저 공부가 취미인 사람들을 위해, 책 속의 이론을 살아있는 생물처럼 움직이게 만들어보고 싶은 사람들을 위해 정리된 무언가를 손에 쥐어주고 싶었다." 

 

 

지은이 소개

곽승주

한양대학교 경제학 석사를 받았으며 은행과 자산운용사의 리스크, 컴플라이언스, 헤지펀드 부서에서 리스크 및 펀드성과 리포팅, 주식 및 선물운용 및 계량분석, ELS 평가 및 백테스팅, 백오피스 업무자동화 등을 위한 업무와 소프트웨어를 개발하였다. 현재는 두 명의 동료와 함께 딥러닝 기술을 이용한 증권분석 및 추천시스템, 금융회사의 ERP 및 업무자동화 서비스 개발에 참여하고 있다. 그의 개인적인 활동은 블로그(deeplearners.wordpress.comtimebird.egloos.com)에서 볼 수 있다.

 

 

목차 (출처: Yes24) 

1장 파이썬과 재무 기초 지식

__1.1 파이썬 시작하기
____1.1.1 파이썬 도구의 선택
____1.1.2 구글 코랩
____1.1.3 구글 코랩 시작하기
____1.1.4 파이썬의 여섯 가지 핵심 사항
__1.2 현금흐름, 이자율과 시간 가치
__1.3 NPV와 IRR
____1.3.1 NPV
____1.3.2 IRR
__1.4 수익률 대 수익률
____1.4.1 수익률과 할인율의 개념
____1.4.2 기간 수익률의 평균, 산술평균과 기하평균
____1.4.3 지배원리
__1.5 자주 사용하는 통계량: 기댓값, 분산, 공분산, 상관계수
____1.5.1 평균과 기댓값
____1.5.2 이동평균
____1.5.3 가중(산술)평균
____1.5.4 분산과 표준편차
____1.5.5 정규분포에서 표준편차와 평균
____1.5.6 자유도
____1.5.7 공분산과 상관계수

2장 투자와 자산배분

__2.1 자산배분과 포트폴리오
__2.2 포트폴리오 성과의 결정 요인들
__2.3 포트폴리오 성과 측정 삼총사
____2.3.1 샤프지수
____2.3.2 젠센알파지수
____2.3.3 트레이너지수
____2.3.4 정보비율
____2.3.5 최대 낙폭

3장 평균-분산 포트폴리오 이론

__3.1 포트폴리오의 기대수익률과 위험
____3.1.1 두 개 주식으로 구성된 포트폴리오
____3.1.2 n개 주식으로 만든 포트폴리오
__3.2 최소분산포트폴리오
__3.3 체계적 위험과 비체계적 위험
__3.4 무위험자산과 최적 자산배분
____3.4.1 효율적 포트폴리오
____3.4.2 기대효용과 무차별곡선
____3.4.3 최적 포트폴리오의 선택
____3.4.4 무위험자산+위험자산
____3.4.5 무위험자산+위험자산+효율적 투자선(자본배분선)
____3.4.6 최적 포트폴리오 선택

4장 자본자산가격결정모델

__4.1 기본 가정
____4.1.1 동일한 기대와 시장포트폴리오, 그리고 자본시장선
____4.1.2 포트폴리오 베타
__4.2 증권시장선과 자본시장선
____4.2.1 증권시장선과 자본시장선
____4.2.2 위험프리미엄
__4.3 포트폴리오 최적화
____4.3.1 최적화 패키지 scipy.optimize 알아보기
____4.3.2 간단한 최적화 알아보기
____4.3.3 최적화 알고리즘 SLSQP
____4.3.4 포트폴리오 최적화(최소분산포트폴리오 및 샤프비율)
__4.4 현실에 응용하기

5장 블랙-리터만 모델

__5.1 피셔 블랙과 블랙-리터만 모델
__5.2 간단히 알아보는 베이지안 확률
__5.3 역최적화로 구하는 균형기대수익률
____5.3.1 균형기대수익률(Π)
____5.3.2 위험회피계수(λ)
____5.3.3 자산의 공분산 행렬(Σ)
____5.3.4 자산시가총액 비중(W mkt )
__5.4 투자자 전망
__5.5 블랙-리터만 공식
__5.6 위험조정상수(τ)
__5.7 균형기대수익률과 투자자 전망 결합
__5.8 세 가지 자산을 가정한 예시
__5.9 블랙-리터만 모델 최적화
__5.10 현업에서의 블랙-리터만 모델

6장 파마-프렌치 3요인 모델

__6.1 효율적 시장 가설과 유진 파마
__6.2 베타는 죽었다
__6.3 파마-프렌치 3요인 모델
__6.4 프렌치 교수가 제공하는 요인 데이터
__6.5 파이썬을 이용한 요인 데이터 구하기와 회귀분석
____6.5.1 요인 데이터 구하기
____6.5.2 펀드 수익률과 요인 데이터 회귀분석

7장 금융산업과 머신 러닝

__7.1 머신 러닝 시작하기
__7.2 머신 러닝 맛보기, 선형 회귀
____7.2.1 비용함수와 경사하강법
____7.2.2 K-최근접 이웃 알고리즘
__7.3 K-최근접 이웃 알고리즘을 이용한 회귀
____7.3.1 라이브러리 임포트
____7.3.2 주가지수 데이터 가져오기
____7.3.3 예측변수 설정
____7.3.4 목표변수 설정
____7.3.5 데이터셋 분할
____7.3.6 KNN 모델 설정
____7.3.7 모델을 바탕으로 전략 실행
____7.3.8 샤프비율 계산
__7.4 로지스틱 회귀
____7.4.1 라이브러리 임포트
____7.4.2 데이터 가져오기
____7.4.3 예측변수/독립변수 설정
____7.4.4 목표변수/종속변수 설정
____7.4.5 데이터셋 분할
____7.4.6 로지스틱 회귀 모델의 설정 및 훈련
____7.4.7 클래스 확률 예측
____7.4.8 모델 평가
____7.4.9 매매 전략

8장 Yahoo_fin 패키지를 사용해 재무 데이터 가져오기

__8.1 설치 및 업그레이드
__8.2 stock_info 모듈
____8.2.1 패키지 임포트
____8.2.2 get_analysts_info(ticker)
____8.2.3 get_balance_sheet(ticker)
____8.2.4 get_cash_flow(ticker)
____8.2.5 get_data( )
____8.2.6 get_day_gainers( )
____8.2.7 get_day_losers( )
____8.2.8 get_day_most_active( )
____8.2.9 get_holders(ticker)
____8.2.10 get_live_price(ticker)
____8.2.11 get_quote_table(ticker, dict_result = True)
____8.2.12 get_top_crypto( )
____8.2.13 get_stats(ticker)
____8.2.14 get_stats_valuation(ticker)
____8.2.15 종목 티커 관련 함수
__8.3 재무 정보 가져오기(Yahoo_fin 패키지)
____8.3.1 패키지 임포트
____8.3.2 재무비율 구하기: 주가수익률 비율
____8.3.3 한 번에 여러 종목의 재무비율 구하기
____8.3.4 여러 종목의 기타 통계 구하기
__8.4 재무제표 다루기
____8.4.1 재무상태표 다루기
____8.4.2 손익계산서 다루기
____8.4.3 현금흐름표

부록 파이썬 라이브러리 삼총사
__A.1 수학 및 과학 연산, NumPy와 SciPy
____A.1.1 배열과 행렬 만들기
____A.1.2 배열과 행렬의 속성
____A.1.3 연산
____A.1.4 인덱싱/슬라이싱
____A.1.5 난수 만들기
__A.2 미술 담당, Matplotlib
____A.2.1 차트 도해
____A.2.2 라인 차트
____A.2.3 분산형 차트
____A.2.4 히스토그램
__A.3 데이터 담당, Pandas
____A.3.1 데이터프레임
____A.3.2 데이터프레임 만들기: DataFrame
____A.3.3 데이터프레임 합치기: concat과 merge
____A.3.4 인덱스 새로 만들기: reset_index
____A.3.5 데이터프레임 컬럼 삭제: drop
____A.3.6 컬럼을 행으로 모으기: melt
____A.3.7 정렬하기: sort_values
____A.3.8 쿼리하기: query
____A.3.9 데이터프레임 컬럼명 바꾸기: rename
____A.3.10 중복된 데이터 지우기: drop_duplicates
____A.3.11 데이터프레임 앞부분, 뒷부분 살짝 보기: head, tail

참고문헌
찾아보기[예스24 제공]

 

책소개 "파이썬으로 배우는 포트폴리오" (지은이: 곽승주)

https://compute2080.tistory.com/

 

Compute2080: 금융공학, 프로그래밍, 정량화(quantify)

 

compute2080.tistory.com