기금넷 공식사이트 - 헤지 펀드 - Python과 머신러닝을 사용해 주식을 거래하여 돈을 버는 방법
Python과 머신러닝을 사용해 주식을 거래하여 돈을 버는 방법
인공지능을 활용해 돈을 벌 수 있다는 생각을 많이 해보셨을 텐데요, 어떻게 할 수 있을까요? 스위스 제네바의 금융 데이터 컨설턴트인 Ga?tan Rickter는 최근 주식 거래를 돕기 위해 Python과 머신러닝을 사용한 경험을 소개하는 기사를 발표했습니다. 최종 결과는 S&P 500 지수를 능가하는 수익률을 기록했습니다. 장기적인 강세장. 본 글은 그의 방법을 완전히 공개하지는 않지만, 공개된 내용은 우리에게 인공지능을 활용하여 주식을 거래하는 방법에 대한 깨달음을 줄 수 있습니다.
드디어 S&P 500을 10%포인트 앞섰습니다! 큰 금액처럼 들리지 않을 수도 있지만, 유동성이 높은 대규모 자본을 다룰 때 헤지펀드 수익은 상당할 수 있습니다. 보다 공격적인 접근 방식을 취하면 더 높은 수익을 얻을 수도 있습니다.
모든 것은 구르 후버만의 "전염성 추측과 암 치료법: 주가 급등을 만든 비사건"이라는 제목의 논문을 읽었을 때 시작되었습니다. 이 연구는 상장 회사인 EntreMed(당시 주식 코드는 ENMD)와 관련하여 1998년에 발생한 사건을 설명합니다.
"새로운 암 치료법 개발에 관해 일요일 New York Times에 게재된 기사 약품 잠재적인 기사로 인해 EntreMed의 주가는 금요일 12.063에서 월요일 85까지 급등했고, 이러한 투자 열정으로 인해 다른 생명공학 기업도 프리미엄을 받았습니다. 암 연구의 획기적인 발전은 적어도 5개월 전에 네이처와 타임즈를 포함한 여러 유명 신문에 보도되었기 때문에 실제로 새로운 정보가 나오지 않더라도 관심은 주가의 지속적인 상승을 촉발할 수 있습니다. .”
연구자들의 통찰력 있는 많은 관찰 중에서 한 가지 결론이 눈에 띕니다.
p>
"(주가) 움직임은 어느 정도 유사성을 지닌 주식에 집중될 수 있습니다. , 그러나 그러한 차이가 반드시 경제적 펀더멘탈은 아닙니다."
일반적으로 사용되는 지표가 아닌 다른 지표를 기준으로 주식을 나눌 수 있는지 궁금합니다. 나는 데이터베이스를 뒤지기 시작했고, 몇 주 후에 주식과 주기율표의 요소 사이의 "알려진 숨겨진 관계"의 강도를 설명하는 점수가 포함된 데이터베이스를 발견했습니다.
저는 컴퓨터 유전체학에 대한 배경 지식을 갖고 있는데, 이를 통해 유전자와 세포 신호 전달 네트워크 간의 관계가 얼마나 제대로 이해되지 않았는지 상기하게 되었습니다. 하지만 데이터를 분석하면 이전에는 예측하지 못했던 새로운 관계와 상관 관계가 나타나기 시작합니다.
세포 가소성, 성장, 분화와 관련된 신호 전달 경로에 관여하는 선택된 유전자의 발현 패턴
유전자와 마찬가지로 주식도 요인이 강하거나 약한 거대한 네트워크의 영향을 받습니다. 그들 사이의 숨겨진 관계. 이러한 효과와 관계 중 일부는 예측 가능합니다.
내 목표 중 하나는 헤징에 사용하거나 단순히 이익을 얻을 수 있는 "바구니 클러스터"라고 부르는 길고 짧은 주식 클러스터를 만드는 것입니다. 이를 위해서는 비지도 기계 학습 방법을 사용하여 주식 클러스터를 생성하여 클러스터 간에 강한 관계 또는 약한 관계가 있도록 해야 합니다. 이러한 클러스터는 우리 회사가 거래할 수 있는 주식의 "바구니" 역할을 합니다.
먼저 데이터 세트를 다운로드했습니다. 공개 회사 숨겨진 관계 발견 이 데이터 세트는 주기율표의 요소와 상장 회사 간의 관계를 기반으로 합니다.
그런 다음 Python과 scikit-learn, numpy, pandas, matplotlib 및 seaborn과 같은 몇 가지 일반적인 기계 학습 도구를 사용했으며 작업 중인 데이터 세트의 분포 형태를 이해하기 시작했습니다.
이를 위해 "KMeans 시각적 개체를 사용한 주성분 분석"이라는 Kaggle 커널을 참조했습니다. KMeans 시각적 개체를 사용한 주요 구성요소 분석
import numpy as npimport pandas as pdfrom sklearn.decomposition import PCAfrom sklearn.cluster import KMeansimport matplotlib.pyplot as pltimport seaborn as sbnp.seterr(divide='ignore',valid='ignore')# 몇 가지 열 기능만 테스트하는 빠른 방법# stocks = pd.read_csv('supercolumns-elements-nasdaq-nyse-otcbb -general-UPDATE-2017-03-01.csv', usecols=range(1,16))stocks = pd.read_csv('supercolumns-elements-nasdaq-nyse-otcbb-general-UPDATE-2017-03-01. csv')print(stocks.head())str_list = ,x_9d, c='goldenrod',alpha=0.5)
plt.ylim(-10,30)
plt .show()
출력:
여기에서는 클러스터의 가장 작은 윤곽조차 실제로 관찰하지 못하므로 원하는 결과를 얻을 때까지 n_comComponent 값을 계속 조정해야 할 것입니다. 결과를 원합니다. 이것이 데이터 과학과 예술의 "예술" 부분입니다.
이제 K-평균을 시도하고 다음 섹션에서 명확한 클러스터링을 시각화할 수 있는지 살펴보겠습니다.
K-평균 클러스터링
PCA를 사용하여 데이터를 투영하여 간단한 K-평균을 구현하겠습니다.
scikit-learn의 KMeans() 호출과 fit_predict 메서드를 사용하여 클러스터 중심을 계산하고 첫 번째 및 세 번째 PCA 투영에 대한 클러스터 인덱스를 예측할 수 있습니다(맞춤 클러스터링을 관찰할 수 있는지 이해하기 위해). ). 그런 다음 자체 색상 구성표를 정의하고 산점도를 그릴 수 있습니다. 코드는 다음과 같습니다.
# 3 KMeans 클러스터링 설정
kmeans = KMeans(n_clusters=3) p> p>
# 클러스터 중심 계산 및 클러스터 인덱스 예측
X_clustered = kmeans.fit_predict(x_9d)# 자체 색상 맵 정의
LABEL_COLOR_MAP = {0 : 'r ', 1 : 'g',2 : 'b'}
label_color = ,x_9d, c= label_color, alpha=0.5)
plt.show()
출력:
이 K-평균 산점도는 마치 우리의 단순 클러스터링 모델 가정이 올바른 것처럼 더 유망해 보입니다. 이 색상 시각화 방식을 사용하면 구별 가능한 3개의 클러스터를 관찰할 수 있습니다.
seaborn의 편리한 pairplot 기능을 사용하면 데이터 프레임의 모든 기능을 쌍으로 자동으로 그릴 수 있습니다.
처음 3개의 투영을 하나씩 쌍으로 플롯하고 시각화할 수 있습니다.
# PCA 투영 데이터 "x_9d"에서 임시 데이터프레임을 생성합니다.
df = pd.DataFrame(x_9d)
df = df]
df['X_cluster'] = X_clustered
# Seaborn의 pairplot을 호출하여 PCA 투영 데이터에 대한 KMeans 클러스터링을 시각화합니다.
sb.pairplot(df,hue='X_cluster',palette='Dark2',diag_kind='kde',size=1.85)
sb.plt.show()
결과:
바구니 클러스터 구축
클러스터를 미세 조정하는 방법을 결정하는 것은 사용자의 몫입니다. 이와 관련하여 특별한 방법은 없습니다. 구체적인 방법은 귀하가 운영하는 환경에 따라 다릅니다. 이 경우 숨겨진 관계로 정의되는 주식 및 금융 시장입니다.
클러스터가 만족스러우면 점수 임계값을 설정하여 특정 주식이 클러스터에 적합한지 여부를 제어한 다음 특정 클러스터에 대한 주식을 추출하여 바스켓으로 거래되거나 사용됩니다. 이 바구니는 신호입니다. 이 접근 방식으로 수행할 수 있는 작업은 주로 자신의 창의성과 단기 관심 또는 단기 부동(주식)과 같은 클러스터 또는 데이터 포인트의 개념을 기반으로 각 클러스터의 수익을 최적화하기 위해 딥 러닝 변형을 사용하여 최적화하는 수준에 따라 달라집니다. 오픈마켓에서 구매 가능)
이러한 클러스터가 장바구니 거래로 사용되는 방식에서 몇 가지 흥미로운 특징을 확인할 수 있습니다. 때때로 S&P와 일반 시장 사이에는 차이가 있습니다. 이는 본질적으로 "정보 차익거래"에 기초한 차익거래 기회를 제공할 수 있습니다. 일부 클러스터는 Google 검색 트렌드와 관련이 있습니다.
이 기사에서 말하는 것처럼 재료 및 공급망과 관련된 클러스터링을 보는 것은 정말 흥미롭습니다. 10가지 재료 및 해당 공급망 확대 - Fairphone
i 이것을 사용하면 됩니다. 데이터 세트 이 분야에 종사하거나 영향을 받는 사람이 있는지 알아보기 위해 코발트, 구리, 갈륨 및 그래핀 열 레이블을 실행했습니다. 상장 회사의 위험 사이에 숨겨진 연관성이 있습니까? 이 바스켓은 S&P 수익률과 비교되었습니다.
과거 가격 데이터(Quantopian, Numerai, Quandl 또는 Yahoo Finance에서 직접 사용 가능)를 사용하면 가격 데이터를 집계하여 예상 수익을 생성할 수 있으며 이는 HighCharts를 사용하여 시각화할 수 있습니다.
이 클러스터의 내 수익률은 S&P를 상당한 차이로 능가합니다. 이는 S&P보다 연간 10% 더 많은 수익을 얻을 수 있음을 의미합니다(S&P는 지난 1년 동안 16% 상승했습니다). 또한 보다 공격적인 접근 방식의 순수익률이 70%를 넘는 경우도 보았습니다. 이제 나는 다른 일도 한다는 것을 인정해야 하지만, 내 직업의 특성상 그런 일들을 블랙박스에 보관해야 합니다. 그러나 지금까지 관찰한 바에 따르면 최소한 이 접근 방식을 중심으로 새로운 정량적 모델을 탐색하고 래핑하는 것은 매우 가치 있는 일이 될 수 있으며, 유일한 단점은 다른 프로세스에서 입력할 수 있는 다른 유형의 신호라는 것입니다. 시스템.
짧은 바구니 클러스터를 생성하는 것이 긴 바구니 클러스터를 생성하는 것보다 수익성이 더 높을 수 있습니다. 이 접근 방식은 가급적이면 다음 블랙 스완 이벤트가 발생하기 전에 또 다른 기사를 작성할 가치가 있습니다.
머신러닝을 활용하면 알려진 관계와 숨겨진 관계를 통해 공기업의 기생적이고 기생적이고 에로틱한 관계를 선점할 수 있다는 점이 흥미롭고 수익성도 좋다. 결국, 수익성은 이러한 범주에서 데이터를 생성할 때 기능 레이블(즉, 개념)의 강력한 조합을 생각해내는 능력에 달려 있는 것 같습니다.
이 유형의 모델에 대한 다음 반복에는 기능 조합 또는 고유 목록을 자동으로 생성하기 위한 별도의 알고리즘이 포함되어야 합니다. 아마도 실시간에 가까운 이벤트를 기반으로 하여 비지도 학습 알고리즘을 갖춘 인간만이 예측할 수 있는 숨겨진 관계가 있는 주식 그룹에 영향을 미칠 수 있습니다.