R과 딥러닝을 활용한 페어 트레이딩 (Pairs Trading): 네이버 블로그

마지막 업데이트: 2022년 5월 24일 | 0개 댓글
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기
https://www.fidelity.com/bin-public/060_www_fidelity_com/documents/brokerage/overview-factor-investing.pdf

[ML4T] Machine Learning for Trading: From Idea to Execution

GitHub - stefan-jansen/machine-learning-for-trading: Code for Machine Learning for Algorithmic Trading, 2nd edition.

Code for Machine Learning for Algorithmic Trading, 2nd edition. - GitHub - stefan-jansen/machine-learning-for-trading: Code for Machine Learning for Algorithmic Trading, 2nd edition.

0. 들어가며

퀀트 공부를 제대로 시작해야겠다고 항상 생각은 하고 있었지만 실천을 못하고 있었는데 마침 블라인드 금융 라운지에서 알고리즘 트레이딩 스터디를 구하는 글이 올라왔다. 프로젝트도 막바지라 야근도 많아지고, 글또 글도 계속 써야해서 사실 더 시간 내기가 쉽지 않을 것 같기는 했지만, 스터디를 하려고 모인분들이 대부분 증권사에 다니시는 분들이어서 이이럴때 아니면 언제 증권사 현업 분들이랑 스터디를 할까 싶어 눈 딱감고 스터디를 해보기로 했다. 스터디 교재는 최근 2판이 번역된 퀀트 투자를 위한 머신러닝 딥러닝 알고리즘 트레이딩 2/e 으로 하기로 했는데, 스터디를 준비하면서 좀 읽다보니 번역투 문장들이 거슬리는 부분이 많고 의미전달이 분명하지 않은 경우가 있어 킨들 버전을 추가로 구매했다. 책이 너무 무거워서(1100페이지 정도 됨) 들고다니기는 힘들것 같기도 했고. 스터디를 하고 내용을 정리해 두는 것이 나중에 다시 볼 때 도움이 될 것 같아 스터디 내용을 계속 정리해보려고 한다.

1. 책의 구성

이 책은 크게 4부로 나누어지고 부록을 포함하여 총 24장으로 구성되어 있다. 1부에서는 초과수익을 얻기 위한 알파 팩터를 찾고 포트폴리오는 최적화 하는 방법을 다루고 있고, 2부에서는 선형모형을 이용한 전통적인 방법에서 출발하여 XGBoost, LightGBM, Catboost 같이 비교적 최근에 나온 방법론의 적용(12장)까지 다루고 있다. 3부는 자연어 처리, 4부는 딥러닝과 강화학습을 커버하는데 텍스트나 이미지 데이터 등의 대체 데이터(alternative data)를 어떻게 트레이딩에 활용할 수 있는지 설명하고 있다. 강화학습은 트레이딩 실행 단계(excution)에서 적용을 고려해 볼 수 있는 방법이다.
1부. 데이터, 알파 팩터, 포트폴리오
1장. 트레이딩용 머신러닝: 아이디어에서 주문 집행까지
2장. 시장 데이터와 기본 데이터: 소스와 기법
3장. 금융을 위한 대체 데이터: 범주와 사용 사례
4장. 알파 팩터 리서치
5장. 포트폴리오 최적화와 성과 평가

2부. 트레이딩을 위한 ML: 기본
6장. 머신러닝 프로세스
7장. 선형 모델: 리스크 팩터에서 수익률 예측까지
8장. ML4T 작업 흐름: 모델에서 전략 백테스트까지
9장. 시계열 모델
10장. 베이지안 머신러닝: 동적 샤프 비율과 페어 트레이딩
11장. 랜덤 포레스트: 일본 주식 롱/숏 전략
12장. 거래 전략 강화
13장. 비지도학습을 활용한 데이터 기반 리스크 팩터와 자산 배분

3부. 자연어 처리
14장. 트레이딩을 위한 텍스트 데이터: 감성 분석
15장. 토픽 모델링
16장. 어닝 콜과 SEC 공시 보고서를 위한 단어 임베딩

4부. 딥러닝과 강화학습
17장. 딥러닝
18장. 금융 시계열과 인공위성 이미지를 위한 CNN
19장. 순환 신경망
20장. 조건부 위험 요인과 자산 가격 결정을 위한 오토인코더
21장. 합성 시계열 데이터를 위한 적대적 생성 네트워크
22장. 심층 강화학습: 트레이딩 에이전트의 구축
23장. 결론과 다음 단계
부록. 알파 팩터 라이브러리

2. 1장 내용 요약

(1) 알고리즘 트레이딩이란?

알고리즘 트레이딩이란 트레이딩 전략의 일부나 전부를 자동화할 목적으로 알고리즘(목표를 달성하기 위한 규칙이나 절차)을 이용하는 트레이딩 방식으로, 데이터 수집부터 실제 주문 집행까지의 일련의 과정을 포괄한다. 1장에서 얻어갈 수 있는 주요 내용 중 하나는 트레이딩을 위한 end to end 머신러닝 워크플로우이다.

목차를 기준으로 보면 알고리즘 트레이딩은

  • 자신의 목표(ex. 벤치마크를 초과하는 수익률 달성)를 정하여 평가방법을 세우고(5장, 8장),
  • 데이터를 이용해서(2장, 3장)
  • 피쳐를 뽑아내고(4장, 13장, 20장, 3부 텍스트, 4부 이미지)
  • 예측 모델에 피쳐를 투입하여 얻어진 결과값(7장, 9~12장, 19장)으로
  • 포트폴리오를 최적화하고(5장)
  • 시뮬레이션으로 테스트 해본 다음(21장)
  • 효과적으로 주문하는(22장)

일련의 과정을 통해 수행할 수 있다.

(2) 투자업계에서 머신러닝의 부상

팩터 투자와 스마트 베타 펀드

책에서는 투자업계에서 머신러닝을 사용하려는 동인을 ML 모형을 이용한 새로운 리스크 팩터의 발견과 수익률에 대한 뛰어난 예측력 때문으로 보고있다. 기존의 자본 자산 가격 결정 모델(Capital Asset Pricing Model; CAPM) 에서는 기대수익(Expected Return; Ri)을 무위험 수익(Risk Free Return; Rf, ex. 국채 금리)과 시장 포트폴리오 기대수익(Expected Market Return; Rm, ex. S&P 500 수익률)의 함수로 표현한다.
$$Ri = Rf + \beta\times(Rm-Rf)$$
여기서 베타(\(\beta\))는 전체 시장 움직임 대비 개별 종목이 얼마나 민감하게 움직이는지 측정한 지표로 S&P 500 지수가 1% 오를 때 애플이 5% 오른다면 S&P 500 지수에 대한 애플의 베타는 5가 된다. CAPM이 등장한 이후로 자산 수익률을 단일 팩터가 아닌 멀티 팩터로 설명하는 시도가 지속적으로 이루어졌고(특히 2008년 금융위기 이후), 이 과정에서 스마트 베타 펀드(smart beta fund)가 생겨났다. 스마트 베타 펀드는 다양한 팩터를 함께 고려하여 자산의 수익률을 추정한다.

https://www.fidelity.com/bin-public/060_www_fidelity_com/documents/brokerage/overview-factor-investing.pdf

알고리즘 트레이딩 기반 펀드의 성공

  • 1982년 르네상스 테크놀로지를 설립하고 최고 퀀트 회사로 키운 수학자 제임스 사이먼스가 운용하영 메달리온 펀드는 1982년 이후 연평균 약 35%의 수익률을 거둠
  • 3대 퀀트 헤지 펀드 디이쇼(DE Shaw), 시타델(Citadel), 투시그마(Two Sigma)는 알고리즘에 기반을 둔 시스템 전략을 사용해 2017년에 총수익 기준 TOP 20 펀드에 이름을 올림
  • 이코노미스트에 따르면 2016년 시스템 펀드는 미국 시장에서 기관 거래의 가장 큰 부분을 차지하는 것으로 나타났고, 2019년에는 기관 거래 규모의 35%이상을 차지해 2010년의 18%에서 크게 증가

머신러닝과 대체 데이터

대체 데이터(alternative data): 위성 이미지, 신용카드 거래 데이터, 감성 분석, 모바일 위치 정보 데이터, 웹 사이트 스크래핑 등의 데이터를 말하며, 잠재적인 거래신호를 포함하는 모든 데이터 소스를 포괄한다. 머신러닝이 투자업계에서 사용되기 시작한 가장 큰 이유는 대체 데이터를 분석하기 위해서라고 생각하는데, 대용량의 신용카드 거래 데이터 분석이나 위치 정보 데이터 분석, 위성 이미지 분석 등은 전통적인 방법론 보다는 머신러닝을 이용하는 것이 더 효과적이기 때문이다. 미국에서는 대체 데이터 거래 시장이 빠르게 성장하고 있고, 동시에 개인정보 보호에 대한 문제에 대한 관심이 높아지면서 규제 기관이 데이터 제공업체들을 조사하기 시작했다고 한다.

(3) 책의 내용과 스터디 과정에서 인상적이었던 부분

1장의 내용을 읽고 스터디 발표자님의 설명을 들으면서 인상적이었던 부분이나 떠오른 생각들을 나열해보면

  • 텍스트나 이미지 같은 대체 데이터를 이용하여 추가 수익을 얻기 위한 다양한 시도가 이루어지는 중
    • 텍스트 데이터 분석을 기반으로 한 ETF(BUZZ)
    • Autoencoder Asset Pricing Models
    • data leakage와 유사한 맥락인데, 학습시점에서 사용할 수 없는 데이터는 학습 데이터에서 제외해야 한다는 것
    • ex. 2020년 12월까지의 데이터로 모형 학습을 할 때 2020년 4분기 재무정보가 2021년 3월에 공시되었다면 학습에 사용하면 안됨
    • 비즈니스 모델의 중요성을 다시 한 번 생각해보게 된다.
    • 과연 zipline은 아직 멀쩡할 것인가?

    3. 글을 마치며

    퀀트 책만 계속 사다가 드디어 공부를 시작했다. 혼자 공부하려고 했을 때보다가 같이 공부하는 사람들이 있으니 동기부여도 더 되는 것 같고, 증권사 현업분들이랑 같이 스터디를 하니 뭔가 더 든든한 느낌이 있다. 책 목차만 봐도 이 책만 잘 정리해두면 퀀트 트레이딩에 대한 기초는 잘 잡고 갈 수 있을 것 같다. 책의 구성은 정말 알차게 되어 있는데 글 도입부에서 언급한 것처럼 번역의 아쉬움이 크긴하다. 정확한 의미를 이해하기 위해서 여러번 읽어보다가 결국엔 원문을 찾아보게 되는 불편함이 있다. 그래도 한글로 읽으면 빠르게 전반적인 내용을 파악할 수 있다는 장점이 있긴 하니(영어를 한글처럼 읽을 수 있는 분들은 예외이겠지만) 관심이 있다면 번역본을 사서 읽어보는 것도 괜찮은 선택으로 보인다.

    트레이딩 학습 방법

    2017. 12. 20. 14:22

      본문 폰트 크기 조정 본문 폰트 크기 작게 보기 본문 폰트 크기 크게 보기 가

    약 2년 전쯤 시계열분석을 중심으로 Pairs Trading을 다루어 보았는데요, 이번에는 기계학습과 결합하고 내용을 업그레이드해 보았습니다. 교육자료는 우측 상단 첨부파일에 첨부하였습니다. (실습파일 제외)

    1. R 프로그래밍 기초

    1-1. R 소개
    1-2. R 설치
    1-3. 페어 트레이딩을 위한 주요 패키지 구성
    1-4. quantmod 패키지 : 데이터 수집
    1-5. quantmod 패키지 : 차트 그리기
    1-6. quantmod 패키지 : 기술적 지표 그리기
    1-7. quantmod 패키지 : Back Test

    2. 페어 트레이딩 개요

    2-1. 페어 트레이딩 개요 및 예시
    2-2. 통계적 관계 (상관관계, 공적분 관계)
    2-3. 단순 페어 트레이딩
    2-4. 정규화 가격 지수 (NPI) 및 NPI 스프레드
    2-5. NPI 스프레드
    2-6. 삼성전자 보통주, 우선주의 NPI 생성 및 관찰 예시
    2-7. NPI 페어 트레이딩 적용 및 손익 계산
    2-8. 단순 페어 트레이딩의 문제점 및 핵심 주제


    3. 시계열 데이터

    3-1. 시계열 분석의 목적 및 방법
    3-2. 시계열 데이터의 특징
    3-3. 시계열 데이터와 정상성 (Stationary)
    3-4. 시계열 데이터의 추세와 정상성 (Trend Stationary)
    3-5. 시계열 데이터의 자기 상관성 (ACF)
    3-6. 시계열 평활화 (이동평균, Kernel, Spline, Kalman Filter)


    4. 시계열 분석 기본 모형

    4-1. 시계열 분석 모형 (시간 영역 분석)
    4-2. AR 모형
    4-3. MA 모형
    4-4. ARMA 모형
    4-5. ARIMA 모형
    4-6. SARIMA 모형


    5. 회귀분석을 이용한 페어 트레이딩

    5-1. 시장 중립 전략 (Market Neural Strategy)
    5-2. 로그 가격 스프레드와 베타 헤지
    5-3. 단순 회귀분석 (종속 회귀)
    5-4. 베타 측정
    5-5. 베타 스프레드 생성 및 관찰 예시
    5-6. 진입, 청산 및 손익 계산 예시
    5-7. 최적 진입선
    5-8. 단순 회귀분석의 문제점


    6. 직교 회귀분석을 이용한 페어 트레이딩

    6-1. 직교 회귀분석 개요 (TLS)
    6-2. 최소 직교 거리와 면적에 의한 직교 베타 산출
    6-3. 직교 회귀분석에 의한 페어 트레이딩 예시
    6-4. 직교 회귀분석의 문제점


    7. 공적분 분석을 이용한 페어 트레이딩

    7-1. 공통 추세 모형 (Common Trend Model)
    7-2. 공적분 모형 (Cointegration Model)
    7-3. ADF 검정
    7-4. 공적분 계수 추정 및 예시
    7-5. 공적분 분석에 의한 페어 트레이딩 예시
    7-6. 공적분 분석과 회귀분석의 비교
    7-7. 공적분 분석의 문제점


    8. 페어 스프레드의 통계적 특성 분석

    8-1. 시계열 분석에 의한 스프레드 분석
    8-2. 스프레드의 정상성 (Stationality)
    8-3. 스프레드의 정규성 (Normality)
    8-4. 분석 기간과 스프레드의 변화
    8-5. 이동 베타와 이동 상관계수
    8-6. 편상관관계 (Partial Correlation)
    8-7. Partial Correlation 스프레드


    9. 다중 페어 트레이딩

    9-1. 다중 페어 트레이딩 개요 및 유형
    9-2. 지주사-계열사 예시
    9-3. 다중 회귀분석에 의한 다중 페어 트레이딩
    9-4. 공적분 분석에 의한 다중 페어 트레이딩
    9-5. 다중 회귀분석과 공적분 분석의 비교


    10. 백 테스트 (Back Test)

    10-1. 페어 트레이딩 절차
    10-2. 페어 트레이딩 전략의 백 테스트
    10-3. 백 테스트 방법론
    10-4. 페어 스프레드와 실제 손익
    10-5. Rolling (Dynamic) 스프레드 추정
    10-6. 균형점의 변화와 Rolling 스프레드
    10-7. 백 테스트 예시
    10-8. 페어 스프레드의 기술적 분석 지표


    11. 페어 선정 방법

    11-1. 두 종목의 유사도 측정
    11-2. 주가 상관관계와 수익률 상관관계
    11-3. 상관관계 그래프 관찰 : 데이터 수집
    11-4. 상관관계 그래프 관찰 : 데이터 세트 생성
    11-5. 가격 상관관계 그래프 관찰
    11-6. 수익률 및 거래량 상관관계 그래프 관찰
    11-7. 상관계수에 의한 페어 트레이딩 종목 선정
    11-8. 포트폴리오 이론에 의한 효율적 투자선 관찰


    12. 딥러닝과 스프레드 학습

    12-1. 데이터 학습의 유형
    12-2. Supervised Learing 예시
    12-3. 인공 신경망의 기본 개념
    12-4. 인공 신경망 알고리즘 (예시)
    12-5. 연결 가중치 조절 원리 (Error Backpropagation)
    12-6. 학습용 데이터 세트 생성 방밥
    12-7. 데이터 세트 학습 방법
    12-8. 딥러닝 패키지 설치 (Tensorflow, keras)
    12-9. 딥러닝에 의한 페어 트레이딩의 손익 예측 (예시)


    13. 스프레드 시뮬레이션과 추가 학습

    13-1. 스프레드 시뮬레이션과 사전 학습
    13-2. 주가의 기하브라운운동 (GBM)의 몬테카를로 시뮬레이션
    13-3. 상관관계를 갖는 두 주가에 대한 몬테카를로 시뮬레이션
    13-4. 시뮬레이션으로 생성한 데이터 세트 사전 학습
    13-5. 시장 데이터로 생성한 데이터 세트 추가 학습
    13-6. 분석의 문제점과 개선 방향


    14. 스프레드 컨트롤과 강화학습

    14-1. 페어 트레이딩 최적화 모형 (Stochastic Optimal Control)
    14-2. 최적화 모형 관련 논문 소개
    14-3. 페어 트레이딩 모델
    14-4. 목적 함수와 최적해
    14-5. Stochastic Optimal Control과 강화학습 (Reinforcement Learning)
    14-6. 페어 트레이딩의 강화학습 관련 논문 소개
    14-7. 데이터 학습 유형 비교
    14-8. 페어 트레이딩 환경 (MDP) 설정 (예시)
    14-9. 상태, 최적화의 목표 및 Action 설정 (예시)
    14-10. Agent의 강화학습 (예시)

    딥러닝 트레이딩 시스템을 위한 설계

    딥러닝 혹은 기계학습으로 트레이딩 시스템을 만드는 방법은 무한히 많지만, 실제로 희망하는 수준으로 끌어올릴 가능성은 지극히 적다. 도전해본 사람들의 99.99%는 실패로 이어지고 있을 것이고, 그나마도 룰 베이스드 시스템의 수익성을 뛰어넘기는 상당히 어렵다. 그중 대다수는 방향을 잘못 결정해서, 설계를 잘못해서가 아닐까 한다. 좋은 설계가 이뤄지면 머지않은 미래에 이런 시스템들의 수는 늘어날 것이다.

    필자는 트레이더로 일하면서 시장에서 여러 종류의 ‘기계'(알고리즘)를 봐왔는데, 정말 우수한 알고리즘과 운용역의 조합을 간접적으로 확인하며 언젠간 저런 방대한 시스템을 만들겠다며 고민을 해왔었다. 그러나 기존의 룰베이스드 시스템으로는 혹은 최적화 기법으로는 시간이 너무 많이 걸리는 영역들이 있었는데, 정확히 이런 부분들을 딥러닝으로 대체하면 되지 않을까 하는 생각을 했다. 굳이 필자의 회사인 두물머리에도 매우 우수한 데이터 사이언스 팀과 인공지능팀이 있음에도 이런 시스템을 설계하지 않는 이유는, 정작 대중에겐 큰 도움이 안될 것 같아서이다. 그래서 현업 동료들 및 후배들을 위해 설계 아이디어를 조금이나마 던져 보고자 한다.

    일단 금융 데이터의 성격에 대한 아주 정확한 이해가 필요하다. 대부분은 이 데이터의 input에서부터 설계가 잘못되어 있다. 또한, 일반적인 엔지니어들이 금융 데이터에서의 Y값을 설정하는 것 자체가 거의 불가능하다. 트레이딩의 단위에 대한 이해와 설계가 필요하다. 또한, 시장 구조를 흉내 낸 가상시장을 만들어 강화학습을 일으키는 방법론에 대한 견해를 이야기해보겠다. 모두가 트레이더의 정신세계를 역설계 (reverse engineer) 하는 과정이라고 생각하면 될 것이다.

    CNN R과 딥러닝을 활용한 페어 트레이딩 (Pairs Trading): 네이버 블로그 의 구조를 생각하며 금융 데이터에 대한 접근하자.

    금융 데이터는 엄청나게 많다. 가격 정보만 가지고도 하루에 몇 기가의 데이터가 국내시장에서 생성되고 있으니. 그러나 이 금융 데이터를 어떻게 정리하고 인지할 것인가는 거의 풀리지 않은 문제다.

    이 데이터들은 사실 그림으로 치면 픽셀에 가깝다. 픽셀 데이터를 아무리 많이 분석해도 의미 있는 패턴을 발견하긴 쉽지 않다. 우선 이 패턴들이 어떠한 그림을 구성하고 있는지 구성요소를 생각해봐야 그 구성요소를 나눠서 무언가 훈련을 시키든 최적화를 시키든 할 수 있다. 그런데 이 패턴들이 실제 어떻게 구성되는지를 경험해보지 않은 사람은 상상하기 힘들다. 매트릭스의 세계 속 숫자들처럼, 우리 눈에는 그저 노이즈로 보일 수 있다.

    트레이더를 하면서 이런 패턴들을 ‘매직아이’ 같다고 표현해왔다. 몇 년간 잘 들여다보면 눈에 익어서 패턴들이 보이기 시작하는데, 우리의 시신경이 일반적으로 발달해온 방향과 너무 다른 패턴들이어서 어지간한 트레이더의 눈도 자연스럽게 이 패턴들을 인식하기가 쉽지 않다. 독일어 방송을 하루 종일 몇 년간 듣다 보면 억양이랑 문장 구조나 많이 쓰는 표현들이 들려오기 시작하겠지만, 최소한의 문법과 단어들을 알지 못하면 영영 의미에 대한 해석이 되지 않을 것이다. 트레이더들은 이러한 문법을 배우며 전체 언어의 패턴을 배우는 사람들이다.

    일반적인 CNN (Convolutional Neural Network)에서 한 장의 사진을 여러 차원으로 분해하는 과정이 있다. 간단하게는 RGB (red, green, blue) 농도로 분해하여 석 장의 그림을 추출하였다고 해보자. 100X100 픽셀의 그림에서 이제 5,5 에 있는 픽셀은 주변부에 있는 픽셀들과의 상관관계도 중요하지만 다른 그림들의 비슷한 위치에 있는 픽셀들과의 관계도 중요해진다. 예를 들어 RGB 값이 5,5 위치에서 각각 10, 20, 30이라고 해보자. 그렇다면 그 조합의 색 자체가 가질 수 있는 특정한 의미가 있을 수도 없을 수도 있다. 그런 조합의 색들이 주변부와 어우러지는 이면에 있는 소규모의 패턴, 중규모의 패턴, 대규모의 패턴들의 엮임 (entanglement)에 대한 모종의 인사이트를 추출하는 과정이 Deep Neural Network 라고 할 수 있다.

    금융에서도 마찬가지로 접근해야 숙제가 풀린다.

    예를 들어 모 종목이 10:00:00 시에 120주 매도호가에 거래됐다가, 0.002 초 후에 10주 또 매도호가에 거래됐다가 0.009 초 후에 매도호가가 사라지며 같은 매수호가에 130주 주문이 들어왔다고 해보자. 여기서 시간과 거래량과, 호가와 전체 시장과의 관계와 그리고 이들이 서로 간에 얽혀 있는 entanglement에서 픽셀 단위를 규정해야 할 것이다. 또한, 이 위에 장중 누적 거래량이나 가격 변동성, 매매 주체, 선물 및 옵션 매매 정보 등을 포함하여 2차 가공 데이터까지 합쳐지면 한도 끝도 없이 많은 데이터가 한 픽셀에 누적될 수 있다.

    이들이 서로 길고 짧은 수많은 잠재 패턴으로 엮여 있을 것이다. 그것을 풀어내는 것이 문제다.

    이런 것을 기존의 통계적 방법으로 분석하자면 너무 복잡해진다. 그래서 간단한 가공지표를 활용해 압축하곤 했었는데 결과적으로 모든 데이터를 활용하지 못하는 아쉬움이 있었다. 패턴은 그 안에 숨겨져 있는데 말이다.

    거래 단위

    데이터를 만지면서 백테스트할 때는 ‘거래 단위’의 개념을 명심해야 한다. 거래 단위란 진입과 청산을 이루고 있는 하나의 거래다. 거래가 가능한 진입과 그의 함수로 나오는 청산. 청산은 최소한 binary 한 확률을 가지고 있다. 수익 청산만이 아니라 손절매 청산의 세트가 있어야 한다는 것이다. 복잡해지면 수익 청산과 손절매 청산의 경우의 수가 꽤 많아질 수도 있다. 이더리움이나 에스크로 서비스처럼, 거래가 이뤄지기 위해서는 특정한 조건들이 연루된다. 이런 거래 단위로 데이터를 분석하지 않으면 데이터가 너무 많아진다. 거래 단위로 분석이 가능하지 않은 데이터는 다 날려버리면 연산 속도도 증가한다. 낚시를 할 거면 내 낚싯대와 미끼를 가지고 물고기를 잡을 수 있을지 없을지만을 분석해야지, 자칫 강 전체의 데이터를 R과 딥러닝을 활용한 페어 트레이딩 (Pairs Trading): 네이버 블로그 모두 수집해 분석하려 하면 의미 있는 답을 얻는데 시간이 너무 걸린다고 하면 맞는 비유일까?

    Agent

    금융시장은 기본적으로 다양한 주체들의 싸움이다.

    초단타 트레이더, 단타 트레이더, 스윙 트레이더, 대규모 장기 투자 자금, 차익거래 등이 서로 간의 의도를 완전히 이해하지 못한 채 자신의 먹거리를 찾아 헤매고 있다. 엄청나게 많은 스피커에서 다 자기 마음대로 노이즈가 흘러나와 주파수가 겹치기도 하고 밀리기도 하는 셈이다. 줄이 1억 개인 줄다리기랑 비슷하다고 생각해도 된다. 누가 어디로 어떻게 힘을 주고 있는지 가늠할 수가 없지만, 결국 어디선가 힘들이 합쳐져 이리저리 밀리고 당겨지는 준카오스적 상태다. 그래서 많은 이들은 시장이 아예 랜덤하다고 얘기한다. 그러나 그렇지 않다. MMORPG일 뿐이다. 이 각각의 주체를 Agent로 구현해야 한다.

    이 Agent 들은 특정한 패턴을 포착하여 그것을 활용하여 돈을 벌고자 한다. 때로는 그 패턴들은 존재하지 않는 일시적인 허구의 패턴이기도 하기에 수많은 헛발질이 포착된다. 그런데 누군가 특정 패턴에 대한 믿음을 토대로 매매를 일으키면 그 매매 자체로 또 새로운 데이터가 생성된다. 그 매매로 인해 발생한 가격변동이나 호가 변동으로 인해 다른 Agent에게는 또 새로운 매매의 기회가 생길 수도 있다. 각각의 Agent 들의 의도를 정확히 다 이해할 필요는 없다. 현존하는 패턴이냐 아니냐, 수익화를 시도해볼 만 하냐 아니냐 만이 모든 Agent 들의 궁극적인 자문이다.

    이러한 시장 상황을 시뮬레이션하려면 데이터를 무작위로 생성해 테스트하는 방법도 있지만, 가상의 시장 게임환경을 직접 만들어야 할 것 같다. 일단 다채로운 Agent 들을 만들어 일주일간 1,000억의 주문을 균등 배분해 매수하는 놈, 아무 생각 없이 샀다 팔았다 하는 놈, 이틀 동안 특정 종목을 갈아타는 놈 등 단순한 Agent 들로 시장과 비슷한 환경을 만들어둔다. 이후에 그 안에 주어진 기간구조 내에 (예: 0.5초 사이에만 매매하는 놈, 20초 사이에만 매매하는 놈 등) 트레이딩 기회를 포착하는 Agent 들을 만들어 풀어두면 가상의 시장에서의 강화학습이 시작된다. 알파고들끼리 싸우면서 서로 더 고수가 되어 가는 과정과 비슷하다. 이렇게 훈련된 Agent 들이 충분히 똑똑해질 때까지 양성해보면 어떨까. 시간이 얼마나 걸릴진 잘 모르겠다. 대신 아주 다양한 시장환경을 생성하여 무한히 훈련할 수 있다는 장점이 있다. 실제 데이터는 이만큼 많이 구하기가 어렵고, Agent 들의 시장 충격을 예측하기가 어렵다.

    이 Agent 들을 다시 실제 시장에서 테스트하여 모종의 패턴인식과 거래를 시도해보면 될 것이다.

    이런 방법론은 트레이더들의 실제 업무를 역설계한 것이다. 되는 패턴을 연구하여 매매로 연결해보고, 돈이 더 안 벌릴 때까지 계속 반복하는 것이다. 내가 시장에서 만난 기계들은 끝없이 패턴들을 찾아 최근 시장에 일정한 텀을 두고 적응하고 있었다. 때로는 그 패턴이 나의 매매이기도 했다. 호가가 얇은 시장에 내가 진입해서 돈을 벌기 시작하면 기계들이 일정 기간 나의 매매를 따라 하면서 내 수익을 오히려 추가시켜주다가, 어느 정도 지나면 내 매매를 잡아먹는 구체적인 방법을 만들어서 내 ‘거래 단위’를 침해했는데, 그 과정이 상당히 체계적이어서 잘 만들어둔 알고리즘 체계라는 확신이 들었다. 호가가 많은 시장 혹은 매매가 느린 시장에서도 이런 현상이 나타나지만, 상대적으로 실제 agent 들이 많아서 알고리즘이 덜 적극적이고 포착하기가 더 어렵다. 그러나 결국 웬만한 기법은 다 더 짧은 기간구조의 알고리즘의 도전을 받게 되어 있다. 나의 매매 자체가 하나의 새로운 기회를 열어주는 경우가 많아서.

    모든 시장에서 돈을 잘 버는 알고리즘은 거의 없다. 거의 없지만 있다면 아마도 특정 시장에서 돈을 잘 버는 알고리즘들의 네트워크일 것이다. 잘하는 트레이딩 본부는 많은 수의 트레이더들을 데리고, 특정한 시장이 왔을 때 돈을 잘 버는 트레이더에게 자원을 몰아주는 방식을 사용한다. 비슷한 구조로 설계하는 것이 합리적일 것이다.

    나는 위에 설명한 설계를 직접 개발해보지 않아 구체적인 문제들을 잘 모른다. 언젠가 해보고자 미뤄둔 일이고 내 개인적인 경험과 매매에서 깨달은 비밀들을 녹여낸 결론이었지만, 어차피 언젠가는 모두가 검토해볼만한 어찌보면 별 것도 아닌 이야기가 아닌가 싶다. 기회가 되면 더 구체적인 이야기도 풀어보겠다. 도움이 될런진 모르겠지만, 아이디어를 얻게 된다면 향후 성과 등도 공유해주고 추가 아이디어도 더해주면 감사하겠다.

    Facebook

    학습방법은 대략적으로 다음과 같습니다.
    1. 2000년부터 2016년까지 미국의 300개 주식 종목들의 일별 데이터를 가지고 학습을 합니다.
    2. Reward는 Daily Return을 이용해서 설계했습니다.
    3. Market environment는 최대한 Open AI gym과 비슷하게 구성했습니다
    - 매 episode마다 random하게 종목을 선택해서 트레이딩을 하며 학습을 합니다.
    - Agent가 학습하면서 마이너스 reward를 연속적으로 몇 번이상 받으면 done=True가 되게 만들어 트레이딩 학습을 중단시킵니다.
    4. 알고리즘은 DQN 사용하였습니다.
    5. long, short가 가능하도록 구현하였고, 거래시 100주 단위로 매매가 일어나게 하였습니다.
    6. state를 구성하는 요소는 총 12개 입니다.

    300종목에 대해서 속도가 너무 더딘 것 같아서, 우선 한 종목에 대해서만 학습을 시켜봤습니다. 그런데 결과가 좋지는 않아보이네요.


    - 전체적인 그래프는 그래도 학습은 나름 하는(?) 모습을 보입니다. 근데 "Step/Episode"를 보면 기껏해야 800 step (3년~4년 / 16년) 까지 밖에 버티지 못하는 모습을 볼 수 있습니다.


    - 파란색 그래프는 제가 보유하고 있는 돈을 해당 주식에 몽땅 투자했을 때 보이는 누적수익률 그래프입니다
    - 주황색은 Agent가 보상을 최대로 하도록 BUY, R과 딥러닝을 활용한 페어 트레이딩 (Pairs Trading): 네이버 블로그 SELL을 해서 얻게되는 누적수익률 그래프 입니다. 예를 들어 y=1.0이 의미하는 것은, 수익이 제 초기투자자본만큼 된다는 의미입니다.(=10000달러로 트레이딩을 시작해서 20000달러가 됨).
    - 주황색 그래프 위의 초록색 원은 "BUY" Signal이고, 빨간색 X는 "SELL" signal 입니다.
    - 초록색 그래프는, 누적 reward 그래프 인데 max value로 scaled된 그래프 입니다. trading결과는 각각 R과 딥러닝을 활용한 페어 트레이딩 (Pairs Trading): 네이버 블로그 다르지만, cumulative reward는 전반적으로 상승하는 모습으로 보이는 것을 보아, 아마 reward 설계를 다시해야될까 싶습니다.

    오래전부터 궁금했는데, 강화학습으로 단일종목 거래에서 절대수익을 얻는 결과를 내는것이 가능할까요?

    관련 업종에서 일하는 사람말로는 절대 한 종목에 대해서는 적어도 "안정적인" 수익은 낼 수 없다고 들었는데, 이 말에는 저도 동감합니다만, 공학적인 관점에서의 의견도 한번 들어보고 싶습니다.

    (정리도 할겸, 관련된 내용들을 블로그에 기록하려던 참이었는데, 결과만 봤을 때는 크게 의미가 없을까봐 우선 TF그룹에 먼저 올려봅니다!)

    퀀트 투자를 위한 머신러닝·딥러닝 알고리듬 트레이딩 2/e [파이썬, Pandas, 텐서플로 2.0, Scikit-learn을 활용한 효과적인 트레이딩 전략]

    도서검색

    머신러닝과 딥러닝 기술을 이용해 알고리듬 트레이딩의 아이디어에서 실행까지 전반적인 프로세스를 서술하는 좋은 안내서다. 2판에서는 전략 백테스팅, 오토인코더, 적대적 생성 신경망(GAN), 이미지 형식으로 변환된 시계열에 합성곱 신경망(CNN) 적용과 같은 최신 내용을 추가했다. 또한 금융 시장 분석으로 100개 이상의 알파 팩터를 설명하고 있으며, 부록으로 기술적 분석에 관한 모든 것을 수록했다. 세계적으로 저명한 AI 콘퍼런스인 NeurIPS에서 발표된 최신 금융 딥러닝 연구를 소개하고 구현한다.

    ◆ 투자와 트레이딩 R과 딥러닝을 활용한 페어 트레이딩 (Pairs Trading): 네이버 블로그 문제를 푸는 머신러닝 기법 구현
    ◆ 시장, 기본, 대체 데이터를 활용한 알파 팩터 연구
    ◆ 지도학습, 비지도학습, 강화학습 모델 설계
    ◆ 판다스, 넘파이와 Scikit-learn을 이용한 포트폴리오 위험과 성과 최적화
    ◆ 머신러닝 모델을 Quantopian 플랫폼 위에서 실전 트레이딩 전략으로 통합
    ◆ 신뢰성 있는 시계열 백테스트 방법으로 전략 평가
    ◆ 케라스, 파이토치와 텐서플로를 사용한 딥신경망 설계와 평가
    ◆ 강화학습을 이용한 OpenAI Gym에서의 트레이딩 전략 개발

    금융시장에 대한 이해와 트레이딩 전략에 관심이 있는 애널리스트, 데이터 과학자, ML 엔지니어라면 이 책이 도움이 될 것이다. 또한 ML을 활용해 더 나은 의사결정을 내리고자 하는 투자 전문가로서 가치도 찾을 수 있다.
    소프트웨어와 ML에 대한 배경지식이 있는 경우 이 영역에 대한 소개자료를 생략할 수 있다. 마찬가지로 전문 지식이 투자에 관한 것이라면 이 책이 제공하는 다양한 배경의 금융 맥락 일부 또는 전부를 잘 알고 있을 것이다.
    이 책은 독자가 매우 역동적인 이 영역을 계속 배우고 싶어 한다고 가정한다. 이를 위해 깃허브(GitHub) 저장소 내의 각 장에 대해 README 파일에 연결된 수많은 학술 참고 자료와 추가 자료를 책의 끝에 제공한다.
    파이썬(Python) 3과 넘파이, 판다스, SciPy와 같은 과학 컴퓨팅 라이브러리를 사용하는 것이 편할 것이며, 계속해서 다른 많은 자료를 얻을 수 있을 것을 기대한다. ML과 사이킷런에 대한 경험이 도움이 되겠지만 기본 워크플로를 간략하게 다루고 격차를 메꾸거나 더 깊이 파고들려면 다양한 리소스를 참조하길 바란다. 마찬가지로 금융과 투자에 기본 지식이 있다면 용어를 더 쉽게 사용할 수 있을 것이다.

    ML이 트레이딩 전략의 설계와 실행에 가치를 더할 수 있는 방법을 종합적으로 소개한다. 데이터 소싱과 전략 개발 프로세스의 다양한 측면과 ML 과제에 대한 다양한 솔루션을 다루는 4개의 부로 구성돼 있다.

    1부에서는 머신러닝을 활용하는 트레이딩 전략 전반에 걸쳐 관련된 기본적인 측면을 다룬다.
    1장, ‘트레이딩용 머신러닝: 아이디어에서 주문 집행까지’에서는 ML이 거래에서 중요한 이유와 방법을 요약하고 투자 프로세스를 설명하며, ML이 가치를 높일 수 있는 방법을 간략히 설명한다.
    2장, ‘시장 데이터와 기본 데이터: 소스와 기법’에서는 거래소 제공 틱 데이터와 보고된 재무 정보를 포함해 시장 데이터를 소싱하고 활용하는 방법을 다룬다.
    3장, ‘금융을 위한 대체 데이터: 범주와 사용 사례’에서는 폭발적으로 증가하는 수의 출처와 공급자를 평가하기 위한 범주와 기준을 설명한다.
    4장, ‘금융 특성 공학: 알파 팩터 리서치’에서는 예측 시그널을 포착하는 데이터 변환을 생성하고 평가 프로세스와 팩터 성과를 측정하는 방법을 설명한다.
    5장, ‘포트폴리오 최적화와 성과 평가’에서는 전략의 실행에 따른 포트폴리오를 관리, 최적화, 평가하는 방법을 소개한다.

    2부에서는 근본적인 지도학습과 비지도학습 알고리듬이 엔드투엔드 워크플로의 맥락에서 트레이딩 전략에 어떻게 정보를 제공할 수 있는지 설명한다.
    6장, ‘머신러닝 프로세스’에서는 ML 모델의 예측 성과를 체계적으로 수립, 훈련, 튜닝, 평가하는 방법을 개략적으로 설명함으로써 단계를 설정한다.
    7장, ‘선형 모델: 리스크 팩터에서 수익률 예측까지’에서는 선형 회귀와 로지스틱 회귀를 추론과 예측에 사용하는 방법과 규제화를 사용해 과적합 위험을 관리하는 방법을 설명한다.
    8장, ‘ML4T 작업 흐름: 모델에서 전략 백테스팅까지’에서는 지금까지 별도로 다룬 ML4T 워크플로의 다양한 구성 요소를 통합한다.
    9장, ‘시계열 모델’에서는 벡터 자기 회귀 모델뿐 아니라 변동성 예측에 대한 ARCH/GARCH 모델을 비롯한 일변량 및 다변량 시계열 진단과 모델을 다룬다.
    10장, ‘베이지안 머신러닝: 동적 샤프 비율과 페어 트레이딩’에서는 확률적 모델과 마르코프 체인 몬테카를로(MCMC) 샘플링 및 변분 베이즈 방법이 대략적인 추론을 어떻게 용이하게 하는지 제시한다.
    11장, ‘랜덤 포레스트: 일본 주식 롱/숏 전략’에서는 통찰력과 예측을 위한 비선형 트리 기반 모델을 구축, 훈련, 조정하는 방법을 설명한다.
    12장, ‘거래 전략 강화’에서는 그래디언트 부스트(Gradient Boost)를 소개하고 고성능 훈련과 R과 딥러닝을 활용한 페어 트레이딩 (Pairs Trading): 네이버 블로그 예측을 위해 XGBoost, LightBGM, CatBoost 라이브러리를 사용하는 방법을 보여준다.
    13장, ‘비지도학습을 활용한 데이터 기반 리스크 팩터와 자산 배분’에서는 알고리듬 거래를 위해 차원 축소와 군집화를 사용하는 방법을 설명한다.

    3부는 텍스트 데이터에 초점을 맞추고 대체 데이터의 핵심 출처에서 고품질 시그널을 추출하기 위한 최첨단 비지도학습 기법을 도입한다.
    14장, ‘트레이딩을 위한 텍스트 데이터: 감성 분석’에서는 텍스트 데이터를 수치형으로 변환하는 방법을 보여주고 감성 분석을 위한 2부의 분류 알고리듬을 대규모 데이터 세트에 적용한다.
    15장, ‘토픽 모델링’에서는 비지도학습을 사용해 많은 문서를 요약한 주제를 추출하고 분류 모델의 특성으로 텍스트 데이터를 탐색하거나 주제를 사용하는 좀 더 효과적인 방법을 제공한다.
    16장, ‘어닝 콜과 SEC 공시 보고서를 위한 단어 임베딩’에서는 R과 딥러닝을 활용한 페어 트레이딩 (Pairs Trading): 네이버 블로그 신경망을 사용해 기존 텍스트 특성보다 의미론적 콘텍스트를 훨씬 더 잘 포착하고 텍스트 데이터에서 거래 시그널을 추출하는 매우 유망한 방법을 나타내는 단어 벡터 형태의 최신 언어 특성을 학습한다.

    4부에서는 딥러닝과 강화학습을 소개한다.
    17장, ‘딥러닝’에서는 4부에서 사용할 가장 인기 있는 딥러닝 프레임워크인 텐서플로 2와 파이토치(PyTorch)를 소개한다.
    18장, ‘금융 시계열과 인공위성 이미지를 위한 CNN’에서는 대규모의 비정형 데이터를 활용하는 분류 작업을 위해 매우 강력한 합성곱 신경망(CNN)을 다룬다.
    19장, ‘순환 신경망’에서는 순환 신경망(RNN)이 어떻게 시퀀스 대 시퀀스 모델링에 유용한지 보여준다. 이는 예측할 일변량 시계열과 다변량 시계열을 포함한다.
    20장, ‘조건부 위험 요인과 자산 가격 결정을 위한 오토인코더’에서는 고차원 데이터의 비선형 압축을 위한 오토인코더를 다룬다.
    21장, ‘합성 시계열 데이터를 위한 적대적 생성 네트워크’에서는 딥러닝에서 흥미로운 발전 중 하나를 소개한다.
    22장, ‘심층 강화학습: 트레이딩 에이전트의 구축’에서는 강화학습이 환경에 대응해 의사결정을 최적화하는 방법을 배우는 에이전트의 설계와 훈련을 어떻게 허용하는지 설명한다.
    23장, ‘결론과 다음 단계’에서는 학습한 교훈을 요약하고, 계속해서 학습하고 트레이딩 전략을 수립하고자 취할 수 있는 몇 가지 단계를 개략적으로 설명한다.
    부록, ‘알파 팩터 라이브러리’에서는 거의 200개의 인기 있는 금융 특성을 나열하고 근거를 설명하며, 이러한 특성을 계산하는 방법을 보여준다.

    저자/역자 소개

    이 글을 읽고 있다면, 여러분은 아마 투자 산업을 포함한 많은 산업에서 머신러닝(ML)이 전략적인 역량이 됐다는 것을 알고 있을 R과 딥러닝을 활용한 페어 트레이딩 (Pairs Trading): 네이버 블로그 것이다. ML의 부상과 밀접한 관련이 있는 디지털 데이터의 폭발은 특히 투자에 강력한 영향을 미치고 있으며, 이미 정교한 모델을 사용해 정보를 처리해 온 오랜 역사를 갖고 있다. 이러한 추세는 계량 투자를 새로운 방식으로 접근할 수 있게 만들었으며, 재량적 거래 전략과 알고리즘 거래 전략 모두에 대한 데이터 과학의 수요를 증가시키고 있다.R과 딥러닝을 활용한 페어 트레이딩 (Pairs Trading): 네이버 블로그
    자산클래스 간 거래 범위는 주식과 국채에서 상품과 부동산에 이르기까지 광범위하다. 이는 매우 광범위한 새로운 대체 데이터 소스가 시장 위와 그 밖의 데이터, 과거에 대부분의 분석 노력의 중심에 있었던 기초 데이터와 관련될 수 있음을 시사한다.
    머신러닝이나 데이터 과학을 성공적으로 적용하려면 개인 또는 팀 차원의 통계 지식, 컴퓨터 기술과 도메인 전문 지식이 통합돼야 한다. 다시 말해 올바른 질문을 하고, 답을 제공할 수 있는 데이터를 식별하고 이해하며, 결과를 얻기 위한 광범위한 도구를 배포하고, 올바른 결정을 내리는 방식으로 이를 해석하는 것이 필수다. 따라서 이 책은 머신러닝의 투자 및 트레이딩 영역에 대한 통합적 관점을 제공한다.

    스테판 젠슨(Stefan Jansen)

    어플라이드 에이아이(Applied AI)의 창립자이자 CEO다. 포춘지 선정 500대 기업, 투자 기업 및 업계 전반에서 데이터와 AI 전략에 대해 조언하고, 데이터 과학 팀을 구성하고, 광범위한 비즈니스 문제에 대한 엔드투엔드 머신 학습 솔루션을 개발하고 있다.
    이전에는 국제 투자회사의 파트너이자 상무이사를 역임하며 예측 분석 및 투자 연구 업무를 구축했다. 15개 시장에서 영업을 하는 글로벌 핀테크 기업의 고위 임원으로 신흥국 중앙은행에 자문, 세계은행과 상담하기도 했다.
    조지아 공대에서 컴퓨터 공학 석사 학위를, 하버드 및 자유 대학교 베를린에서 경제학 석사 학위를 취득했고 CFA 자격증을 보유하고 있다. 유럽, 아시아, 미주 지역에서 6개 언어로 근무했으며 제너럴 어셈블리(General Assembly)와 데이터캠프(Datacamp)에서 데이터 과학을 가르쳤다.

    금융시장의 흐름을 이해하려면 시장 데이터, 공시, 뉴스, SNS 등 수많은 요인을 분석해야 합니다. 데이터를 효율적으로 관리하기 위해 금융시장에서도 점차 머신러닝과 딥러닝 기술이 사용되고 있으며, 트레이딩 분야에도 활용도가 높아진 상황입니다. 이 책은 머신러닝과 딥러닝 기술을 이용해 알고리즘 트레이딩의 아이디어에서 실행까지 전반적인 프로세스에 초점을 맞춰 서술하고 있는 이 분야의 바이블이 될 수 있는 좋은 안내서입니다. 2판의 새로운 내용은 저자가 말했듯 더 많은 알파 팩터 사례를 소개하고 있으며, 최신 금융 딥러닝 논문에서 발표된 중요한 내용을 꼼꼼히 구현했다는 점이 특징입니다. 실제로 각 장의 내용을 상당 부분 고쳐가며 개정판 수준으로 설명해 초기에 생각했던 번역 기간보다 8개월 정도가 더 소요됐습니다. 1판보다 번역 품질을 높이려고 했고, 의역으로도 이해가 쉽지 않은 부분은 각주를 많이 달아 독자의 이해를 높이려고 노력했습니다.

    최근에 일부 계량 금융학자들이 서클을 이루면서 AI와 금융을 융합하려고 노력하고 있다. 이 책의 저자 스테판 젠슨도 이러한 노력에 상당한 공헌을 하고 있으며, 새로운 AI의 흐름을 적극 반영하고자 1판을 개정한 2판을 출간했다. 이 책은 머신러닝의 전통 이론에서 최신 이론뿐 아니라 R과 딥러닝을 활용한 페어 트레이딩 (Pairs Trading): 네이버 블로그 최신 딥러닝을 금융에 응용하는 부분도 다루고 있어 계량 금융과 머신러닝의 금융 응용에 관심 있는 사람들에게 특히 도움이 될 것이다. 1판에서의 실험적인 내용들이 2판에서는 많이 정립돼 독자들이 더욱 체계적으로 접근할 수 있을 것이다. 특히 2020년, 일각에서 상당한 공헌을 하던 퀀토피안(Quantopian)이 문을 닫으면서 계량 금융 커뮤니티에 커다란 충격을 줬는데, 많은 학자와 실무 경험자가 모여 혁신적이면서도 실전적인 연구와 작품들을 만들어내고 있던 상황이라 충격은 더욱 컸다. 특히 이들이 만든 라이브러리인 집라인(zipline)과 파이폴리오(pyfolio)는 실제 선진 대형 자산운용사에서 사용하는 수준을 과시하고 있었으므로 이들이 사장되는가 하는 아쉬움이 많았다. 심지어 이 책의 초판도 이들을 광범위하게 사용하고 있어 개정판에서는 어떻게 전개할지 궁금하기도 했다. 놀랍게도 저자는 자체적으로 집라인을 개선한 집라인 리로디드(zipline reloaded)를 만들어내 모든 내용을 살렸을 뿐 아니라 최신 파이썬 버전에서도 잘 작동하게 만들어 다시금 계량 금융 커뮤니티에 집라인 열풍을 일으키는 큰 공헌을 했다(참고로 요즘 핫한 인터넷 증권사인 알파카(Alpaca)와 인터랙티브 브로커(InteractiveBroker)와 같은 증권사가 거래 API에 R과 딥러닝을 활용한 페어 트레이딩 (Pairs Trading): 네이버 블로그 최근 집라인을 사용할 수 있도록 하고 있다). 저자의 이런 노력에 찬사를 보내며, 지속적인 개발이 이뤄지기를 바란다. 마지막으로 저자도 언급하듯이 방대한 내용인 만큼 모든 내용을 자세히 다루기는 힘들어 핵심 요점 위주로 서술돼 있으며 오히려 저자의 깃허브에 있는 노트북에 많은 내용을 실었다는 것을 다시 한번 상기시키고 싶다. 이 책을 통해 이론과 실전이 통합된 최첨단의 고급 계량 금융의 여정을 즐기기를 바란다.

    경북대학교에서 재무 전공으로 경영학 석사 학위를 받고, 한국외국어대학교에서 「장외 개별주식옵션의 내재변동성에 관한 실증분석」으로 경영학 박사 학위를 받았다. 2000년 외환선물㈜ 투자공학 팀 애널리스트로 첫 직장 생활을 시작한 이후로 리딩투자증권 파생상품운용 팀 옵션 딜러, 한국투자증권 리스크관리부 리스크퀀트로 근무했다. 한화투자증권에서 장외 파생상품겸영인가 취득에 참여한 이후 금융공학 팀, OTC파생 팀에서 장외파생상품 마케팅 담당 차장으로 근무했다. 이후 금융자산 평가회사인 NICE P&I㈜ 금융공학연구소 실장으로 근무했으며, 현재 정보사업본부에서 장외 파생상품 및 리스크 관련 금융공학 컨설팅 업무를 수행하고 있다. 지은 책으로는 『장외 파생상품 실무입문』(서울경제경영, 2014)이 있다. SCI급 저널인 PLOS ONE을 비롯해 국내 유수의 재무금융 및 경영 학술지인 증권학회지, 재무관리연구, 금융공학연구, 경영연구 등에 재무 및 파생상품 관련 논문을 게재했다. 중앙대학교에서 금융공학 융합전공 강사로 ‘금융공학 실습’ 과목을 강의했으며, 한국금융공학회 산학협력위원으로 활동하고 있다.

    카네기멜론 대학교에서 석사 학위를 받았고, 피츠버그 대학교 Finance Ph.D, CFA,FRM이며, 금융, 투자, 경제분석 전문가다. 삼성생명, HSBC, 새마을금고 중앙회, 한국투자공사 등과 같은 국내 유수의 금융 기관, 금융 공기업에서 자산운용 포트폴리오 매니저로 근무했으며, 현재 딥러닝과 강화학습을 금융에 접목시켜 이를 전파하고 저변을 확대하는 것을 보람으로 삼고 있다. 저서로는 『엑셀 VBA로 쉽게 배우는 금융공학 프로그래밍』(한빛미디어, 2009)이 있으며, 번역서로는 『포트폴리오 성공 운용』(미래에셋투자교육연구소, 2010), 『딥러닝 부트캠프 with 케라스』(길벗, 2017), 『프로그래머를 위한 기초 해석학』(길벗, 2018)과 『실용 최적화 알고리즘』(에이콘, 2020), 『초과 수익을 찾아서 2/e』(에이콘, 2020), 『자산운용을 위한 금융 머신러닝』(에이콘, 2021), 『실전 알고리즘 트레이딩 배우기』(에이콘, 2021), 『존 헐의 비즈니스 금융 머신러닝 2/e』(에이콘, 2021) 등이 있다. 누구나 자유롭게 머신러닝과 딥러닝을 자신의 연구나 업무에 적용해 활용하는 그날이 오기를 바라며 매진하고 있다.


0 개 댓글

답장을 남겨주세요