이미지 검색을 사용해 보세요
검색창 이전화면 이전화면
최근 검색어
인기 검색어

소득공제
R을 이용한 퀀트 투자 포트폴리오 만들기
데이터 크롤링 및 분석, 퀀트 전략을 활용한 투자 종목 선정까지
이현열
제이펍 2021.02.11.
베스트
OS/데이터베이스 top100 18주
가격
25,000
10 22,500
YES포인트?
1,250원 (5%)
5만원 이상 구매 시 2천원 추가 적립
결제혜택
카드/간편결제 혜택을 확인하세요

이미 소장하고 있다면 판매해 보세요.

  •  국내배송만 가능
  •  최저가 보상
  •  문화비소득공제 신청가능

이 상품의 태그

책소개

목차

머리말 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

저자 소개1

데이터 기술 기반의 핀테크 기업 두물머리에서 퀀트 테크놀로지 및 데이터 분석을 담당하고 있다. 한양대학교에서 경영학을 전공하고, 카이스트 대학원에서 금융공학 석사 학위 취득 후 한양대학교 재무금융 박사 과정을 수료했다. 통계와 수학으로 금융시장을 연구하는 ‘금융공학’의 매력에 빠져 대학원 진학한 후 투자를 업으로 하고 있다. 국내 대형 증권사, 운용사, 보험사를 거치며 각각 주식 운용, 퀀트 포트폴리오 매니저, 데이터 분석 업무를 경험했다. 최신의 기술과 연구를 바탕으로 퀀트 솔루션 개발에 매진하며 한양대학교와 카이스트에서 겸임교수직을 맡고 있다. 지은 책으로는 『스마
데이터 기술 기반의 핀테크 기업 두물머리에서 퀀트 테크놀로지 및 데이터 분석을 담당하고 있다. 한양대학교에서 경영학을 전공하고, 카이스트 대학원에서 금융공학 석사 학위 취득 후 한양대학교 재무금융 박사 과정을 수료했다. 통계와 수학으로 금융시장을 연구하는 ‘금융공학’의 매력에 빠져 대학원 진학한 후 투자를 업으로 하고 있다.

국내 대형 증권사, 운용사, 보험사를 거치며 각각 주식 운용, 퀀트 포트폴리오 매니저, 데이터 분석 업무를 경험했다. 최신의 기술과 연구를 바탕으로 퀀트 솔루션 개발에 매진하며 한양대학교와 카이스트에서 겸임교수직을 맡고 있다.

지은 책으로는 『스마트베타』(2017), 『R을 이용한 퀀트투자 포트폴리오 만들기』(2019), 『감으로 하는 투자 데이터로 하는 투자』(2022), 『파이썬을 이용한 퀀트 투자 포트폴리오 만들기』(2023)가 있으며, 번역한 책으로는 『효율적으로 비효율적인 시장』(2021)이 있다. 또한 유튜브 채널 『헨리의 퀀트대학』을 운영하며 퀀트 및 데이터분석과 관련된 콘텐츠를 제작 중이다.

이현열의 다른 상품

품목정보

발행일
2021년 02월 11일
쪽수, 무게, 크기
368쪽 | 170*225*18mm
ISBN13
9791190665803

책 속으로

팩터 모델을 이용한 종목 선택과 관련된 CHAPTER에서는 해당 조건으로 선택된 종목들이 나열되어 있습니다. 그러나 이는 해당 종목에 대한 매수 추천이 아님을 밝히며, 데이터를 받은 시점의 종목이기에 독자 여러분이 책을 읽는 시점에서 선택된 종목과는 상당한 차이가 있습니다.
---p.XVII

이전 예에서 API 주소를 이용하면 매우 간단하게 데이터를 수집할 수 있음을 살펴보았습니다. 그러나 이 방법에는 단점도 있습니다. 먼저 원하는 항목에 대한 API를 일일이 얻기가 힘듭니다. 또한 Quandl의 경우 무료로 얻을 수 있는 정보에 제한이 있으며, 다운로드 양에도 제한이 있습니다. 이 방법으로 한두 종목의 데이터를 수집할 수 있지만, 전 종목의 데이터를 구하기는 사실상 불가능합니다.
---p.35

주가 데이터는 투자를 함에 있어 반드시 필요한 데이터이며, 인터넷에서 주가를 수집할 수 있는 방법은 매우 많습니다. 먼저 API를 이용한 데이터 수집에서 살펴본 것과 같이, getSymbols() 함수를 이용해 데이터를 받을 수 있습니다. 그러나 야후 파이낸스에서 제공하는 데이터 중 미국 주가는 이상 없이 다운로드되지만, 국내 중소형주는 주가가 없는 경우가 있습니다.
---p.89

따라서 기준점으로 첫 번째 리스트, 즉 삼성전자의 재무 항목을 선택하며, 총 236개 재무 항목이 있습니다. 해당 기준을 바탕으로 재무제표 데이터를 정리하며, 전체 항목에 대한 정리 이전에 간단한 예시로 첫 번째 항목인 매출액 기준 데이터 정리를 살펴보겠습니다.
---p.138

단순히 과거 수익률로만 모멘텀 종목을 선택하면 각종 테마나 이벤트에 따른 급등으로 인해 변동성이 지나치게 높은 종목이 있을 수도 있습니다. 누적수익률을 변동성으로 나누어 위험을 고려해줄 경우, 이러한 종목은 제외되며 상대적으로 안정적인 모멘텀 종목을 선택할 수 있습니다.

---p.202

출판사 리뷰

실제 퀀트 포트폴리오 매니저 출신이 알려주는
퀀트 투자 기초부터 고급까지, 모든 것을 한 방에!!

개정판의 주요 변경 사항

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

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

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

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

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

이 책의 대상 독자
- R을 이용해 퀀트 투자 전략을 세우려는 분
- 퀀트 투자를 하고 싶지만 데이터 구매 비용에 부담을 느끼는 분
- 퀀트 투자, 제대로 알고 시작하고 싶으신 분
- R을 이용해 데이터 크롤링하는 방법을 알고 싶으신 분
- R 데이터 수집 및 가공, 시각화를 실습해 보고 싶으신 분

리뷰/한줄평11

리뷰

9.6 리뷰 총점

한줄평

6.8 한줄평 총점
22,500
1 22,500