question

Upvotes
Accepted
1 1 2 2

Plot Backtrader

Hi,


When I want to plot my strategy with BackTrader in CodeBook I have the following error :

error.png


I just did :

1650990393003.png

Do you know how can I solve it ?

datastream-apibacktesting
error.png (14.6 KiB)
1650990393003.png (7.6 KiB)
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

hi @sdevaux

Thank you for your participation in the forum. Is the reply below satisfactory in resolving your query?

If so please can you click the 'Accept' text next to the appropriate reply? This will guide all community members who have a similar question.

Thanks,
AHS

Please be informed that a reply has been verified as correct in answering the question, and has been marked as such.

Thanks,


AHS


Upvote
Accepted
78.8k 250 52 74

@sdevaux

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.

1651131965097.png

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.


1651131965097.png (63.4 KiB)
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
14.2k 30 5 10

hi @sdevaux ,

Could you post the full code for an investigation, please?

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
1 1 2 2

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

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Thanks, Samuel for sharing the code with us, can you also please share a sample dataframe as well just for understanding which all fields you are using?

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.