Plotting package for Backtrader (Bokeh)
Project description
backtrader_plotting
Library to add extended plotting capabilities to backtrader
(https://www.backtrader.com/). Currently the only available backend is Bokeh
(https://bokeh.org/).
Features
- Interactive plots
- Interactive
backtrader
optimization result browser (only supported for single-strategy runs) - Highly configurable
- Different skinnable themes
- Easy to use
Feel free to test it and play with it. I am happy about feedback, critics and ideas on backtrader forum (and also in GitHub issues): https://community.backtrader.com/topic/813/bokeh-integration-interactive-webbrowser-plotting
Needs Python >= 3.6.
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 use the OptBrowser
to browse a backtrader
optimization result:
...
cerebro.optstrategy(TestStrategy, buydate=range(1, 10, 1))
cerebro.addanalyzer(bt.analyzers.SharpeRatio)
...
res = cerebro.run()
bo = Bokeh()
browser = OptBrowser(bo, result)
browser.start()
This will start a Bokeh application (standalone webserver) displaying all optimization results. Different results can be selected and viewed.
It is possible possible to add further user-provided columns. When dealing with huge amounts of optimization results the number of results can be limited and the remaining results can be sorted by a user-provided function to allow for simple selection of the best results.
Documentation
Please refert to the Wiki for further documentation: https://github.com/verybadsoldier/backtrader_plotting/wiki
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-1.0.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | c2d39f943ab66985f2a35fdf759af9d9006b02a07979750adb90b072678f1687 |
|
MD5 | d053d1988185df359ad1383ea7c0a156 |
|
BLAKE2b-256 | 3b9c94d4acde705956b363614bc15f0eae3ec1f2a0664574f6d586edf1f70b73 |
Hashes for backtrader_plotting-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 43f5b957f3909f86109fe89930ecffeb132a02c7ee1946abca76b09e9fe41e2f |
|
MD5 | 518196cfdba32312a596a185db69f296 |
|
BLAKE2b-256 | 15a4db1651daf2af2878a6c8721460c912a8dd15792ff6ef451bbb16d8004971 |