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
backtraderoptimization 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/
Installation
pip install 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file ravand_plotting-1.0.0.tar.gz.
File metadata
- Download URL: ravand_plotting-1.0.0.tar.gz
- Upload date:
- Size: 33.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.55.1 CPython/3.9.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5e288cc2f31bd4bcd7d65d5bbf4d6e2c67100100bdad7efd5c4f8b9397da67b0
|
|
| MD5 |
9f29a635cf4e0de0718c4bd83694bd5b
|
|
| BLAKE2b-256 |
7561428948454d47a95b9cc9fcb86306f9801a564aab51a48866ba913177e035
|