Here are the examples of the python api backtrader_plotting.Bokeh taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
15 Examples
3
View Source File : test_backtest.py
License : GNU General Public License v3.0
Project Creator : happydasch
License : GNU General Public License v3.0
Project Creator : happydasch
def test_std_backtest_volume_subplot(cerebro: bt.Cerebro):
cerebro.addstrategy(bt.strategies.MA_CrossOver)
cerebro.run()
s = backtrader_plotting.schemes.Blackly()
s.voloverlay = False
b = Bokeh(style='bar', scheme=s, output_mode=_output_mode)
figs = cerebro.plot(b)
assert len(figs) == 1
assert_num_tabs(figs, 3)
assert_num_figures(figs, 5)
def test_std_backtest(cerebro: bt.Cerebro):
3
View Source File : test_backtest.py
License : GNU General Public License v3.0
Project Creator : happydasch
License : GNU General Public License v3.0
Project Creator : happydasch
def test_std_backtest(cerebro: bt.Cerebro):
cerebro.addstrategy(bt.strategies.MA_CrossOver)
cerebro.run()
s = backtrader_plotting.schemes.Blackly()
b = Bokeh(style='bar', scheme=s, output_mode=_output_mode)
figs = cerebro.plot(b)
assert len(figs) == 1
assert_num_tabs(figs, 3)
assert_num_figures(figs, 4)
def test_std_backtest_2datas(cerebro: bt.Cerebro):
3
View Source File : test_backtest.py
License : GNU General Public License v3.0
Project Creator : happydasch
License : GNU General Public License v3.0
Project Creator : happydasch
def test_std_backtest_tabs_multi(cerebro: bt.Cerebro):
cerebro.addstrategy(bt.strategies.MA_CrossOver)
cerebro.run()
s = backtrader_plotting.schemes.Blackly()
b = Bokeh(style='bar', tabs='multi', scheme=s, output_mode=_output_mode)
figs = cerebro.plot(b)
assert len(figs) == 1
assert_num_tabs(figs, 5)
assert_num_figures(figs, 4)
def test_std_backtest_ind_subplot(cerebro: bt.Cerebro):
3
View Source File : test_backtest.py
License : GNU General Public License v3.0
Project Creator : happydasch
License : GNU General Public License v3.0
Project Creator : happydasch
def test_std_backtest_ind_on_line(cerebro: bt.Cerebro):
'''In the past it crashed when creating indicators with specific lines case LineSeriesStub was not handled correctly'''
class TestStrategy(bt.Strategy):
def __init__(self):
self._sma = bt.indicators.SMA(self.data.close)
cerebro.addstrategy(TestStrategy)
cerebro.run()
s = backtrader_plotting.schemes.Blackly()
b = Bokeh(style='bar', scheme=s, output_mode=_output_mode)
figs = cerebro.plot(b)
assert len(figs) == 1
assert_num_tabs(figs, 3)
assert_num_figures(figs, 3)
def test_backtest_2strats(cerebro: bt.Cerebro):
3
View Source File : test_backtest.py
License : GNU General Public License v3.0
Project Creator : happydasch
License : GNU General Public License v3.0
Project Creator : happydasch
def test_backtest_2strats(cerebro: bt.Cerebro):
cerebro.addstrategy(bt.strategies.MA_CrossOver)
cerebro.addstrategy(ToggleStrategy)
cerebro.run()
b = Bokeh(style='bar', output_mode=_output_mode)
figs = cerebro.plot(b)
assert len(figs) == 2
assert_num_tabs(figs, 3, 3)
assert_num_figures(figs, 4, 3)
def test_optimize(cerebro: bt.Cerebro):
3
View Source File : test_backtest.py
License : GNU General Public License v3.0
Project Creator : happydasch
License : GNU General Public License v3.0
Project Creator : happydasch
def test_optimize_2strat(cerebro: bt.Cerebro):
cerebro.optstrategy(bt.strategies.MA_CrossOver, slow=[5, 10, 20], fast=[5, 10, 20])
cerebro.optstrategy(ToggleStrategy, modbuy=[12, 15], modsell=[17, 19])
res = cerebro.run()
b = Bokeh(style='bar', output_mode=_output_mode)
browser = OptBrowser(b, res)
with pytest.raises(RuntimeError):
browser.build_optresult_model()
# browser.start()
def test_optimize_no_optreturn(cerebro_no_optreturn: bt.Cerebro):
0
View Source File : test_backtest.py
License : GNU General Public License v3.0
Project Creator : happydasch
License : GNU General Public License v3.0
Project Creator : happydasch
def test_std_backtest_2datas(cerebro: bt.Cerebro):
datapath = getdatadir('nvda-1999-2014.txt')
data = bt.feeds.YahooFinanceCSVData(
dataname=datapath,
fromdate=datetime.datetime(1998, 1, 1),
todate=datetime.datetime(2000, 12, 31),
reverse=False,
swapcloses=True,
)
cerebro.adddata(data)
cerebro.addstrategy(bt.strategies.MA_CrossOver)
cerebro.run()
s = backtrader_plotting.schemes.Blackly()
b = Bokeh(style='bar', scheme=s, output_mode=_output_mode, merge_data_hovers=True)
figs = cerebro.plot(b)
assert len(figs) == 1
assert_num_tabs(figs, 3)
assert_num_figures(figs, 5)
def test_std_backtest_tabs_multi(cerebro: bt.Cerebro):
0
View Source File : test_backtest.py
License : GNU General Public License v3.0
Project Creator : happydasch
License : GNU General Public License v3.0
Project Creator : happydasch
def test_std_backtest_ind_subplot(cerebro: bt.Cerebro):
cerebro.addstrategy(bt.strategies.MA_CrossOver)
cerebro.run()
plotconfig = {
'#:i-0': {
'subplot': True,
}
}
s = backtrader_plotting.schemes.Blackly()
b = Bokeh(style='bar', scheme=s, output_mode=_output_mode, plotconfig=plotconfig)
figs = cerebro.plot(b)
assert_num_tabs(figs, 3)
assert_num_figures(figs, 5)
def test_std_backtest_ind_on_line(cerebro: bt.Cerebro):
0
View Source File : test_backtest.py
License : GNU General Public License v3.0
Project Creator : happydasch
License : GNU General Public License v3.0
Project Creator : happydasch
def test_optimize(cerebro: bt.Cerebro):
cerebro.optstrategy(bt.strategies.MA_CrossOver, slow=[5, 10, 20], fast=[5, 10, 20])
res = cerebro.run(optreturn=True)
b = Bokeh(style='bar', output_mode=_output_mode)
browser = OptBrowser(b, res)
model = browser.build_optresult_model()
# browser.start()
def count_children(obj):
numo = 1
if hasattr(obj, "children"):
numo = count_children(obj.children)
if hasattr(obj, '__len__'):
numo += len(obj)
return numo
num = count_children(model)
assert num == 3
def test_optimize_2strat(cerebro: bt.Cerebro):
0
View Source File : test_backtest.py
License : GNU General Public License v3.0
Project Creator : happydasch
License : GNU General Public License v3.0
Project Creator : happydasch
def test_optimize_no_optreturn(cerebro_no_optreturn: bt.Cerebro):
cerebro_no_optreturn.optstrategy(bt.strategies.MA_CrossOver, slow=[5, 10, 20], fast=[5, 10, 20])
res = cerebro_no_optreturn.run()
s = backtrader_plotting.schemes.Blackly()
b = Bokeh(style='bar', output_mode=_output_mode, scheme=s)
browser = OptBrowser(b, res)
model = browser.build_optresult_model()
#browser.start()
def count_children(obj):
numo = 1
if hasattr(obj, "children"):
numo = count_children(obj.children)
if hasattr(obj, '__len__'):
numo += len(obj)
return numo
num = count_children(model)
assert num == 3
def test_ordered_optimize(cerebro: bt.Cerebro):
0
View Source File : test_backtest.py
License : GNU General Public License v3.0
Project Creator : happydasch
License : GNU General Public License v3.0
Project Creator : happydasch
def test_ordered_optimize(cerebro: bt.Cerebro):
cerebro.optstrategy(bt.strategies.MA_CrossOver, slow=[20], fast=[5, 10, 20])
res = cerebro.run(optreturn=True)
def df(optresults):
a = [x.analyzers.tradeanalyzer.get_analysis() for x in optresults]
return sum([x.pnl.gross.total if 'pnl' in x else 0 for x in a])
usercolumns = {
'Profit & Loss': df,
}
b = Bokeh(style='bar', output_mode=_output_mode)
browser = OptBrowser(b, res, usercolumns=usercolumns, sortcolumn='Profit & Loss')
model = browser.build_optresult_model()
# browser.start()
def count_children(obj):
numo = 1
if hasattr(obj, "children"):
numo = count_children(obj.children)
if hasattr(obj, '__len__'):
numo += len(obj)
return numo
num = count_children(model)
assert num == 3
0
View Source File : test_issue30.py
License : GNU General Public License v3.0
Project Creator : happydasch
License : GNU General Public License v3.0
Project Creator : happydasch
def test_github_issue30():
cerebro = bt.Cerebro()
cerebro.addstrategy(MyStrategy)
data = bt.feeds.YahooFinanceCSVData(
dataname=getdatadir("orcl-1995-2014.txt"),
fromdate=datetime.datetime(2000, 1, 1),
todate=datetime.datetime(2001, 2, 28),
reverse=False,
)
cerebro.adddata(data)
cerebro.addanalyzer(bt.analyzers.SharpeRatio)
cerebro.run()
b = backtrader_plotting.Bokeh(filename='chart.html', style='bar', scheme=Tradimo(), output_mode='memory')
figs = cerebro.plot(b)
assert isinstance(figs[0][0], backtrader_plotting.bokeh.bokeh.FigurePage)
assert len(figs[0][0].figure_envs) == 4
assert len(figs[0][0].analyzers) == 1
if __name__ == '__main__':
0
View Source File : test_issue36.py
License : GNU General Public License v3.0
Project Creator : happydasch
License : GNU General Public License v3.0
Project Creator : happydasch
def test_github_issue36():
cerebro = bt.Cerebro()
cerebro.addstrategy(MyStrategy)
filedir = os.path.dirname(os.path.abspath(__file__))
df = pd.read_csv(os.path.join(filedir, "datas/NQ.csv"), index_col=0)
df.index = pd.DatetimeIndex(df.index)
data = bt.feeds.PandasData(dataname=df, name='NQ', timeframe=bt.TimeFrame.Minutes)
cerebro.adddata(data)
cerebro.resampledata(data, name='NQ_5min', timeframe=bt.TimeFrame.Minutes, compression=5)
cerebro.addanalyzer(bt.analyzers.SharpeRatio)
cerebro.run()
b = Bokeh(filename='chart.html', style='bar', plot_mode="single", scheme=Tradimo(), output_mode='memory')
cerebro.plot(b)
if __name__ == "__main__":
0
View Source File : test_issue37.py
License : GNU General Public License v3.0
Project Creator : happydasch
License : GNU General Public License v3.0
Project Creator : happydasch
def test_github_issue37_plotaspectratio():
cerebro = bt.Cerebro()
data = bt.feeds.YahooFinanceCSVData(
dataname=getdatadir("orcl-1995-2014.txt"),
fromdate=datetime.datetime(2000, 1, 1),
todate=datetime.datetime(2001, 2, 28),
reverse=False,
)
cerebro.adddata(data)
cerebro.broker.setcash(10000)
cerebro.coc = True
cerebro.broker.setcommission(commission=0.00075)
cerebro.addstrategy(BokehTest)
cerebro.run()
plotconfig = {
'id:rsi': dict(
plotaspectratio=10,
),
}
b = Bokeh(style='bar', plot_mode='single', scheme=Tradimo(), plotconfig=plotconfig, output_mode='memory')
output = cerebro.plot(b)
assert output[0][0].figure_envs[1].figure.aspect_ratio == 10
0
View Source File : test_lineactions.py
License : GNU General Public License v3.0
Project Creator : happydasch
License : GNU General Public License v3.0
Project Creator : happydasch
def test_lineactions():
cerebro = bt.Cerebro()
cerebro.addstrategy(MyStrategy)
data = bt.feeds.YahooFinanceCSVData(
dataname=getdatadir("orcl-1995-2014.txt"),
fromdate=datetime.datetime(2000, 1, 1),
todate=datetime.datetime(2001, 2, 28),
reverse=False,
)
cerebro.adddata(data)
cerebro.addanalyzer(bt.analyzers.SharpeRatio)
cerebro.run()
b = backtrader_plotting.Bokeh(style='bar', scheme=Tradimo(), output_mode='memory')
figs = cerebro.plot(b)
assert isinstance(figs[0][0], backtrader_plotting.bokeh.bokeh.FigurePage)
assert len(figs[0][0].figure_envs) == 4
assert len(figs[0][0].analyzers) == 1
if __name__ == '__main__':