[Python] 백트레이더 (Backtrader) 에서 matplotlib 오류 수정하기
프로젝트/[ing]_백테스팅_툴

[Python] 백트레이더 (Backtrader) 에서 matplotlib 오류 수정하기

728x90
반응형

안녕하세요.

이번엔 백트레이더 패키지를 import 하여 실행할 때 matplotlib 관련 에러가 나는 경우 해결하는 법에 대해서 알아보고자 합니다. 

 

에러는 아래와 같습니다.

 

ImportError: cannot import name 'warnings' from 'matplotlib.dates'

 

matplotlib.dates 에서 warnings 란 이름을 import 할 수 없다고 나옵니다.

 

여기서 선택지는 2가지로 나눌 수 있습니다. 

 

첫번째. matplotlib 을 downgrade 한다.

두번째. matplotlib.dates 에서 warnings 란 이름을 넣어준다.

 

전 여기서 두번째 방법을 사용해보고자 합니다. 기왕 패키지 사용하는거 최신버전을 유지하면 좋으니까요 ㅎ

 

1. backtrader/plot/locator.py 를 엽니다.

(C:\Users\username\AppData\Local\Programs\Python\Python39\Lib\site-packages\backtrader\plot\locator.py)

 

2. 코드를 아래 그림처럼 수정해줍니다. (출처 : [1])

 

backtrader matplotlib import error 관련 코드 수정 부분

 

 

그리고 백트레이더 패키지를 활용하면 문제없이 돌아가는 것을 확인하실 수 있습니다.

 

예시. 첫번째 포스트의 코드파일을 실행시킨 경우 plot

(2020-07-31 ~ 2021-07-31 네이버 일간차트 기준, RSI(상대강도지수) 가 60 초과 매도, 40미만 매수 조건)

백트레이더 실행 후 plot.  (2020-07-31 ~ 2021-07-31 네이버 일간차트 기준, RSI 가 60 초과 매도, 40미만 매수 조건.)

 

아래의 Reference 를 참고하면 더 도움이 되실 것입니다.

[1] https://github.com/mementum/backtrader/pull/418/commits/61f0878a4e3616b62d3ad035acafd0ff25da1dec

728x90
반응형