소스 코드 파일은여기에서 내려 받으실 수 있습니다.
https://github.com/AcornPublishing/ml-algorithmic-trading
디지털 데이터의 폭발적인 증가로 머신러닝을 사용하는 거래 전략의 전문지식에 대한 요구가 높아졌다. 이 책은 지도학습과 비지도학습 알고리즘으로 다양한 데이터 원천에서 신호를 추출해 효과적인 투자 전략을 만들 수 있도록 안내한다. 또한 API와 웹 스크래핑을 통해 시장, 기본, 대체 데이터에 접근하는 방법을 보여준다. 최신의 머신러닝, 딥러닝 알고리즘과 더불어 알고리즘 트레이딩을 위한 아이디어 창출부터 백테스팅까지의 과정, Pandas, NumPy, Statsmodel, Scikit-learn 등과 같은 라이브러리를 학습한다. 알고리즘 트레이딩의 과정을 학습하면서 머신러닝과 딥러닝의 기본을 다질 수 있는 유용한 예제가 포함돼 있다.
■ 투자와 트레이딩 문제를 푸는 머신러닝 기법 구현
■ 시장 데이터, 기본 데이터, 대체 데이터를 활용한 알파 팩터
■ 지도학습, 비지도학습, 강화학습 모델 설계와 세부 조정
■ Pandas, NumPy, Scikit-learn을 이용한 포트폴리오 위험과 성과 최적화
■ 퀀토피안 플랫폼에서 머신러닝 모델을 실전 트레이딩 전략에 통합하기
■ 신뢰성 있는 시계열 백테스트 방법을 사용한 전략 평가
■ 케라스, 파이토치, 텐서플로를 사용해 딥신경망 설계 및 평가
■ OpenAI Gym에서 강화학습을 이용한 트레이딩 전략
금융 및 투자 산업에서 일하는 투자 분석가, 포트폴리오 매니저와 함께 데이터 분석가, 데이터 과학자와 파이썬 개발자를 위한 책이다. ML 알고리즘으로 현명한 투자 전략을 개발해 효율적 트레이딩을 실행하고 싶다면 반드시 필요한 책이다. 파이썬과 ML 기법에 대한 어느 정도의 지식은 필수다.
머신러닝이 어떻게 거래 전략의 설계와 실행에 가치를 부가할 수 있는지를 포괄적으로 소개한다. 다양한 머신러닝 과제에 다른 솔루션뿐만 아니라 데이터 소싱과 전략 개발 과정의 다른 측면을 다루는 4개의 부로 구성돼 있다.
1부, ‘프레임워크: 데이터에서 전략 설계까지’에서는 알고리즘 트레이딩 전략 개발을 위한 프레임워크를 소개한다. 이 책에서 논의된 머신러닝 알고리즘과 전략을 지원하는 데이터에 중점을 두고 머신러닝이 거래신호를 유도하는 데 어떻게 사용될 수 있는지, 포트폴리오의 부분으로서 전략을 어떻게 이용하고 평가하는지 설명한다.
1장, ‘트레이딩을 위한 머신러닝’에서는 머신러닝이 거래전략의 설계와 실행을 위한 신호생성과 평가에서 어떻게 중요한지를 개략적으로 설명함으로써 이 책의 핵심을 확인한다. 여기에는 가설 생성, 모델링, 데이터 선택, 백테스팅부터 위험 관리를 포함한 포트폴리오 관점의 평가, 실행에 이르는 전략 프로세스가 요약돼 있다.
2장, ‘시장 데이터와 기본적 요인 데이터’에서는 이 책 전체에서 신뢰할 수 있는 수많은 오픈 소스 데이터 제공업체에 접근하는 방법뿐만 아니라 원천 거래소가 제공한 원본 틱(tick) 데이터, 재무 보고 데이터를 사용한 소스와 작업을 설명한다.
3장, ‘금융을 위한 대체 데이터’에서는 폭발적으로 증가하는 제공업체를 평가하는 범주와 기준을 제시한다. 또한 이 책의 2부에서 다룰 자연어 처리와 감성 분석 알고리즘과 함께 사용하는 데 필요한 어닝 콜 음성 녹취록(earning call transcripts)을 수집하려고 웹사이트를 스크랩해 대체 데이터셋을 작성하는 방법을 보여 준다.
4장, ‘알파 팩터 리서치’에서는 정보 계수(IC)를 사용해 팩터가 작동하는 방식과 성과를 측정하는 방법을 이해하기 위한 프레임 워크를 제공한다. 퀀토피안(Quantopian) 플랫폼에 대한 오프라인, 온라인 파이썬 라이브러리를 사용해 데이터에서 알파 팩터를 추출하는 것을 보여 준다. 또한 팩터를 백테스팅하기 위한 집라인(zipline)과 예측력을 평가하기 위한 알파렌즈(alphalens)를 소개한다.
5장, ‘전략 평가’에서는 집라인 오프라인, 퀀토피안 플랫폼으로 역사적 데이터를 사용해 거래전략을 테스트하고 평가하는 법을 소개한다. 파이폴리오(pyfolio) 라이브러리를 사용해 포트폴리오의 성과, 위험지표를 계산하는 방법을 보여 준다. 또한, 전략 백테스팅의 방법론적 과제를 관리하는 방법을 기술하고, 포트폴리오 위험 측면에서 전략을 최적화하는 방법을 알아본다.
6장, ‘머신러닝 프로세스’에서는 어떻게 형성하고, 훈련하고, 조정해서 체계적인 워크플로(workflow)로서 머신러닝 모형의 예측 성능을 평가하는지 개략적으로 설명한다.
2부, '머신러닝 기초'에서는 기본적인 지도학습, 비지도학습 알고리즘을 다루고 거래 전략에 적용하는 방법을 보여 준다. 또한 이 책에서 개발한 머신러닝 기법과 데이터를 활용하고 결합할 수 있는 퀀토피안 플랫폼을 소개해 실제 시장에서 거래를 수행하는 알고리즘 전략을 구현한다
7장, ‘선형 모형’에서는 추론과 예측을 위해 선형 및 로지스틱 회귀 분석을 사용하는 방법과 과적합(overfitting) 위험을 관리하기 위한 규제화(regularization) 방법을 보여 준다. 퀀토피안 트레이딩 플랫폼을 보여 주고, 요인 모델을 구축하고 자산 가격을 예측하는 방법을 알아본다.
8장, ‘시계열 모형’에서는 벡터자기회귀 모형과 공적분 검증을 포함하는 단변량과 다변량 시계열을 설명하고, 페어 트레이딩 전략에 어떻게 적용할 수 있는지를 다룬다.
9장, ‘베이지안 머신러닝’에서는 확률 모형을 공식화하는 방법, 마르코프체인 몬테카를로(MCMC) 샘플링, 변형 베이즈가 근사 추론을 용이하게 하는 방법을 제시한다. 또한 파라미터와 모형 불확실성에 대한 더 깊은 인사이트를 얻고자 확률적 프로그래밍을 위해 PyMC3를 사용하는 방법을 설명한다.
10장, ‘결정 트리와 랜덤 포레스트’에서는 통찰력과 예측을 위해 비선형 모형을 구축하고, 훈련하고, 조정하는 방법을 보여 준다. 트리 기반 앙상블 모형을 소개하고, 랜덤 포레스트가 의사결정 트리의 약점을 극복하고자 부트스트랩 수집(bootstrap aggregation)을 사용하는 방법도 소개한다.
11장, ‘경사 부스팅 머신’에서는 고성능 훈련과 예측을 위해 xgboost, lightgbm, catboost 라이브러리를 사용하는 방법과 수많은 하이퍼파라미터를 조정하는 방법을 심층적으로 검토한다.
12장, ‘비지도학습’에서는 알고리즘 트레이딩을 위한 차원 감소와 군집을 사용하는 방법을 소개한다. 데이터 기반 위험요소를 추출하고자 주요인 분석(PCA), 독립 요인 분석(ICA)을 사용한다. 여러 군집 분석 기법을 제시하고, 자산 분배를 위한 계층적 군집을 사용하는 방법을 보여 준다.
3부, '자연어 처리'에서는 텍스트 데이터에 초점을 맞추고 핵심 대체 데이터에서 고품질 신호를 추출하기 위한 최신의 비지도학습 기법을 소개한다.
13장, ‘텍스트 데이터로 작업하기’에서는 텍스트 데이터를 수치형식으로 전환하는 방법을 보여 주고, 감성 분석을 위해 2부에서 소개한 분류 알고리즘 기법을 대규모 데이터셋에 적용한다.
14장, ‘토픽 모델링’에서는 많은 수의 문서를 요약할 수 있는 잠재적인 토픽을 추출하는 베이지안 비지도 학습을 적용한다. 또한, 텍스트 데이터를 탐색하는 효과적인 방법과 특징으로서 토픽을 분류 모형에 사용하는 것을 설명한다. 이 기법은 ‘제3장, 금융을 위한 대체데이터’에서 본 어닝 콜 녹취록과 미국 증권거래위원회(SEC)에 제출한 연례보고서에 적용하는 방법을 보여 준다.
15장, ‘단어 임베딩’에서는 신경망을 사용해 기존 텍스트 특징보다 훨씬 나은 의미 맥락을 훨씬 잘 포착하고 텍스트 데이터에서 거래 신호를 추출할 수 있는 매우 유망한 방법인 단어 벡터(word vector) 형태의 최첨단 언어 특징을 학습한다.
4부는 딥러닝과 강화학습을 소개한다.
16장, ‘딥러닝’에서는 4부 전체에 걸쳐 사용할 가장 인기 있는 딥러닝 프레임워크인 케라스(Keras), 텐서플로(TensorFlow), 파이토치(Pytorch)를 소개한다. 또한 규제화와 공통 아키텍처의 개요를 포함한 훈련과 튜닝 기법을 제시한다.
17장, ‘합성곱 신경망’에서는 비정형 데이터로 분류 작업에 매우 강력한 CNN을 다룬다. 성공적인 아키텍처 디자인을 소개하고, 경제 활동을 예측하고자 위성 데이터를 훈련시키며, 훈련 속도를 높이기 위한 전이학습(transfer learning)을 사용하는 것을 설명한다.
18장, ‘순환 신경망’에서는 RNN이 시계열을 포함해 시퀀스-투-시퀀스(Seq2Seq) 모델링에 어떻게 유용한지를 보여 준다. RNN이 어떻게 장기에 걸쳐 비선형 패턴을 포착하는지 보여 준다.
19장, ‘오토인코더와 적대적 생성망’에서는 고차원 데이터의 비선형 압축을 위한 오토인코더와 합성 데이터를 생성하는 가장 중요한 혁신 중 하나인 GAN을 포함한 비지도 딥러닝에 대해 설명한다.
20장, ‘강화학습’에서는 시간에 따라 자신의 환경에 대응해 의사결정을 최적화하는 방법을 배우는 에이전트(agent)의 설계와 훈련을 허용하는 강화학습을 제시한다. 오픈 AI gym을 이용해 시장 신호에 대응하는 에이전트를 어떻게 구축하는지 알 수 있게 된다.
21장, ‘다음 단계’에서는 1~20장의 내용을 요약한다.
다양한 데이터의 가용성이 증가하면서 알고리즘 트레이딩 전략의 전문성에 대한 수요도 늘고 있다. 이 책을 통해 광범위한 데이터 원천에 머신러닝(ML)을 선택하고 적용해, 강력한 알고리즘 전략을 개발할 수 있을 것이다.
먼저 데이터베이스의 평가, 파이썬을 이용한 데이터 API의 접근, 퀀들(Quandl)을 이용한 금융 데이터 접근과 예측 오차 관리와 같은 본질적 요소를 소개한다. 그리고 Pandas, Seaborn, StatsModels, Scikit-learn을 사용해 알고리즘 모델을 구축하고 훈련하는 데 사용할 수 있는 다양한 머신러닝 기법과 알고리즘을 다룬다. 그다음 StatsModels를 사용한 AR(p), MA(q)와 ARIMA(p, d, q)를 구축, 추정 및 해석한다. PyMC3를 사용해 불확실성 개념을 구별하고자 하며, 이를 위해 사전확률(prior), 증거(evidence) 및 사후확률(posterior)의 베이지안 개념을 적용한다. 또한 NLTK, Scikit-learn과 spaCy를 활용해 감성 점수를 금융 뉴스에 할당하고, 트레이딩 시그널을 추출하기 위해 문서를 분류한다. 복잡한 고급 알고리즘을 설계하고자 케라스를 사용해 순전파 신경망(Feedforward Neural Network), 순환 신경망(RNN, Recurrent Neural Network)과 합성곱 신경망(CNN, Convolutional Neural Netowrk)을 설계하고 구축하고 조정하고 평가하는 방법을 배운다. 경제활동을 예측하기 위해 위성 이미지 데이터에 전이학습(transfer learning)을 적용한다. 마지막으로 강화학습(reinforcement learning)을 적용해 최적 트레이딩 결과를 얻는다.
이 책의 마지막에 이르게 되면 알고리즘 트레이딩을 채택해 현명한 투자 전략을 구현하게 될 것이다.
공인재무분석사(CFA)이며, 어플라이드 에이아이(Applied AI)의 창립자이고, 선임 데이터 과학자다. 여러 산업에서 사업 목적을 데이터와 AI 전략으로 전환하고자 하는 포춘 500대 기업과 스타트업 회사들을 자문하고 있으며, 데이터 과학 팀을 구축하고 ML 솔루션을 개발하고 있다. 현재의 사업을 하기 이전에 국제적 투자 회사의 매니징 파트너 겸 선임 데이터 과학자였으며, 예측 분석 도구와 투자 리서치 실무를 구축했다.
또한 15개 시장에서 사업을 하는 국제적 핀테크 스타트업의 임원이었으며, 세계은행(World Bank)에서 근무했고, 신흥시장의 중앙은행들을 자문한 바 있으며 4개 대륙의 6개 언어로 작업했다. 하버드대학교와 베를린대학교에서 석사학위를 취득했고, 제너럴 어셈블리(General Assembly)와 데이터캠프(Datacamp)에서 데이터 과학을 가르치고 있다.
“이 책은 트레이딩과 투자에 머신러닝을 적용함으로써 가치를 창출할 수 있도록 전략적 관점, 개념적 이해, 실무적인 도구를 갖추는 것이 목표다. 이를 위해 머신러닝을 독립적인 부분이 아닌 프로세스의 중요한 요소로 다룬다.” - 스테판 젠슨(Stefan Jansen)
금융시장의 흐름을 이해하려면 시장 데이터, 공시, 재무, 뉴스, SNS 등 수많은 요인을 분석해야 합니다. 데이터를 효율적으로 관리하기 위해 금융시장에서도 점차 머신러닝과 딥러닝 기술이 사용되고 있으며, 트레이딩 분야에도 활용도가 높아진 상황입니다. 이 책은 이러한 흐름에 맞춰 머신러닝 및 딥러닝 기술은 물론 알고리즘 트레이딩의 아이디어에서 실행까지 전반적인 프로세스에 초점을 맞춰 서술하고 있어 이 분야의 바이블이 될 수 있는 좋은 안내서입니다. 모든 트레이딩 책이 그렇듯이 이 책만 보고 돈을 벌 수 있다고는 말할 수 없습니다. 다만 지은이의 아이디어와 머신러닝 및 딥러닝 기술을 배워 자신의 경험과 아이디어를 결합한다면 현재보다 좋은 결과를 기대할 수 있다고 생각됩니다. 또한 머신러닝과 딥러닝의 금융 활용뿐만 아니라 기초 입문서의 역할도 하고 있어 핀테크 인재를 양성하기 위한 재무 투자 관련 학부와 대학원 교재로 손색이 없다고 생각합니다.
이 책은 지은이가 15장까지의 머신러닝 내용을 먼저 발간했습니다. 지난해 겨울, 번역을 마무리하고 있는 가운데 딥러닝 관련 내용인 16장 이후의 5장이 추가돼 번역서를 출간하기까지 약간의 시간이 더 소요됐습니다. 추가 보강된 딥러닝과 강화학습 내용도 즐겁게 학습해 주시면 감사하겠습니다. 지은이는 이 책에서 소개하지 못했거나 추가 및 수정되는 내용을 깃허브에 계속 업데이트하고 있습니다. 독자 여러분도 지은이의 깃허브에 업데이트되는 코드 및 관련 논문 등의 추가 자료를 확인해서 학습해 주시기 바랍니다(https://github.com/stefan-jansen).
경북대학교에서 경영학석사(재무전공)학위를 받고, 한국외국어대학교에서 ‘장외개별주식옵션 내재변동성 실증분석’으로 경영학 박사학위를 받았다. 외환선물㈜, 리딩투자증권, 한국투자증권, 한화투자증권에서 애널리스트, 옵션딜러, 리스크퀀트, 장외파생상품 마케터로 근무했다. 이후 NICE채권평가가 이름을 바꾼 NICE P&I에서 금융공학연구소 실장으로 근무했고, 현재 AI사업본부 정보사업실장으로 재직하고 있다. 저서로는 서울경제경영에서 출간한 『장외파생상품 실무입문』(서울경제경영, 2014)이 있으며, PLOS ONESCIE, 증권학회지, 재무관리연구, 금융공학연구에 재무 및 파생상품 관련 논문을 게재했다. 삼성경제연구소(SERI) 한국금융공학포럼 시샵과 한국금융공학회 산학협력위원으로 활동하고 있다.
카네기멜론대학교에서 석사학위를 받고, 피츠버그대학교 Finance Ph.D, CFA, FRM이며 금융, 투자 및 경제분석 전문가다. 삼성생명, HSBC, 새마을금고 중앙회, 한국투자공사 등의 국내 유수 금융기관, 금융 공기업에서 자산운용 포트폴리오 매니저로 근무했으며, 현재 딥러닝과 강화학습을 금융에 접목시켜 이의 전파와 저변확대를 보람으로 삼고 있다. 저서(공저)로는 『금융공학프로그래밍』(한빛미디어, 2009)이 있으며, 번역서로는 길벗에서 출간한 『딥러닝 부트캠프 with 케라스』(길벗, 2017), 『프로그래머를 위한 기초해석학』(길벗, 2018) 등이 있다. 누구나 자유롭게 머신러닝과 딥러닝을 자신의 연구나 업무에 적용해 활용하는 그날이 오기를 바라며 매진하고 있다.
[p.71 밑에서 5행]
이 책의 범위를 벗어나는 것이만
->
이 책의 범위를 벗어나는 것이지만
[p.158 : 8행]
00-data-prep.ipynb
->
feature_engineering.ipyn