이 책의 구성 XIII
이 책에 대하여 XV
CHAPTER 1 퀀트 투자의 심장: 데이터와 프로그래밍 _ 001
1.1 데이터 구하기 003
1.2 퀀트 투자와 프로그래밍 005
1.3 R 프로그램 006
1.4 퀀트 투자에 유용한 R 패키지 008
CHAPTER 2 크롤링을 위한 기본 지식 _ 011
2.1 인코딩의 이해와 R에서 UTF-8 설정하기 012
2.1.1 인간과 컴퓨터 간 번역의 시작, ASCII 012
2.1.2 한글 인코딩 방식의 종류 013
2.1.3 R에서 UTF-8 설정하기 014
2.2 웹의 동작 방식 015
2.2.1 HTTP 016
2.3 HTML과 CSS 017
2.3.1 HTML 기본 구조 018
2.3.2 태그와 속성 019
2.3.3 h 태그와 p 태그 019
2.3.4 리스트를 나타내는 ul 태그와 ol 태그 020
2.3.5 table 태그 021
2.3.6 a 태그와 src 태그 및 속성 023
2.3.7 div 태그 024
2.3.8 CSS 025
2.3.9 클래스와 id 026
2.4 파이프 오퍼레이터(%>%) 028
2.5 오류에 대한 예외처리 031
CHAPTER 3 API를 이용한 데이터 수집 _ 033
3.1 API를 이용한 Quandl 데이터 다운로드 034
3.2 getSymbols() 함수를 이용한 API 다운로드 035
3.2.1 주가 다운로드 036
3.2.2 국내 종목 주가 다운로드 039
3.2.3 FRED 데이터 다운로드 041
CHAPTER 4 크롤링 이해하기 _ 045
4.1 GET과 POST 방식 이해하기 046
4.1.1 GET 방식 046
4.1.2 POST 방식 048
4.2 크롤링 예제 050
4.2.1 금융 속보 크롤링 050
4.2.2 기업공시채널에서 오늘의 공시 불러오기 053
4.2.3 네이버 금융에서 주식티커 크롤링 056
CHAPTER 5 금융 데이터 수집하기(기본) _ 067
5.1 한국거래소의 산업별 현황 및 개별지표 크롤링 067
5.1.1 업종분류 현황 크롤링 068
5.1.2 개별종목 지표 크롤링 072
5.1.3 최근 영업일 기준 데이터 받기 074
5.1.4 거래소 데이터 정리하기 078
5.2 WICS 기준 섹터 정보 크롤링 083
CHAPTER 6 금융 데이터 수집하기(심화) _ 089
6.1 수정주가 크롤링 089
6.1.1 개별종목 주가 크롤링 090
6.1.2 전 종목 주가 크롤링 095
6.2 재무제표 및 가치지표 크롤링 097
6.2.1 재무제표 다운로드 097
6.2.2 가치지표 계산하기 103
6.2.3 전 종목 재무제표 및 가치지표 다운로드 107
6.3 DART의 Open API를 이용한 데이터 수집하기 111
6.3.1 API Key발급 및 추가하기 111
6.3.2 고유번호 다운로드 113
6.3.3 공시검색 116
6.3.4 사업보고서 주요 정보 121
6.3.5 상장기업 재무정보 123
6.3.6 단일회사 전체 재무제표 128
CHAPTER 7 데이터 정리하기 _ 135
7.1 주가 정리하기 135
7.2 재무제표 정리하기 137
7.3 가치지표 정리하기 141
CHAPTER8 데이터 분석 및 시각화하기 _ 145
8.1 종목정보 데이터 분석 146
8.1.1 *_join(): 데이터 합치기 146
8.1.2 glimpse(): 데이터 구조 확인하기 148
8.1.3 rename(): 열 이름 바꾸기 149
8.1.4 distinct(): 고유한 값 확인 150
8.1.5 select(): 원하는 열만 선택 150
8.1.6 mutate(): 열 생성 및 데이터 변형 152
8.1.7 filter(): 조건을 충족하는 행 선택 153
8.1.8 summarize(): 요약 통곗값 계산 154
8.1.9 arrange(): 데이터 정렬 154
8.1.10 row_number(): 순위 계산 155
8.1.11 ntile(): 분위수 계산 156
8.1.12 group_by(): 그룹별로 데이터를 묶기 156
8.2 ggplot() 기초 158
8.2.1 diamonds 데이터셋 160
8.2.2 Data, Aesthetics, Geometrics 161
8.2.3 Facets 164
8.2.4 Statistics 164
8.2.5 Coordinates 165
8.2.6 Theme 167
8.3 종목정보 시각화 168
8.3.1 geom_point(): 산점도 나타내기 168
8.3.2 geom_histogram(): 히스토그램 나타내기 170
8.3.3 geom_boxplot(): 박스 플롯 나타내기 172
8.3.4 dplyr과 ggplot을 연결해 사용하기 173
8.3.5 geom_bar(): 막대 그래프 나타내기 174
8.4 주가 및 수익률 시각화 176
8.4.1 주가 그래프 나타내기 176
8.4.2 인터랙티브 그래프 나타내기 178
8.4.3 연도별 수익률 나타내기 181
CHAPTER 9 퀀트 전략을 이용한 종목 선정(기본) _ 185
9.1 베타 이해하기 187
9.1.1 베타 계산하기 189
9.1.2 베타 시각화 191
9.2 저변동성 전략 192
9.2.1 저변동성 포트폴리오 구하기: 일간 기준 194
9.2.2 저변동성 포트폴리오 구하기: 주간 기준 197
9.3 모멘텀 전략 199
9.3.1 모멘텀 포트폴리오 구하기: 12개월 모멘텀 200
9.3.2 모멘텀 포트폴리오 구하기: 위험조정 수익률 202
9.4 밸류 전략 205
9.4.1 밸류 포트폴리오 구하기: 저PBR 206
9.4.2 각 지표 결합하기 207
9.5 퀄리티 전략 210
9.5.1 F-Score 지표 210
9.5.2 각 지표 결합하기 216
CHAPTER 10 퀀트 전략을 이용한 종목 선정(심화) _ 219
10.1 섹터 중립 포트폴리오 219
10.2 마법공식 223
10.2.1 퀄리티와 밸류 간의 관계 224
10.2.2 마법공식 이해하기 226
10.2.3 마법공식 구성하기 227
10.3 이상치 데이터 제거 및 팩터의 결합 231
10.3.1 트림(Trim): 이상치 데이터 삭제 232
10.3.2 윈저라이징(Winsorizing): 이상치 데이터 대체 233
10.3.3 팩터의 결합 방법 234
10.4 멀티팩터 포트폴리오 236
CHAPTER 11 포트폴리오 구성 _ 247
11.1 최소분산 포트폴리오 250
11.1.1 slsqp() 함수를 이용한 최적화 250
11.1.2 solve.QP() 함수를 이용한 최적화 254
11.1.3 optimalPortfolio() 함수를 이용한 최적화 259
11.1.4 결괏값들의 비교 261
11.1.5 최소 및 최대 투자비중 제약조건 262
11.1.6 각 자산별 제약조건의 추가 265
11.2 최대분산효과 포트폴리오 267
11.2.1 solve.QP() 함수를 이용한 최적화 270
11.2.2 optimalPortfolio() 함수를 이용한 최적화 272
11.2.3 최소 및 최대 투자비중 제약조건 273
11.2.4 각 자산별 제약조건의 추가 276
11.3 위험균형 포트폴리오 278
11.3.1 주식 60%와 채권 40% 포트폴리오의 위험기여도 279
11.3.2 rp() 함수를 이용한 최적화 280
11.3.3 위험예산 포트폴리오 282
11.4 인덱스 포트폴리오 구성하기 283
11.4.1 시가총액비중 계산하기 284
11.4.2 인덱스 포트폴리오 복제하기 284
11.4.3 팩터를 이용한 인핸스드 포트폴리오 구성하기 289
CHAPTER 12 포트폴리오 백테스트 _ 303
12.1 Return.portfolio() 함수 304
12.1.1 인자 목록 살펴보기 304
12.1.2 출력값 살펴보기 306
12.2 전통적인 60대40 포트폴리오 백테스트 306
12.3 시점 선택 전략 백테스트 311
12.4 동적 자산배분 백테스트 317
CHAPTER 13 성과 및 위험 평가 _ 325
13.1 결과 측정 지표 328
13.1.1 수익률 및 변동성 328
13.1.2 낙폭과 최대낙폭 332
13.1.3 연도별 수익률 334
13.1.4 승률 및 롤링 윈도우 값 336
13.2 팩터 회귀분석 및 테이블로 나타내기 338
참고문헌 342
찾아보기 346