Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- docker
- 파이썬
- Crawling
- Quant
- lstm
- 코딩테스트
- ADP
- 변동성돌파전략
- 실기
- SQL
- GridSearchCV
- 백테스트
- 데이터분석
- 토익스피킹
- PolynomialFeatures
- TimeSeries
- 파트5
- backtest
- 데이터분석전문가
- 볼린저밴드
- 주식
- randomforest
- 프로그래머스
- Programmers
- 파이썬 주식
- sarima
- 빅데이터분석기사
- hackerrank
- Python
- 비트코인
Archives
- Today
- Total
데이터 공부를 기록하는 공간
백테스트 - logistic regression 본문
(참고) 파이썬을 이용한 알고리즘 트레이딩 5장
data = df.copy()
data['return'] = np.log(data['close']/data['close'].shift(1))
data.dropna(inplace=True)
lags = 3
cols = []
for lag in range(1, lags+1):
col = "lag_{}".format(lag)
data[col] = data['return'].shift(lag)
cols.append(col)
data.dropna(inplace=True)
data
from sklearn.metrics import accuracy_score
from sklearn.linear_model import LogisticRegression
lm = LogisticRegression(C=1e7, solver = 'lbfgs',
multi_class='auto',
max_iter=1000)
lm.fit(data[cols], np.sign(data['return']))
data['prediction'] = lm.predict(data[cols])
data['prediction'].value_counts()
▶ long = 1 보다는 short=-1을 예측한 값이 많다.
hits = np.sign(data['return'].iloc[lags:]*
data['prediction'].iloc[lags:]
).value_counts()
hits
accuracy_score(np.sign(data['return']), data['prediction'])
▶ 예측 정확도가 낮다.
data['strategy'] = data['prediction']*data['return']
data[['return','strategy']].sum().apply(np.exp)
▶그래도 가만히 가지고 있는 것보다는 long-short 포지션 하는 것이 더 좋긴하다.
data[['return','strategy']].cumsum().apply(np.exp).plot(figsize=(10,6));
# long position 만 가지고, short position일때 팔면 ?
data['prediction_long'] = np.where(data['prediction']>0, 1,0)
data['strategy_long'] = data['prediction_long']*data['return']
data[['return','strategy_long']].sum().apply(np.exp)
▶ 이것도 보유만 하는 것보다는 낫다.
data[['return','strategy_long']].cumsum().apply(np.exp).plot(figsize=(10,6));
▶ 위기때 너무 많이 떨어지는 것을 확인할 수 있다.
'STOCK > 비트코인' 카테고리의 다른 글
백테스트 - MLP 5분봉 (0) | 2022.01.03 |
---|---|
백테스트 - MLP (0) | 2022.01.03 |
백테스트 - 모멘텀 (0) | 2022.01.02 |
업비트 API (0) | 2022.01.02 |
업비트 거래하기 (0) | 2021.12.31 |
Comments