일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 비트코인
- 파이썬 주식
- sarima
- 데이터분석전문가
- TimeSeries
- 토익스피킹
- GridSearchCV
- 백테스트
- 실기
- SQL
- PolynomialFeatures
- docker
- lstm
- 변동성돌파전략
- Quant
- 파트5
- 파이썬
- Programmers
- randomforest
- 코딩테스트
- Crawling
- ADP
- backtest
- 데이터분석
- 프로그래머스
- Python
- 빅데이터분석기사
- hackerrank
- 주식
- 볼린저밴드
- Today
- Total
목록STOCK/비트코인 (19)
데이터 공부를 기록하는 공간

"""데이터 불러오기 """ import pandas as pd import numpy as np import matplotlib.pyplot as plt import pyupbit df = pyupbit.get_ohlcv("KRW-DOGE", interval = "minute5", count=12*24*7*4) ■ plotly로 그리기 #import the libraries import plotly.subplots as ms import plotly.graph_objects as go data = df.reset_index().rename(columns={'index':'datetime'}).copy() data = data[['datetime','open','high','low','close','vo..

볼린저밴드 백테스트에 수수료와 슬리피지 추가 mode = 1 : 상승시 구매 mode = 2 : 하락시 구매 로 백테스트 """ 시간대별 데이터 불러오기 """ import pandas as pd import numpy as np import matplotlib.pyplot as plt import pyupbit data = pyupbit.get_ohlcv("KRW-DOGE", interval = "minute5", count=12*24*7*4) # window_b : 볼린저밴드 윈도우 # window_f : 현금흐름지표 윈도우 # buy_pb : 매수조건 퍼센트볼린저 하한 # buy_mfi : 매수조건 현금흐름지표 하한 # sell_pb : 매도조건 퍼센트볼린저 상한 # sell_mfi : 매도조건 현..

백테스트에서 슬리피지와 수수료를 고려하지 않았었다. 수수료 0.05%는 그리 크지 않을 것이라 생각했다. 10만원 기준, 1회 매수,매도 세트로 수행시 0.1%로 100원의 수수료가 들어간다. 1000만원 기준, 1회 매수, 매도 세트로 수행 시 0.1%로 1만원의 수수료가 들어간다. 슬리피지는 내가 백테스트를 했을 때 원하는 가격과 실제로 내가 매수/매도하는 가격의 차이인데 이것이 꽤나 크다. 지금부터 보인다. 다음은 백테스트를 위한 함수 # window_b : 볼린저밴드 윈도우 # window_f : 현금흐름지표 윈도우 # buy_pb : 매수조건 퍼센트볼린저 하한 # buy_mfi : 매수조건 현금흐름지표 하한 # sell_pb : 매도조건 퍼센트볼린저 상한 # sell_mfi : 매도조건 현금흐름..

Q. backtest 할 때 return을 제대로 산출하고 있는가? 기존ⓐ df['return'] = np.log(df['close']/df['close'].shift(1)) # 로그수익률 의문ⓑ df['return'] = np.log(df['close'].shift(-1)/df['close']) # 로그수익률 ⓐ 와 ⓑ 중 옳은 return 산출 방식은? 현재 업비트에서 실제와 주피터 노트북에서 백테스트한 결과가 같아야 한다. 실제 업비트 환경에서는 앞에서 살펴본것과 같이 조건 만족여부를 탐색할 때 가장 최근값은 dataframe 에서 거꾸로 두번째 데이터 사용한다. 즉, 바로 앞 5분 봉의 종가를 기준으로 평가하고 매수를 한다. 슬리피지가 없다고 가정하고, 매수 조건을 만족하는 경우 매수가는 바로 앞..