본문 바로가기

도서 소개

R을 이용한 퀀트 투자 포트폴리오 만들기(개정판)

일반 투자자도 따라 할 수 있는 금융 데이터 수집 및 포트폴리오 구성 방법!
금융 데이터 크롤링, 데이터 분석 및 시각화, 투자 종목 선정, 포트폴리오 구성, 백테스트 및 성과 평가
실제 퀀트 포트폴리오 매니저 출신이 알려주는 퀀트 투자 기초부터 고급까지, 모든 것을 한 방에!!


도서구매 사이트
(가나다순)

[교보문고] [도서11번가] [반디앤루니스] [알라딘] [예스이십사] [인터파크] [쿠팡]


출판사
제이펍
도서명 R을 이용한 퀀트 투자 포트폴리오 만들기(개정판)
부제 데이터 크롤링 및 분석, 퀀트 전략을 활용한 투자 종목 선정까지
지은이 이현열
감수자 (없음)
출판일 2021년 2월 11일
페이지 368쪽
판 형 크라운판변형(170*225*18.2)
제 본 무선(soft cover)
정 가 25,000원
ISBN 979-11-90665-80-3 (93000)
키워드 R / 주식 / 퀀트투자 / 크롤링 / 금융 데이터 / 주식투자
분 야 프로그래밍 / R / 퀀트

관련 사이트
저자 블로그

웹북

관련 포스트
2021/01/29 - [출간 전 책 소식] - 퀀트 투자로 수익도 퀀텀 점프!

관련 시리즈
■ (없음)

관련 도서
앤디 필드의 유쾌한 R 통계학
해들리 위컴의 Advanced R
따라 하며 배우는 데이터 과학

R로 배우는 실무 데이터 과학


관련 파일 다운로드
예제 코드 다운로드 및 독자 Q&A



미리보기(차례, 머리말, 이 책의 구성, 이 책에 대하여, 1장 '퀀트 투자의 심장: 데이터와 프로그래밍', 3장 'API를 이용한 데이터 수집' 일부, 5장 '금융 데이터 수집하기(기본)' 일부)

R을 이용한 퀀트 투자 포트폴리오 만들기(개정판)_sample.pdf
2.21MB

정오표 페이지

■ (등록되는 대로 링크를 걸어드리겠습니다)

도서구매 사이트(가나다순)

[교보문고] [도서11번가] [반디앤루니스] [알라딘] [예스이십사] [인터파크] [쿠팡]

도서 소개
일반 투자자도 따라 할 수 있는 금융 데이터 수집 및 포트폴리오 구성 방법!
금융 데이터 크롤링, 데이터 분석 및 시각화, 투자 종목 선정, 포트폴리오 구성, 백테스트 및 성과 평가
실제 퀀트 포트폴리오 매니저 출신이 알려주는 퀀트 투자 기초부터 고급까지, 모든 것을 한 방에!!


퀀트 투자를 하려면 먼저 투자에 필요한 주가, 재무제표 등의 데이터를 수집해 정리한 후 필요한 지표를 얻기 위해 가공합니다. 그후 각종 모형을 이용해 투자 종목을 선택하거나 백테스트를 수행하며, 이를 바탕으로 실제로 투자하고 성과를 평가합니다. 따라서 퀀트 투자는 데이터 과학을 금융에 응용한 사례라고도 볼 수 있으며, 퀀트 투자의 중심에는 데이터와 프로그래밍이 있으며, 이 책은 실제 퀀트 투자 매니저 출신이 데이터 크롤링부터 포트폴리오 구성까지 퀀트 투자의 정석을 설명하고 있습니다.


개정판의 주요 변경 사항
■ 변경된 한국거래소 사이트에 맞춰 새로 작성
■ 웹페이지 구조가 변경되어 크롤링이 불가능하게 된 곳을 삭제
■ 네이버 증권의 주가 데이터 출처가 변경되어 새로 작성
■ 크롤러의 접근이 어려운 곳은 user_agent() 함수로 크롤링할 수 있도록 변경
■ DART 크롤링 내용 추가
■ 실전에서 많이 사용되는 인덱스 포트폴리오 및 인핸스드 인덱스 포트폴리오 구성 방법 추가
■ ggplot2 패키지의 기본적인 사용법 추가
■ 일부 코드를 수정하여 데이터 처리를 좀 더 쉽게, 종목 선택을 더욱 꼼꼼히 하도록 변경

1. R을 이용해 주식 투자에 필요한 각종 데이터를 크롤링하여 수집하고 정리할 수 있다!
여러 프로그래밍 언어 중 R은 무료이며 비교적 일반 사용자가 사용하기 쉬운 형태로 구성되어 있습니다. 무엇보다 독보적으로 통계나 계량분석과 관련된 패키지를 포함하고 있다는 장점이 있습니다. 이런 R을 활용하여 직접 금융 데이터를 크롤링하여 수집할 수 있습니다. 단순히 데이터를 수집하는 데 그치지 않고 데이터를 분석하고 시각화하여 효과적인 투자 전략을 세울 수 있도록 데이터를 정리할 수 있습니다. 단, 이 책은 R과 R Studio 설치 등 기초적인 프로그래밍 내용은 생략합니다. 그러므로 R 기초 프로그래밍을 먼저 익힌 후 학습한다면 더욱 효과적입니다.

2. 퀀트 모델을 통해 포트폴리오를 구성하고, 백테스트 및 성과를 평가할 수 있다!
실제 퀀트 포트폴리오 매니저 출신이 알려주면 다릅니다. 데이터를 준비했다면 이제 어떤 종목에 투자해야 할지 선정합니다. 이 책은 퀀트 전략을 이용한 종목 선정을 기본부터 심화 과정으로 나눠 자세하게 설명합니다. 또한 포트폴리오 구성부터 백테스트 및 성과 평가까지 퀀트 투자를 위한 거의 모든 과정을 제대로 배울 수 있습니다.

3. 퀀트 모델에 대한 이해를 높이고, 코드를 통해 실제 구현할 수 있다!
가장 기본적인 퀀트 투자가 무엇인지부터 시작하여, 데이터 수집, 정리, 분석 및 시각화, 종목 선정, 포트폴리오 구성, 백테스트 및 성과 평가 등의 전 과정을 체계적으로 학습하면서 퀀트 모델에 대한 전반적인 이해도를 높일 수 있습니다. 또한 프로그래밍 초보자를 고려하여 코드에 따라 자세한 설명을 추가하였습니다. 이를 잘 학습한다면 책의 내용을 넘어 더욱 훌륭한 퀀트 투자 모델을 만들어 볼 수 있을 것입니다.

4. 웹페이지를 통한 지속적인 업데이트 및 전체 소스 제공!
퀀트 투자 환경은 빠르게 변하지만 고정된 지면으로는 변화에 빠른 대처가 어렵습니다. 그러므로 다음과 같이 저자가 제공하는 웹페이지를 통해 업데이트된 내용이나 변화된 환경에 대응할 수 있습니다.
웹페이지: hyunyulhenry.github.io/quant_cookbook

GitHub 저장소: github.com/hyunyulhenry/quant_cookbook

지은이 소개
이현열
한양대학교에서 경영학을 전공하고, 카이스트 대학원에서 금융공학 석사 학위를 받았다. 졸업 후 증권사에서 주식운용, 자산운용사에서 퀀트 포트폴리오 매니저, 보험사에서 데이터 분석 업무를 거쳐 현재는 핀테크 스타트업에서 퀀트 및 자산배분 리서치 업무를 하고 있다. 평소 꾸준한 SNS와 블로그 활동으로 퀀트 아이디어 및 백테스트 결과 등을 공유하면서 퀀트 투자의 대중화를 위해 노력하고 있다. 한양대학교 재무금융 박사 과정을 수료했으며, 패스트캠퍼스에서 R과 퀀트 투자 강의를 맡고 있다. 지은 책으로는 《스마트베타》(2017)가 있다.

차례

머리말 XI
이 책의 구성 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

제이펍 소식 더 보기(제이펍의 소통 채널에서 더욱 다양한 소식을 확인하세요!)

네이버 책 포스트 유튜브 인스타그램 트위터 페이스북