주가예측 6

[주식논문] 캔들스틱차트와 CNN을 이용한 갭 예측 연구

알고리즘트레이딩은 규칙기반 매매를 함으로써 투자자가 가질 수 있는 각종 편향(bias)을 벗어날 수 있다는 장점이 있습니다. 그러나 끊임없이 변하는 시장에서 살아남기 위해서는 지속적으로 전략을 변경시켜야 한다는 단점이 있죠. 인공지능의 출현은 이러한 문제를 해결할 수 있는 대안으로 떠올랐습니다. 데이터만 주면 알아서 학습하고, 시장에 따라 진화하며, 감정의 휘둘림 없이 매매할 수 있게 된 것이죠. 이 논문은 인공지능 방식인 합성곱신경망(CNN)을 이용하여 다음날 갭을 예측하는 연구를 진행했습니다. 위와 같은 사진에 다음날 주가갭을 라벨링했는데요, 2017년1월부터 2021년 12월30일까지 KOSPI200을 구성하는 모든 종목의 1분봉 데이터가 사용되었습니다. 전체 사진은 245,492개 이지만, 학습을..

Read 2023.02.04

[Randomforest] 10분 수익률을 이용한 주가 예측-4

아래는 모든 변수를 랜덤포레스트모델에 학습하여 나올 성능입니다. 이전 포스팅에서는 50%가 약간 넘는 수치가 나왔었는데, 다시 학습시키니 수치가 약간 달라졌네요. 학습데이터를 랜덤샘플링 했기 때문으로 보입니다. feature importance가 높은 변수들만으로 다시 학습을 시켜보겠습니다. 아래 코드를 실행하면 top_feature변수에 상위 5개의 변수가 입력됩니다. top_feature = [] num=0 for f in range(x_train.shape[1]): top_feature.append(stock_df.columns[indices][f]) num = num+1 if num>5: break print(top_feature) 1250, 1530, 1100, 1520, 1430, 1200 순..

Sysmetic trading 2023.01.13

[Randomforest] 10분 수익률을 이용한 주가 예측-3

이번 포스팅에서는 feature들의 중요도를 판단하여 x변수들을 채택하는 방법으로 모델의 성능을 높여보는 작업을 하겠습니다. 랜덤포레스트를 돌리면 모델의 변수중요도(feature importance)를 출력할 수 있습니다. feature importance는 tree를 분할하는데 얼마나 기여를 했는지에 따라 중요도를 결정합니다. importances = model.feature_importances_ std = np.std([tree.feature_importances_ for tree in model.estimators_], axis=0) indices = np.argsort(importances)[::-1] print("Feature ranking:") for f in range(x_train.sha..

Sysmetic trading 2023.01.12

[Randomforest] 10분 수익률을 이용한 주가 예측-2

이전 포스팅에서는 독립변수인 x와 종속변수인 y로 데이터를 전처리 과정을 보였습니다. 이후 진행 과정은 학습데이터와 테스트데이터를 나누어 모델을 생성 및 검증하는 것입니다. train_test_split함수를 통해 학습, 검증용 데이터를 나눌 수 있습니다. 여기서 shuffle을 통해 데이터를 섞을지 말지를 결정할 수 있습니다. 이번 실험은 시계열예측이 아니라 횡단면 예측이므로 데이터를 섞어도 무방하니 셔플을 해줍시다. from sklearn.model_selection import train_test_split x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.26, random_state=0, shuffle=True) 이번엔 ..

Sysmetic trading 2023.01.11

[Randomforest] 10분 수익률을 이용한 주가 예측-1

이번 포스팅에서는 간단하게 10분 단위 수익률로 갭상승/하락을 하는 랜덤포레스트 모델을 생성해 보겠습니다. 랜덤포레스트는 분류나 회귀에 쓰이는 앙상블(esemble) 모델로 다수의 의사결정나무(decision tree)를 이용한 예측모델입니다. 금융에서 주가를 예측하는 것은 수익과 직결되므로 학계나 실무 막론하고 많이 연구가 되어왔는데요, 최근에는 머신러닝, 딥러닝이 대두되면서 더욱 연구가 활발히 진행되는 것 같습니다. 이번 실험에 쓰인 데이터는 아래와 같습니다. import pandas as pd stock_df= pd.read_csv('10mindata.csv') stock_df=stock_df.dropna() stock_df.info() 첨부된 데이터를 pandas를 통해 업로드하면 아래와 같은 데..

Sysmetic trading 2023.01.10

[주식논문] 고빈도 자료를 이용한 머신러닝 모형의 예측력 비교 분석

이번에 리뷰할 논문은 고빈도 자료를 이용한 머신러닝 모형의 예측력 비교분석 이라는 논문입니다. 본 논문의 저자는 Lopez pe Prado의 Advanced Financial Machine Learning의 내용을 국내데이터에 적용하여 머신러닝 모형에 학습을 시킨 후 예측력을 평가했습니다. 특히, 주문흐름(order flow)를 통해 새로운 정보가 들어왔음을 확인하고, 이를 이용해 VIB(volume imbalanced bar)를 만들어 학습했네요. VIB가 미시구조상에서 갖게되는 의미는 아래와 같습니다. 주문 흐름은 매수주도 주문 거래량에서 매도주도 주문 거래량을 뺀 것이다. 매수주도 거래는 시장가 주문을 통한 매수 주문, 매도주도 거래는 시장가 주문을 통한 매도 주문이다. 정보를 가지지 않은 거래자들..

Read 2023.01.01