Hi,
When I want to plot my strategy with BackTrader in CodeBook I have the following error :
I just did :
Do you know how can I solve it ?
Hi,
When I want to plot my strategy with BackTrader in CodeBook I have the following error :
I just did :
Do you know how can I solve it ?
I got the same error by using the following code.
import pandas as pd import backtrader as bt import datetime import refinitiv.dataplatform.eikon as ek ek.set_app_key('DEFAULT_CODE_BOOK_APP_KEY') df_price = ek.get_timeseries('IBM.N') cerebro = bt.Cerebro() feed = bt.feeds.PandasData(dataname=df_price) cerebro.adddata(feed) cerebro.addanalyzer(bt.analyzers.AnnualReturn, _name='areturn') cerebro.run() cerebro.plot()
The error is:
/opt/conda/lib/python3.8/site-packages/backtrader/plot/locator.py in <module> 33 from matplotlib.dates import AutoDateFormatter as ADFormatter 34 ---> 35 from matplotlib.dates import (HOURS_PER_DAY, MIN_PER_HOUR, SEC_PER_MIN, 36 MONTHS_PER_YEAR, DAYS_PER_WEEK, 37 SEC_PER_HOUR, SEC_PER_DAY, ImportError: cannot import name 'warnings' from 'matplotlib.dates' (/opt/conda/lib/python3.8/site-packages/matplotlib/dates.py)
The same code runs fine on my Jupyter Notebook environment.
I searched this error on Google and found that it could be the matplotlib or backtrader installation problem.
Please try to contact Eikon or Refinitiv Workspace support team via MyRefinitiv to verify this issue in Codebook.
Hi @raksina.samasiri ,
Thanks for your reply, here is my code :
import pandas as pd import backtrader as bt import datetime cerebro = bt.Cerebro() feed = bt.feeds.PandasData(dataname=df_price) cerebro.adddata(feed) cerebro.addanalyzer(bt.analyzers.AnnualReturn, _name='areturn') cerebro.run() cerebro.plot()
df_price is just a DataFrame with the price of one stock.
It works outside of CodeBook because I change the import in BackTrader of 'warnings'. (cf https://community.backtrader.com/topic/2784/cannot-import-name-warnings-from-matplotlib-dates/5)
Unfortuattly I can't do it in Codebook.
Thanks,
Samuel