알고리즘 트레이딩의 기초

마지막 업데이트: 2022년 4월 8일 | 0개 댓글
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기

알고리즘 트레이딩의 대표적 인물

알고리즘 트레이딩은 시스템 트레이딩과는 약간 개념이 다르지만 알고리즘이나 통계를 기초로 트레이딩을 한다는 의미에서 넓게 보면 유사하다. 알고리즘 트레이딩의 대표격 인물을 살펴보고 정리하고자 한다. 애드워드 소프 애드워드 소프(Edward Thorp)는 알고리즘 트레이딩의 1세대라고 할 수 있다. 월스트리트 최초로 수학과 IT 시스템을 이용해 펀드를 운영했다. MIT 수학과 출신인 그는 뉴포트 파트라즈(Newport Partners)라는 투자회사를 설립했고 약 30년간 연평균 20%에 […]

중국 주식 투자 기회

가끔은 국내 주식뿐 아니라 해외 주식도 해봐야겠다는 생각들이 종종 든다. 한때 잘나가던 애플이나 최근 잘나가는 테슬라 등의 소식을 접할 때는 주식을 샀었으면 수익을 내지 않을까 하는 생각들이 계속 들곤 했다. 그러던 중 우연히 중국 주식 관련 책을 접하게 되었다. “지금 중국 주식 천만원이면 10년 후 강남 아파트를 산다”라는 책이다. 호기심반 의심반으로 책을 읽기 시작했다. 2014년 11월 […]

FIX 프로토콜 이해

시스템 트레이딩에서 자동으로 트레이딩을 하기 위해서는 각 증권회사에서 제공하는 API등을 이용해야 하는데 제 각각 달라 시스템 트레이딩을 확장하는데 있어 어려운 요소로 작용한다. 다행히도 FIX(Financial Information Exchange) 표준 프로토콜이 존재한다. FIX는 주식, 선물, 옵션, 채권 등 다양한 금융 상품들을 거래하기 위한 표준 프로토콜이다. 금융 상품 거래의 참여자들로부터 주문을 내는 고객, 중계를 해주는 증권사, 체결을 시키는 거래소가 […]

나이브 베이즈 분류 개념 이해

나이브 베이즈(Naïve Bayes Classification)는 확률 기반 분류기의 일종으로 1950대 이후 광범위하게 연구되고 알고리즘 트레이딩의 기초 있다. 쉽게 설명하면 다음과 같다. 예로 흡연과 간암과의 상관 관계는 널리 알려진 사실이다. 하지만 흡연을 할 경우에 간암에 걸릴 확률을 추정할 수 있을까? 이때 사용하는 방법이 나이브 베이즈 방법이다. p(간암|흡연) = p(흡연|간암)*p(간암)/p(흡연) 즉 간암 확률과 흡연 확률 그리고 간암이 걸린 상태일 때의 흡연 […]

챠트 패턴 매칭을 위한 DTW

주가는 관성의 원리에 따라 추세를 지속하려는 속성이 있으며 파동과 사이클을 반복하려는 속성이 있다. 주가의 추세를 담고 있는 챠트는 그런 면에서 의미가 있다. 차트의 대표적인 유형으로는 상승 추세와 하강 그리고 횡보 추세 등 다양하게 존재한다. 이러한 점은 로봇 트레이딩에서 중요한 정보로 사용된다. 로봇 트레이딩에서 기계적으로 챠트 유형이나 패턴을 분석하고자 할 때 DTW(Dynamic Time Warping)이라는 알고리즘을 사용하기도 […]

의사 결정 트리 (Decision Tree)를 활용한 주식 예측 알고리즘 트레이딩의 기초 방법

의사 결정 트리는 데이터 마이닝에서 일반적으로 사용되는 방법으로 입력 변수에 대하여 분류/예측하는 모델을 생성하는 것을 목표로 한다. (위키백과에서 그림 발췌) 위 그림은 타이타닉 생존자에 대한 결정 트리를 나타낸 것이다. 의사 결정 트리는 화이트 박스(white box)로 분류 기준을 쉽게 파악할 수 있는 장점이 있다. 주식에 있어서는 비슷한 방법으로 활용 가능하다. 가령 다음날 주가를 예측한다면 주가에 영향을 […]

머신 러닝을 위한 프로그래밍 언어

머신러닝에 사용할 수 있는 여러 가지 프로그래밍 언어를 소개한다. 파이썬(Python) 파이썬은 배우기 쉽고, 이해하기 쉬워 사용자가 늘고 있다. 파이썬에는 scikit-learn, PyML, pybrain와 같은 머신 러닝 라이브러리가 있다. Jython은 JVM 기반 파이썬이다. R R은 오픈 소스 통계 프로그래밍 언어이다. 문법이 배우기 쉬운 건 아니지만 머신 러닝과 시각화를 위한 도구가 많다. rJava 프로젝트를 사용하면 자바 코드에서 R의 함수를 사용할 […]

머신 러닝 퀵 가이드

로봇(시스템) 트레이딩을 연구하기 위해서는 인공지능에 대한 이해도 필요하니 꾸준히 인공지능 관련 내용도 보완할 예정이다. 인공지능은 조금 막연하고 머신러닝이라는 이름 최근에는 딥러닝이라는 이름으로 구체화되고 있다. 머신러닝을 간단히 정의하면 아래와 같다 (카네기멜론 대학교 톰 미첼 교수 정의) 태스크 T에 대하여 경험 E를 학습하여 성능 P만큼 개선 머신러닝을 적용하기 위한 태스크가 있어야 하며 머신러닝이 학습하기 용이한 경험이 있어야 […]

SVM 활용 주가 예측 방법

이번에는 SVM(Support Vector Machine)을 활용한 주가 등락 예측에 대해서 언급하고자 한다. SVM은 신경망과 같은 지도학습이며 주로 패턴을 분류할 때 사용한다. SVM의 기본적인 원리는 간단하다. 아래 그림처럼 상단 빨간색 패턴과 하단 파란색 패턴이 분류되어 있을 때 이러한 패턴을 가장 잘 분류할 수 있도록 방법을 제시하는 것이 SVM이다. 마치 눈으로 보고 분리하듯이 패턴간의 마진(margin)이 가장 알고리즘 트레이딩의 기초 크도록 분리한다. […]

신경망에 의한 간단한 주가 예측

얼마 전에 유전자 알고리즘으로 주식을 예측하는 방법에 대해서 기술한 적이 있는데 이번에는 신경망으로 간단한 방법을 소개하고자 한다. 신경망(Neural Network)으로 예측하는 여러가지가 방법이 있겠지만 가장 간단한 방법을 설명하고자 한다. 신경망은 전형적인 지도 학습 방법으로 입력과 출력이 주어져야 한다. 주식 예측하는 방법도 역시 입력과 출력을 주어져야 한다. 관건은 어떤 입력과 출력을 주어져 학습을 하는냐가 중요한다. 예측하고자 하는 […]

[알고리즘트레이딩/전략편] 07. 알고리즘 트레이딩 - 옵션의 페어트레이딩 (1)

행사가격이 서로 다른 두개의 옵션을 이용하여 페어트레이딩 (Pairs Trading)이 가능한지 시험해 보았다. 행사가격이 다른 두 옵션을 실시간으로 감시하여 일시적으로 저평가된 행사가격의 옵션을 매수하고, 상대적으로 고평가된 옵션을 매도한 후 평형 상태에서 청산한다면 페어 트레이딩에 의한 차익을 생각해 볼 수도 있다.

두 옵션은 기초자산이 같기 때문에, 기초자산이 오르면 두 (콜)알고리즘 트레이딩의 기초 옵션도 같이 오르는 건 분명하다. 그럼 두 옵션이 Cointegration 관계에 있다고 할 수 있는가? 그렇지는 않다. 그 이유는 기초자산이 상승할 때 두 옵션의 상승하는 정도가 다르기 때문에, 두 옵션의 선형 조합으로는 공통 추세를 제거할 수가 없다. 그러므로 페어 트레이딩의 스프레드가 정상성을 갖기 어렵고, 기초자산의 가격 변화에 따른 추세를 갖게 된다. 스프레드가 추세 성분을 갖는 다는 것은 두 옵션이 Cointegration 관계가 아니라는 것을 의미하고, 결국, 스프레드 추세에 따라 손익이 달라지는 방향성 투자와 동일해 진다는 것을 의미한다. 다시 말해서 옵션 가격의 볼록성 (Convexity)으로 인해, 선형 (Linear) 관계로 만든 스프레드는 의미가 없어진다.

블랙-숄즈 공식의 활용 편에서 설명한 방법으로 엑셀에서 두 콜옵션의 이론가격과 스프레드를 계산하여 페어 트레이딩의 효과를 예상해 보면 아래 그림과 같이 된다. 그림 (가)는 두 콜옵션의 가격변화를 그린 것이다. 행사가격이 알고리즘 트레이딩의 기초 커질수록 콜 옵션의 가격은 작아지고, 기초자산에 대한 옵션 가격의 민감도인 델타 (기울기)도 작아진다.


만약, 행사가격이 낮은 옵션이 일시적으로 저평가 되어 매수하고, 행사가격이 높은 옵션이 상대적으로 고평가되어 이를 매도한다면, 순간 포트폴리오의 손익구조는 그림 (나)와 같이 된다. 그림 (나)는 강세 스프레드 (Bull Spread)로 알려진 합성 전략이다.

반대로 행사가격이 낮은 것을 매수하고, 높은 것을 매도하면 그림 (다)와 같이 되어 약세 스프레드 (Bear Spread)합성 전략이 되어 버린다. 즉, 어떤 경우에도 순간 포트폴리오의 손익은 기초자산의 가격 변화에 알고리즘 트레이딩의 기초 영향을 받게 되어있다. 따라서 페어 트레이딩의 최대 장점인 시장중립전략 (Market Neutral Strategy)이 성립하지 않게 되므로, 페어 트레이딩이 가능해 지지 않는다.

실제 상황에서도 예상과 같은 결과가 나오는지 가상계좌를 통해 아래 시나리오로 가상 매매를 해 보기로 하자.

1) 행사가격이 인접한 두 (콜)옵션을 선택하여, 실시간으로 현재가를 감시하여 페어 트레이딩에서 계산한 방식과 유사한 스프레드를 실시간으로 계산한다. 행사가격이 인접한 옵션을 선택하는 이유는 두 옵션의 델타 값의 차이를 줄이기 위해서이다.

* 스프레드 = 콜옵션 (A)의 가격 - 콜옵션 (B)의 가격 : 단순 가격차

* 스프레드 = [콜옵션 (A)의 현재가격 - 콜옵션 (B)의 현재가격] -

[콜옵션 (A)의 이론가격 - 콜옵션 (B)의 이론가격]

~ 두 옵션의 현재가의 괴리가 두 옵션의 이론가격의 괴리보다 크면

괴리가 발생한 것으로 판단함.

2) 실시간 데이터 스트림에 의한 분석이므로 균형점은 스프레드의 이동평균으로 계산하고, 진입선은 상,하 2*표준편차 지점으로 한다. 그러면 스프레드에 볼린저 밴드를 씌운 것과 동일해 진다. (여기서는 단순 가격차 스프레드로 실험한다.)

3) -2*표준편차 지점에서는 (진입선) Long 콜옵션 (그림에서는 277.5) 1계약을 매수하고, Short 콜옵션 (280.0) 1계약을 매도한다. 그리고 알고리즘 트레이딩의 기초 +2*표준편차 지점에서 (청산선) 반대 매매로 청산한다. 호가 스프레드 손실을 줄이기 위해 호가창에서 즉시 살 수 있는 가격과, 즉시 팔 수 있는 가격을 검출하여 진입선과 청산선을 계산한다. 단, 반대 매매 시에는 2계약씩 거래하여 1계약씩은 이전 거래를 청산한 것이고, 나머지 1계약씩은 반대 포지션으로 새로 진입한 것이 되도록 한다. 즉 청산선이 새로운 진입선이 되는 것이다.

4) 손실 규정 등 기타 사항은 이전 포스트와 동일하게 적용한다.

이러한 시나리오로 콜옵션 2 Pair, 풋옵션 2 Pair로 총 4 대의 자동매매 로봇을 돌려, 기초자산의 변화와 자동매매에 의한 손익을 비교해 볼 예정이다. 또한, HTS에서는 동일 시간대의 두 옵션의 가격을 동시에 얻을 수 없으므로, 로봇에서 수집한 로그 데이터를 이용하여 손익을 자세히 분석해 볼 예정이다. 분석 결과는 1~2일간 테스트해 보고, 자료도 수집하여 다음 포스트에 실어 볼 예정이다.

여기서는 헤지 비율 과 Cointegration 계수는 고려하지 않았다. 헤지 비율을 고려하면 손익 구조 (Pay Off)가 달라지기 때문에 상황이 조금 더 복잡해진다. 이 부분에 대해서는 2차 실험에서 고려해 보기로 하겠다.

머신러닝 알고리즘 트레이딩 세트 [실전 알고리즘 트레이딩 배우기 + 핸즈온 머신러닝ㆍ딥러닝 알고리즘 트레이딩 머신러닝]

도서검색

디지털 데이터의 폭발적인 증가로 머신러닝을 사용하는 거래 전략의 전문지식에 대한 요구가 높아졌다. 이 책은 지도학습과 비지도학습 알고리즘으로 다양한 데이터 원천에서 신호를 추출해 효과적인 투자 전략을 만들 수 있도록 안내한다. 또한 API와 웹 스크래핑을 통해 시장, 기본, 대체 데이터에 접근하는 방법을 보여준다. 최신의 머신러닝, 딥러닝 알고리즘과 더불어 알고리즘 트레이딩을 위한 아이디어 창출부터 백테스팅까지의 과정, Pandas, NumPy, Statsmodel, Scikit-learn 등과 같은 라이브러리를 학습한다. 알고리즘 트레이딩의 과정을 학습하면서 머신러닝과 딥러닝의 기본을 다질 수 있는 유용한 예제가 포함돼 있다.

■ 투자와 트레이딩 문제를 푸는 머신러닝 기법 구현
■ 시장 데이터, 기본 데이터, 대체 데이터를 활용한 알파 팩터
■ 지도학습, 비지도학습, 강화학습 모델 설계와 세부 조정
■ Pandas, NumPy, Scikit-learn을 이용한 포트폴리오 위험과 성과 최적화
■ 퀀토피안 플랫폼에서 머신러닝 모델을 실전 트레이딩 전략에 통합하기
■ 신뢰성 있는 시계열 백테스트 방법을 사용한 전략 평가
■ 케라스, 파이토치, 텐서플로를 사용해 딥신경망 설계 및 평가
■ OpenAI Gym에서 강화학습을 이용한 트레이딩 전략

머신러닝이 어떻게 거래 전략의 설계와 실행에 가치를 부가할 수 있는지를 포괄적으로 소개한다. 다양한 머신러닝 과제에 다른 솔루션뿐만 아니라 데이터 소싱과 전략 개발 과정의 다른 측면을 다루는 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장의 내용을 요약한다.

실전 알고리즘 트레이딩을 위한 기초 환경, 지식과 함께 백테스트 및 리스크 관리 기법과 노하우, 실전에서의 유의 사항을 전달한다. 파이썬을 기반으로 간단한 트레이딩 시그널부터 시작해서 경제 이벤트 기반 및 변동성 조정의 고급 기법을 활용하는 방법을 보여주고, 그 기법을 머신러닝 기법과 어떻게 결합하는지까지 알려준다.

■ 현대 알고리즘 트레이딩 시스템과 전략의 구성 요소 이해
■ 파이썬을 이용한 머신러닝의 알고리즘 트레이딩 시그널과 전략에의 적용
■ 평균 회귀, 추세 추종, 경제 지표 발표 등을 기반으로 한 트레이딩 전략의 구축, 시각화, 분석
■ 파이썬 트레이딩 전략을 위한 위험 관리 시스템의 계량화 및 구축
■ 트레이딩 봇의 성과를 향상시키고자 트레이딩 전략을 시뮬레이션하는 백테스터 구축
■ 라이브 시장에 트레이딩 전략을 배포하고 수익성 유지와 개선을 위한 운영

1장, ‘알고리즘 트레이딩의 기초’에서는 알고리즘 트레이딩이 무엇이며 알고리즘 트레이딩이 고빈도수 또는 낮은 지연 시간 거래와 어떻게 관련돼 있는지 설명한다. 규칙 기반에서 AI로 이어지는 알고리즘 거래의 진화를 살펴본다. 알고리즘 거래 개념, 자산 분류 및 계기 등 본질적인 내용을 다룰 것이다. 어떻게 알고리즘을 결정하는가를 배운다.
2장, ‘기술적 분석을 통한 시장 해석’에서는 몇 가지 인기 있는 기술적 분석 방법을 다루며, 시장 데이터의 분석에 적용하는 방법을 보여 준다. 시장 추세, 지지, 저항을 활용한 기초 알고리즘 트레이딩을 실시한다.
3장, ‘기초 머신러닝을 통한 시장 예측’에서는 여러 가지 간단한 회귀 및 분류 방법을 검토하고 구현하며, 트레이딩에 지도 통계적 학습 방법을 적용하는 것의 장점을 설명한다.
4장, ‘인간의 직관에 의한 고전적 트레이딩 전략’에서는 몇 가지 기본적인 알고리즘 전략(모멘텀, 추세, 평균회귀)을 살펴보고, 그 작동과 장단점을 설명한다.
5장, ‘고급 알고리즘 전략’에서는 좀 더 진보된 접근 방식(통계적 차익 거래, 페어 상관관계)과 그들의 장단점을 검토해 기본적인 알고리즘 전략을 통합한다.
6장, ‘알고리즘 전략의 위험 관리’에서는 알고리즘 전략에서 위험(시장 위험, 운영 위험, 소프트웨어 구현 버그)을 측정하고 관리하는 방법을 설명한다.
7장, ‘파이썬 트레이딩 시스템 구축’에서는 앞에서 만들어진 알고리즘에 기초해 거래 전략을 지원하는 기능적 구성 요소를 설명한다. 파이썬을 이용해 작은 트레이딩 시스템을 구축할 것이며, 앞에서 나온 알고리즘을 사용해 거래할 수 있는 트레이딩 시스템을 구축할 것이다.
8장, ‘트레이딩 거래소 연결’에서는 트레이딩 시스템의 통신 구성 요소를 설명한다. 파이썬에 있는 퀵픽스 라이브러리를 사용해서 거래 시스템을 실제 교환에 연결할 것이다.
9장, ‘파이썬 백테스트 시스템 구축’에서는 트레이딩 봇의 성능을 검증하고자 대량의 데이터로 테스트를 실행해 트레이딩 알고리즘을 향상시키는 방법을 설명한다. 모델이 구현되면 트레이딩 로봇이 트레이딩 인프라에서 예상대로 동작하는지 테스트(구현 관련 실수 확인)해야 한다.
10장, ‘변화하는 시장 알고리즘 트레이딩의 기초 참여자와 시장 조건 적응’에서는 실시간 거래 시장에 배포할 때 전략이 예상대로 수행되지 않는 이유를 논의하고, 전략 자체 또는 기본적인 가정 내에서 문제를 해결하는 예를 제공한다. 또한 잘 수행되고 있는 전략이 왜 성능 면에서 서서히 악화되는지를 논의하고, 이것을 어떻게 해결할 것인지 설명하는 몇 가지 간단한 예를 소개할 것이다.

저자/역자 소개

스테판 젠슨(Stefan Jansen)

공인재무분석사(CFA)이며, 어플라이드 에이아이(Applied AI)의 창립자이고, 선임 데이터 과학자다. 여러 산업에서 사업 목적을 데이터와 AI 전략으로 전환하고자 하는 포춘 500대 기업과 스타트업 회사들을 자문하고 있으며, 데이터 과학 팀을 구축하고 ML 솔루션을 개발하고 있다. 현재의 사업을 하기 이전에 국제적 투자 회사의 매니징 파트너 겸 선임 데이터 과학자였으며, 예측 분석 도구와 투자 리서치 실무를 구축했다.
또한 15개 시장에서 사업을 하는 국제적 핀테크 스타트업의 임원이었으며, 세계은행(World Bank)에서 근무했고, 신흥시장의 중앙은행들을 자문한 바 있으며 4개 대륙의 6개 언어로 작업했다. 하버드대학교와 베를린대학교에서 석사학위를 취득했고, 제너럴 어셈블리(General Assembly)와 데이터캠프(Datacamp)에서 데이터 과학을 가르치고 있다.

세바스티앙 도나디오(Sebastien Donadio)

트레이데어(Tradair)의 최고 기술 책임자로 이 기술을 선도하는 책임을 맡고 있다. HC테크놀로지스의 소프트웨어 엔지니어링 팀장, 선 트레이딩(Sun Trading)의 계량적 트레이딩 전략 소프트웨어 개발업체인 고빈도 FX사의 파트너 겸 기술 이사로 재직하면서 국방부의 프로젝트 리더로 일하는 등 매우 다양한 전문 경험을 갖고 있다. 프랑스에 있는 동안 Bull SAS와 소시에테 제네랄(Societe Generale)의 IT 신용 리스크 관리자(Credit Risk Manager)로서 연구한 경험이 있다. 지난 10년 동안 시카고 대학교, 뉴욕 대학교, 컬럼비아 대학교에서 다양한 컴퓨터 과학 과정을 가르쳤다. 주로 기술을 다루는 것에 열정을 갖고 있으며, 스쿠버 다이빙 강사면서 경험 많은 암벽 등반가이기도 하다.

수라브 고쉬(Sourav Ghosh)

지난 10년 동안 몇몇 독점적인 고빈도 알고리즘 트레이딩 회사에서 일했다. 전 세계 여러 자산 클래스에 걸쳐 트레이딩 거래소를 위한 매우 낮은 지연 시간과 높은 처리량의 자동 트레이딩 시스템을 구축했다. 시장 조성을 위한 통계적 차익 거래와 가장 유동적인 글로벌 선물 계약의 거래 전략을 전문으로 한다. 시카고의 한 트레이딩 회사에서 정량적 개발자로 일하고 있다. 서던캘리포니아 대학교에서 컴퓨터 과학 석사 학위를 받았다. 관심 분야는 컴퓨터 아키텍처, 핀테크, 확률 이론과 확률적 프로세스, 통계적 학습과 추론 방법, 자연어 처리 등이다.

경북대학교에서 경영학석사(재무전공)학위를 받고, 한국외국어대학교에서 ‘장외개별주식옵션 내재변동성 실증분석’으로 경영학 박사학위를 받았다. 외환선물㈜, 리딩투자증권, 한국투자증권, 한화투자증권에서 애널리스트, 옵션딜러, 리스크퀀트, 장외파생상품 마케터로 근무했다. 이후 NICE채권평가가 이름을 바꾼 NICE P&I에서 금융공학연구소 실장으로 근무했고, 현재 AI사업본부 정보사업실장으로 재직하고 있다. 저서로는 서울경제경영에서 출간한 『장외파생상품 실무입문』(서울경제경영, 2014)이 있으며, PLOS ONESCIE, 증권학회지, 재무관리연구, 금융공학연구에 재무 및 파생상품 관련 논문을 게재했다. 삼성경제연구소(SERI) 한국금융공학포럼 시샵과 한국금융공학회 산학협력위원으로 활동하고 있다.

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

데이트레이딩의 기초 - 데이트레이딩의 핵심 요소 (56)

이번 포스팅에서는 데이트레이딩의 핵심 요소 에 대해서 살펴보겠습니다.

우선 그에 앞서 데이트레이딩 기법의 간단한 역사 및 변천사를 알아보고 이후에 데에 트레이딩의 특성에 대해 알아보겠습니다.

1. 데이트레이딩의 역사와 변천사

시스템에 기반을 둔 데이트레이딩 전략은 시장상황에 맞게 발전되어 왔는데요, 1990년에는 개장후 첫 15분, 30분, 60분 고가 돌파 전략 같은 고전적인 opening range breakout 같은 전략이 유행했고 큰 수익을 주었습니다.

2000년대 초반에 접어들면서, 주식 포트폴리오를 대상으로 한 페어트레이딩이 성행했고, 최근에는 컴퓨터 시스템의 발전으로 고빈도매매(HFT) 같은 전략 이 널리 확대되어 있습니다.

2. 단기 트레이딩의 특성

데이트레이딩 같은 타임 프레임이 짧은 매매의 전략이 일반적인 장기 추세 추종 전략에 비해 가지는 강점과 우위성은 어디에 있을까요? 그것은 바로 급격한 시장 이벤트를 수익의 기회로 삼을 수 있다는 것 입니다.

예를 들어, 주단위나 월단위의 장기 포지션을 가진 전략의 경우 시장의 급작스런 호재나 악재에 의해 급격한 시장의 변동이 발생하는 경우를 수익의 기회로 삼기가 쉽지 않습니다. 왜냐하면, 포지션을 잡는 타이밍이나 홀딩하는 기간 자체가 매우 길고 둔감하기 때문입니다.

하지만, 데이트레이딩의 경우 이러한 급격한 시장의 변화를 바로 수익의 기회로 연결지을 수 있다는 것이 큰 장점 입니다. 뿐만 아니라, 데이트레이딩의 기법을 약간 더 긴 스윙 트레이딩의 아이디어에도 접목시키기 쉽습니다.

데이트레이딩의 경우, 큰 추세를 보이는 경우가 흔치 않기 때문에 방향성에 따라 매매하는 경우 조정시 반등을 노리는 전략을 구사하면 성과를 향상시킬 수 있습니다. 즉, mean reversion 전략을 구사하기 유리한 전략 이 바로 데이트레이딩 전략입니다.

데이트레이딩에서는 최근의 가격 움직임이 가장 중요한 팩터로 작용 합니다.

예를 들자면, 금일 주가의 움직임에 가장 큰 영향을 주는 지표는 최근 20일간의 주가의 움직임이나, 최근의 재무나 가치 지표 같은 요소가 아닙니다. 금일 주가의 기술적인 움직임과 가장 연관이 높은 지표는 바로 금일 시가나 전일 종가 같은 가장 가까운 가격 지표 입니다.

금일 시가, 금일 고가, 금일 저가, 어제 종가, 어제 고가, 어제 저가와 같이 직접적으로 가장 가까운 가격의 정보가 데이트레이딩에 있어 가장 중요한 정보라고 할 수 있습니다.

이러한 지표를 key point 라고 하는데, key point에 겹치는 가격대가 더 많으면 훨씬 중요도도 높다고 할 수 있습니다.

3. 데이트레이딩의 수익 목표치에 대한 상식

많은 사람들이 데이트레이딩을 통해 수익을 얻으려 하지만, 실제로 안정적인 수익을 꾸준히 내기는 정말 쉽지 않습니다. 막연하게 이러이러한 기법을 적용하면 수익이 쉽게 날 것 같은데 실제로 그게 그리 만만하지 않은 이유는 무엇일 까요?

기법이나 전략의 문제일 수도 있지만, 본질적인 이유 중의 하나로 데이트레이딩의 변동성의 범위가 제한된 점 을 들 수 있습니다.

데이트레이딩의 경우 딱 하루 장중에 매매가 종료되어야 하기 때문에 수익을 낼 수 있는 시간과 폭이 장기 투자에 비해 현저히 제한될 수 밖에 없는데, 바로 이것이 데이트레이더에게 거대한 장벽으로 다가오는 것이지요.

문제는 이것 뿐만 아닙니다. 만일 장중 가격의 움직임이 항상 한 방향으로만 움직여주거나 추세적이라면 수익을 내기가 쉽겠지만, 장중의 움직임은 위아래로 흔들어제끼는 노이즈가 많이 끼여 있어서 매매를 더욱 어렵게 합니다. 돌파 하는 것 같아서 샀는데 추세가 다시 반전되고, 눈물의 손절을 했더니 재반등하는 경험 다들 있으시죠?

일반적인 캔들의 구조를 보면 위꼬리:몸통:아래꼬리 = 1:2:1 정도 입니다. 일반적으로 돌파 매수 신호는 추세가 어느정도 형성되는 것을 보고 진입하기 때문에 꽤 높은 가격에 진입하게 되는데, 매수 이후 이 방향으로만 움직여주면 문제가 없지만, 위꼬리라는 요소가 존재하기 때문에 돌파에 성공하더라도 실제로 취할 수 있는 시세는 기껏해야 전체 캔들 길이의 25% 정도 밖에 되지 않습니다.

그렇기 때문에 돌파 매매를 이용한 데이트레이딩을 알고리즘 트레이딩의 기초 하는 경우, 매일 수익이 발생하지 않는 것은 비정상이 아니라 지극히 정상이라는 사실을 알아야 합니다.

시장의 변동성이 커지는 구간은 흔치가 않고 제한되어 있는데, 데이트레이더는 변동성이 적은 구간에서 본전이나 약손실을 오랜 기간동안 참아내다가 얼마 되지 않는 추세적이고 변동성이 큰 구간에서 집중적으로 수익을 내야 하기 때문입니다.

따라서, 데이트레이딩을 하는 경우, 매일 수익이 나지 않는다고 해서 좌절하거나 너무 쉽게 그만두는 것은 치명적인 실수입니다. 장기적으로 안정적인 수익을 내는데는 반드시 많은 매매횟수와 시간, 그리고 인내심이 필수입니다.

다음 포스팅에서는 데이트레이딩에서 가장 중요한 key level에 대해 살펴보겠습니다.

1. 네이버 카페 ' 실전주식투자 연구소' (클릭) 으로 오시면, 본 블로그의 모든 내용을 순서대로 확인하실 수 있고, 다양한 실전 투자 정보도 얻을 수 있습니다~

개별 주식을 이용한 단기 매매 기법, 뉴지스탁을 통한 완전 자동 투자 매매 구현에 관한 폭넓 은 노하우를 다루고 있으니, 많은 성원 부탁 드립니다~

실전 알고리즘 트레이딩 배우기 /파이썬으로 시작하는 알고리즘 트레이딩의 기초와 실전 전략 (에이콘 데이터 과학 시리즈 )

적립 안내사항 당월(1일~말일)매출 접수된 건에 대해 익월 20일 24시까지 적립됩니다. 카드 매출 취소된 경우 해당 금액만큼 발생된 예정 포인트를 제외하고 적립되며 포인트 적립 이후 카드 매입 취소 발생 했을 경우 익월 적립 시점에 ‘구매적립취소’ 항목으로 포인트 차감 되어집니다.

포인트 적립제외 무이자할부 이용거래 마이신한포인트 또는 SKpay포인트 사용(전액, 일부) 시 포인트 사용 분, 선불전자지급수단 충전금액 단기카드대출(현금서비스), 장기카드대출(카드론), 연회비, 각종수수료 ㆍ 이자(할부수수료, SMS이용수수료, 연체이자 등), 선불카드 충전, 기프트카드 구매, 국세, 지방세, 아파트관리비, 도시가스, 전기료, 4대보험, 대학교(대학원)등록금

신한카드 2,3,4,5,6,7 개월 ( 5 만원↑)
8,9,10,11,12 개월 ( 20 만원↑, SK pay 결제 시)
13,14,15,16,17,18,19,20,21,22 개월 ( 100 만원↑, SK pay 결제 시)

KB국민카드 2,3,4,5,6,7 개월 ( 5 만원↑)
8,9,10,11,12 개월 ( 20 만원↑, SK pay 결제 시)
13,14,15,16,17,18,19,20,21,22 개월 ( 100 만원↑, SK pay 결제 시)

현대카드 2,3,4,5,6,7 개월 ( 1 만원↑)
8,9,10,11,12 개월 ( 20 만원↑, SK pay 결제 시)
13,14,15,16,17,18,19,20 개월 ( 100 만원↑, SK pay 결제 시)

삼성카드 2,3,4,5,6 개월 ( 5 만원↑)
7,8,9,10,11,12 개월 ( 20 만원↑, SK pay 결제 시)
13,14,15,16,17,18,19,20,21,22 개월 ( 100 만원↑, SK pay 결제 시)

롯데카드 2,3,4 개월 ( 5 만원↑)
6 개월 ( 5 만원↑, SK pay 결제 시)
7,8,9,10,11,12 개월 ( 20 만원↑, SK pay 결제 시)
13,14,15,16,17,18,19,20,21,22 개월 ( 100 만원↑, SK pay 결제 시)

제외품목 순금매장, 아동용쥬얼리, 복지용구(요양보험), e-쿠폰/상품권/이용권 등 (제외품목 상품을 포함하여 할부 결제 시 할부 수수료가 청구됩니다.) 제외카드 체크/법인/개인사업자/선불/기프트카드 제외 (BC계열은 BC카드 무이자할부 적용)


0 개 댓글

답장을 남겨주세요