Sysmetic trading 10

[옵션트레이딩] 양매도 전략 시뮬레이션

이전 글에서 언급한 양매도 전략의 주요 요약은 다음과 같습니다. 1.주가의 등락을 예측하는 것보다 변동성을 예측하는 것이 쉬움 2.변동성은 주로 장중에 하락하는 경향이 있음 3.만기 초기에는 베가가 크고 세타가 작지만, 만기가 가까워질수록 베가는 줄어들고 세타가 늘어남 4.이러한 베가 효과를 활용하기 위해 만기 초기에 데일리 양매도 전략을 적용하는 것이 좋음 [옵션트레이딩] 옵션 양매도 수익구조(feat. 베가)1. 양매도는 구조적으로 승률이 높은 전략입니다. 그런데 대부분 사람들은 높은 승률이 지속되다보면 실력이라고 착각하게 됩니다. 이에 자만심에빠지고 결국 자금관리나 손절에서 실패하여 시quantoasis.tistory.com 오늘의 포스팅에서는 데일리 양매도에 대한 백테스팅을 진행해보려 합니다. 이..

Sysmetic trading 2023.06.14

[트레이딩] Optuna로 변동성 돌파 전략 Foward walk testing 구현하기

안녕하세요. 최근 많은 블로거들이 백테스트 결과와 전략을 공유하고 있어 많은 시스템 트레이더 분들이 관심을 갖고 계실 것입니다. 그중에서도 백석꾼님의 '직장인 전략'과 퀀스택스님의 '슈퍼 ETF 전략'은 특히 유명한 전략 중 하나입니다. ETF 시스템 트레이딩 연구소 : 네이버 블로그 ETF 트레이딩 연구 결과 기록을 위한 블로그입니다. 공지의 네비게이션 페이지를 이용하면 보다 쉽게 연구결과를 찾을 수 있습니다. since 2022-08-08 blog.naver.com Get the money : 네이버 블로그 Bill Staxx through Quant Quant + Bill Staxx = Quanstaxx blog.naver.com 오늘은 이러한 ETF 전략의 효과를 극대화하기 위해 활용할 수 있는 ..

Sysmetic trading 2023.05.22

[옵션트레이딩] 옵션 양매도 수익구조(feat. 베가)

1. 양매도는 구조적으로 승률이 높은 전략입니다. 그런데 대부분 사람들은 높은 승률이 지속되다보면 실력이라고 착각하게 됩니다. 이에 자만심에빠지고 결국 자금관리나 손절에서 실패하여 시장에서 아웃되는 경우가 많습니다. 레버리지가 크고 이론상 무한손실도 가능하기 때문에 매우 위험하지만, 기계적으로 접근한다면 꽤 매력적인 전략임에는 틀림없습니다. 2. 양매도는 말그대로 콜옵션과 풋옵션을 둘다 매도하는 전략입니다. 콜과 풋을 둘다 매도하게되면 아래와 같은 그래프가 나옵니다. 검은색은 손익그래프이고 초록색은 만기 그래프입니다. 검은색 선은 만기가 가까워 짐에 따라 초록색 선에 붙게됩니다. 검은색 그래프가 빨간 선 위에 있을때 수익인데요. 즉, 만기때까지 기초자산인 KOSPI200이 특정 범위 내에 있다면 수익을 ..

Sysmetic trading 2023.05.02

[트레이딩] 클러스터링 기법을 이용한 롱숏 시스템 트레이딩(1)

이번 포스팅에서는 머신러닝 기법중 비지도학습인 클러스터링을 이용한 롱숏트레이딩에 대해 적어보겠습니다. 이 연구를 하게된 계기는 아래 논문때문인데요. 논문의 방법론은 아래와 같습니다. 1. 클러스터링 기법으로 KOSPI200 개별종목을 군집화 2. 군집 내에서 수익률 순위로 페어를 결정 3. 페어간 수익률 차이(spread)를 표준편차로 나타내 임계값을 넘으면 롱숏 전략 수행 백테스트결과는 아래와 같은데 훌륭해 보이죠? :: Journal of Korean Society of Industrial and Systems Engineering :: 1. 서 론 페어 트레이딩은 유사한 가격흐름을 지닌 두 종목 간의 스프레드를 활용하는 투자전략으로 주로 기업의 펀더멘털 보다는 주식 시계열 특성에 기반 한 통계적 차..

Sysmetic trading 2023.04.27

[트레이딩] Optuna를 이용한 시스템 트레이딩 전략 최적화

최근 네이버블로거 백석꾼님께서 직장인 트레이딩 전략을 올려주시고 계시는데요. 다른 시스템트레이딩 블로거님들도 검증을 해주시고 계시는데, 놀랍게도 백테스팅 하시는 분마다 우상향 그래프를 뽑아내고 계시네요. 전략이 상당히 robustness한 것 같습니다. 저도 같은 전략을 백테스팅을 해봤는데요, 파이썬에 Optuna라는 라이브러리를 이용하여 전략의 파라미터를 최적화하는 과정도 추가하였습니다. 우선 백석꾼님이 올려주신 로직 그대로 백테스팅을 진행해봤습니다. 조건은 아래와 같습니다. 매수 조건 (1 or 2) and (3 or 4) 1번 조건: 당일 저가가 전일 저가보다 높음 2번 조건: 당일 거래량이 최근 3일의 거래량 이동평균보다 낮음 3번 조건: 이동평균선과 현재 가격의 이격도(20일 이동평균 사용)가 ..

Sysmetic trading 2023.04.26

[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

[AFML] 데이터의 구조(달러바 vs 볼륨바)

이번 포스팅에서는 시간바, 볼륨바, 달러바의 통계적 특성을 알아보도록 하겠습니다. AFML에서 2장에서 중요하게 다루는 것은 시계열 데이터를 이벤트 드리븐 형태로 표현하는 것입니다. 시간바(timebar)는 아래와 같은 이유 때문에 머신러닝 학습에 좋지 않은 편향을 보일 수 있기 때문입니다. (1) 거래량이 적을때는 오버샘플링, 거래량이 클 때는 오버샘플링 (2) 계열상관, 이분산성, 수익률의 비정규성을 보임 우선 1분 단위 삼성전자 데이터로 미리 만들어 놓은 달러바(dollarbar) 볼륨바(volumebar)를 import시켰습니다. import numpy as np import pandas as pd import matplotlib.pyplot as plt columns =['date','time'..

Sysmetic trading 2022.12.16