Plotting package for Backtrader (Bokeh)
Project description
backtrader_plotting
Plotting addon for backtrader to support Bokeh (and maybe more).
This is in an early development state. Expect bugs, heavy restructuring and commit reordering. Currently this is Python >=3.6 only.
Feel free to test it and play with it. I am happy about feedback, critics and ideas: https://community.backtrader.com/topic/813/bokeh-integration-interactive-webbrowser-plotting
Demos
https://verybadsoldier.github.io/backtrader_plotting/
Quickstart
from backtrader_plotting import Bokeh
from backtrader_plotting.schemes import Tradimo
<your backtrader code>
b = Bokeh(style='bar', plot_mode='single', scheme=Tradimo())
cerebro.plot(b)
Minimal Example
import datetime
import backtrader as bt
from backtrader_plotting import Bokeh
class TestStrategy(bt.Strategy):
params = (
('buydate', 21),
('holdtime', 6),
)
def next(self):
if len(self.data) == self.p.buydate:
self.buy(self.datas[0], size=None)
if len(self.data) == self.p.buydate + self.p.holdtime:
self.sell(self.datas[0], size=None)
if __name__ == '__main__':
cerebro = bt.Cerebro()
cerebro.addstrategy(TestStrategy, buydate=3)
data = bt.feeds.YahooFinanceCSVData(
dataname="datas/orcl-1995-2014.txt",
# Do not pass values before this date
fromdate=datetime.datetime(2000, 1, 1),
# Do not pass values after this date
todate=datetime.datetime(2001, 2, 28),
reverse=False,
)
cerebro.adddata(data)
cerebro.run()
b = Bokeh(style='bar', plot_mode='single')
cerebro.plot(b)
Plotting Optimization Results
Another way to use this package is to invoke Bokeh.plot_result
. This function also supports passing a cerebro
result object as it is generated in optimization:
...
cerebro.optstrategy(TestStrategy, buydate=range(1, 10, 1))
cerebro.addanalyzer(bt.analyzers.SharpeRatio)
...
res = cerebro.run()
bo = Bokeh()
bo.plot_result(res)
This will start a Bokeh application (standalone webserver) displaying all optimization results.
NOTE: When using this feature with optreturn=True
then your package of backtrader
has to contain this change of mine:
https://github.com/verybadsoldier/backtrader/commit/f03a0ed115338ed8f074a942f6520b31c630bcfb
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for backtrader_plotting-0.5.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | ae1319a57bbc8026aadd42013da5c24ef0ea999ca7245f654d4d00837be33e6c |
|
MD5 | 24f2d5d0a38723f9711bd842cbd196e2 |
|
BLAKE2b-256 | 84e96493ec0b2a014e2feac4c4fd130c24d5bc9150fe63fdf70e3a6cb6864016 |
Hashes for backtrader_plotting-0.5.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3d07085ae985ca445abc3b76f2c50a815db98ace5ff9814ea46e5b8879b7c366 |
|
MD5 | ea2a5c36fe8aba6d393a985fb67c1664 |
|
BLAKE2b-256 | 9859021fc7a07caf17080a25bd2405e75413117d81fe5d07077b19ac92bc0e9a |