삶의 공유
[파이썬] 비트코인 자동매매 전략 Study(가격, 거래량 기반 전략)-백테스팅 본문
안녕하세요 ~~
이번 포스팅은 지난 포스팅에서 짠 전략이 얼마나 효과가 있었을지에 대해서 확인해보는 백테스팅을 해보는 시간을 갖겠습니다.
이전 내용이 생각이 안나신 다면 하기 링크 클릭 해서 보시고 오시면 됩니다 !
[파이썬] 비트코인 자동매매 전략 Study(가격, 거래량 기반 전략)-2
안녕하세요 ~ 이번 시간에도 앞에서 다룬 비트코인 자동매매 전략 Study 편을 이어서 진행해보겠습니다. 먼저 앞에서 다룬 데이터를 불러와보겠습니다. 이 데이터로 수익률의 히스토그램 그래프
wg-cy.tistory.com
전략대로 짠 매수, 매도 시그날인 "position" 컬럼을 기반으로 수익률을 확인 해보겠습니다
data['strategy'] = data.position.shift(1) * data['returns']
data
그럼 bitcoin을 그냥 사고 팔았을때와, 저희가 짠 전략으로 매수 매도 했었을때의 누적 수익률을 확인 해보겠습니다.
# log 수익률 계산
data[['returns', 'strategy']].sum().apply(np.exp)
와.. 어마어마한 차이가 있네요..
자 이제 이것을 누적수익률의 별도 컬럼으로 만들어 주겠습니다.
data['cstrategy'] = data['strategy'].cumsum().apply(np.exp)
이 내용을 기반으로 시각화 하여 저희가 만든 전략이 얼마나 효과가 있는지 직관적으로 볼수 있게 해보겠습니다.
data[['creturns', 'cstrategy']].plot(figsize=(12,8), fontsize=12)
plt.show()
와 엄청 차이가 나죠,,,? 뭔가 이상한거 같기도 하네요..ㅎㅎ 다시한번 raw data를 살펴봐야겠습니다..
우선은 그대로 진행 하겠습니다.
자 이제 여기서 중요한 요소가 있습니다 ! 바로 거래 수수료 인데요, 위의 수익률이 거래 수수료로 인해서 얼마나 반감이 되는지 확인해보는것도 중요한 시사점인것 같습니다.
거래 비용 계산하기
다음과 같이 코드를 작성 해 주겠습니다.
data['trades'] = data.position.diff().fillna(0).abs()
data.trades.value_counts()
758회의 거래가 발생 하였다는 의미입니다. 이제 이 각각의 거래의 수수료를 부여해보겠습니다.
comissions = 0.00075 # reduced binance commission 0.075%
other = 0.0001 #숨은 거래 비용, 매매 가격차이 & 슬리피지를 위한 비용
ptc = np.log(1-comissions) + np.log(1-other)
ptc
매번 거래 시 위와 같은 수수료가 발생 하는 것을 확인 할 수 있답니다. 이제 이 비용을 수익률에 반영해보겠습니다.
data['stategy_net'] = data.strategy + data.trades * ptc
data['cstategy_net'] = data.stategy_net.cumsum().apply(np.exp)
data[['creturns','cstrategy' ,'cstategy_net']].plot(figsize=(12,8), fontsize=12)
plt.show()
수익률이 거의 절반으로 떨어지는것이 보이시나요 ? 이렇게 거래 수수료가 무시 못할 정도의 비용이 발생한다는 것을 보여 주는 내용인 것 같습니다.
꼭 자동 매매 전략을 짜실 때 수수료를 꼭 포함 하셔서 백테스팅을 해보시는것을 추천드립니다.
긴 내용이었지만 롱 온리 매수 전략에 대한 포스팅은 마치도록 하겠습니다.
감사합니다.
'Data Scientist > Python' 카테고리의 다른 글
[파이썬] Daily 수익률 표준 편차와 누적 수익률과의 관계 확인 (0) | 2022.05.22 |
---|---|
[파이썬] pandas datareader 라이브러리를 이용한 데이터 로딩 및 시각화 (0) | 2022.05.16 |
[파이썬] 비트코인 자동매매 전략 Study(가격, 거래량 기반 전략)-전략수립 (0) | 2022.04.17 |
자동매매 개발 관련 로그 수익률 사용 이유 (0) | 2022.04.12 |
[파이썬] 비트코인 자동매매 전략 Study(가격, 거래량 기반 전략)-데이터준비 (0) | 2022.04.03 |