preventing labels for all data feeds showing when plotting
-
I have a few hundred data feeds that Im running a portfolio strategy over. I would like to plot just the observer results and perhaps one of the data feeds as a reference but I haven't figured out how to turn off the data labels showing for the trades observer.
I am setting
plotinfo.plot = False
for all the data feeds except the first one which seems to work when I use just 6 of the data feeds but when I add all the data feeds I get the plot show below.With all feeds
With just 6 feeds
#run cerebro = bt.Cerebro() cerebro.addstrategy(St) cerebro.broker.setcash(20000.0) cerebro.addobserver(bt.observers.TimeReturn, timeframe=bt.TimeFrame.NoTimeFrame) cerebro.addobserver(bt.observers.Benchmark, data=benchmark, timeframe=bt.TimeFrame.NoTimeFrame) cerebro.adddata(benchmark, name='SPY') for feed in feeds: cerebro.adddata(feed[1], name=feed[0]) results = cerebro.run() cerebro.plot(iplot=False, style='candle')
#strategy for d in self.datas: d.plotinfo.plot = False self.data1.plotinfo.plot = True
-
@sfkiwi said in preventing labels for all data feeds showing when plotting:
or all the data feeds except the first one
@sfkiwi said in preventing labels for all data feeds showing when plotting:
self.data1.plotinfo.plot = True
That's not the first one, it is the second (arrays are
0
based)In any case, if it works for 6 data feeds it shall work for the rest. If a data feed has
plotinfo.plot
set toFalse
, its name will not get added to the list of labels to be displayed. The code doesn't know if you added 6 or 1006 data feeds. The label will simply not be added (because the entire code that plots a data feed and its indicators will be skipped)In the plot above there are many labels for data feeds, which is an indication that the code was executed.