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

볼린저밴드 백테스트에 수수료와 슬리피지 추가 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분 봉의 종가를 기준으로 평가하고 매수를 한다. 슬리피지가 없다고 가정하고, 매수 조건을 만족하는 경우 매수가는 바로 앞..

테스트시간 : 약 15시간 비트코인 5분봉 데이터 활용 볼린저 추세추종 실적 시작금액 : 100,000 원 최종금액 : 98,968 원 손실 : △1,032원 매수-매도 횟수 : 14번 수수료 : 약 100원 * 14 = 1400원 슬리피지 : 계산 따로 안함 ▶ 역시나 수수료를 극복하기 어렵다. ### 볼린저밴드 추세추종 ### 5분 import time import pyupbit import datetime import numpy as np import pandas as pd access = XXXXXXXX secret = YYYYYYYY def get_balance(ticker): """잔고 조회""" balances = upbit.get_balances() for b in balances: if ..