INVESTAR / StockAnalysisInPython

456 stars 412 forks source link

7.6.3 Backtrader 라이브러리에 5장의 데이터 적용 방법 #43

Open cahn70 opened 3 years ago

cahn70 commented 3 years ago

안녕하세요? 현재 교재의 7.6.3과 7.6.4절의 Backtrader 라이브러리 사용시, 아래와 같이 야후 파이낸스 데이터를 가져와서 테스트를 했는데요...

data = bt.feeds.YahooFinanceData(dataname='036570.KS', fromdate=datetime(2017, 1, 1), todate=datetime(2019, 12, 1))

야후 파이낸스 데이터가 아닌, 5장에서 구축한 네이버 금융으로부터 스크레이핑한 데이터를 적용해서 백테스트를 하려면 어떻게 수정을 하면 될지 문의 드립니다.

감사합니다.

INVESTAR commented 3 years ago

backtrader에서 pandas의 DataFrame 형태로 데이터를 입력(feed)하기 위해서는 아래 코드처럼 PandasData라는 클래스를 사용해야 합니다.

mk = Analyzer.MarketDB()
df = mk.get_daily_price('036570', '2017-01-01', '2019-12-01')
df.date = pd.to_datetime(df.date)
data = bt.feeds.PandasData(dataname=df, datetime='date')
cerebro.adddata(data)

참조: https://www.backtrader.com/docu/pandas-datafeed/pandas-datafeed/

backtrader

코드를 위와 같이 고칠 경우, 기존에 책에서 보던 그래프와 동일한 그래프가 출력됨을 확인할 수 있습니다.

ncsoft