All Projects → happydasch → btplotting

happydasch / btplotting

Licence: GPL-3.0 license
btplotting provides plotting for backtests, optimization results and live data from backtrader.

Programming Languages

python
139335 projects - #7 most used programming language
Jinja
831 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to btplotting

plottr
A flexible plotting and data analysis tool.
Stars: ✭ 32 (-79.87%)
Mutual labels:  plotting, live-plotting
Chartify
Python library that makes it easy for data scientists to create charts.
Stars: ✭ 3,054 (+1820.75%)
Mutual labels:  bokeh, plotting
Bokeh
Interactive Data Visualization in the browser, from Python
Stars: ✭ 15,822 (+9850.94%)
Mutual labels:  bokeh, plotting
machinaris
An easy-to-use WebUI for crypto plotting and farming. Offers Plotman, MadMax, Chiadog, Bladebit, Farmr, and Forktools in a Docker container. Supports Chia, MMX, Chives, Flax, HDDCoin, and BPX among others.
Stars: ✭ 324 (+103.77%)
Mutual labels:  plotting
Hibiscus
Hibiscus, mobile microblogging application.
Stars: ✭ 14 (-91.19%)
Mutual labels:  livedata
Kriptofolio
Free open source minimalistic cryptocurrencies portfolio app for Android.
Stars: ✭ 79 (-50.31%)
Mutual labels:  livedata
ChatApp
Chat app based on Firebase tools.
Stars: ✭ 88 (-44.65%)
Mutual labels:  livedata
Simple-Notes-Kotlin-App
✍️ Simple Note Making App use mvvm architecture , dagger , coroutines and navigation component. Features includes 🗒️ create , edit and ❌ delete notes
Stars: ✭ 40 (-74.84%)
Mutual labels:  livedata
GMT.jl
Generic Mapping Tools Library Wrapper for Julia
Stars: ✭ 148 (-6.92%)
Mutual labels:  plotting
eyepetizer kotlin
一款仿开眼短视频App,分别采用MVP、MVVM两种模式实现。一、组件化 + Kotlin + MVP + RxJava + Retrofit + OkHttp 二、组件化 + Kotlin + MVVM + LiveData + DataBinding + Coroutines + RxJava + Retrofit + OkHttp
Stars: ✭ 83 (-47.8%)
Mutual labels:  livedata
vioplot
Development version of vioplot R package (CRAN maintainer)
Stars: ✭ 25 (-84.28%)
Mutual labels:  plotting
ElectricPy
Electrical Engineering Python Module
Stars: ✭ 35 (-77.99%)
Mutual labels:  plotting
labplot
LabPlot is a FREE, open source and cross-platform Data Visualization and Analysis software accessible to everyone.
Stars: ✭ 107 (-32.7%)
Mutual labels:  plotting
GITechDemo
Global illumination technical demo - a continuation of the Synesthesia3D (ex-LibRenderer) graphics engine used in https://github.com/iftodebogdan/ShaderEditor
Stars: ✭ 45 (-71.7%)
Mutual labels:  bokeh
kmpapp
👨‍💻 Kotlin Mobile Multiplatform App (Android & iOS). One Code To Rule Them All. MVVM, DI (Kodein), coroutines, livedata, ktor, serialization, mockk, detekt, ktlint, jacoco
Stars: ✭ 34 (-78.62%)
Mutual labels:  livedata
observable-jupyter
Embed visualizations and code from Observable notebooks in Jupyter
Stars: ✭ 27 (-83.02%)
Mutual labels:  plotting
texfig
Utility to generate PGF vector files from Python's Matplotlib plots to use in LaTeX documents.
Stars: ✭ 58 (-63.52%)
Mutual labels:  plotting
biggles
simple, elegant python plotting
Stars: ✭ 19 (-88.05%)
Mutual labels:  plotting
visualizing-geodata folium-bokeh-demo-
folium, bokeh, jupyter, python
Stars: ✭ 17 (-89.31%)
Mutual labels:  bokeh
koapy
KOAPY 는 키움 OpenAPI 를 Python 에서 쉽게 사용할 수 있도록 만든 라이브러리 패키지 및 툴입니다.
Stars: ✭ 103 (-35.22%)
Mutual labels:  backtrader

btplotting

Library to add extended plotting capabilities to backtrader (https://www.backtrader.com/) using bokeh.

btplotting is based on the awesome backtrader_plotting (https://github.com/verybadsoldier/backtrader_plotting)

btplotting is a complete rework of backtrader_plotting with the live client in focus. Besides this, a lot of issues are fixed and new functionality is added. See the list below for differences.

What is different:

Basic:

  • No need for custom backtrader
  • Different naming / structure
  • Different data generation which allows to generate data for different data sources. This is useful when replaying or resampling data, for example to remove gaps.
  • Different filtering of plot objects
  • Support for replay data
  • Every figure has its own ColumnDataSource, so the live client can patch without having issues with nan values, every figure is updated individually
  • Display of plots looks more like backtrader plotting (order, heights, etc.)
  • Allows to generate custom columns, which don't have to be hardcoded. This is being used to generate color for candles, varea values, etc.
  • Possibility to fill gaps of higher timeframes with data

Plotting:

  • Datas, Indicators, Observer and Volume have own aspect ratios, which can be configured in live client or scheme
  • Only one axis for volume will be added when using multiple data sources on one figure
  • Volume axis position is configureable in scheme, by default it is being plotted on the right side
  • Linked Crosshair across all figures
  • fill_gt, fill_lt, fill support
  • Plot objects can be filtered by one or more datanames or by plot group
  • Custom plot group, which can be configured in app or in live client by providing all plotids in a comma-seperated list or by selecting the parts of the plot to display

Tabs:

  • Default tabs can be completely removed
  • New log panel to also include logging information
  • Can be extended with custom tabs (for example order execution with live client, custom analysis, etc.)

Live plotting:

  • Navigation in live client (Pause, Backward, Forward)
  • Live plotting is done using an analyzer, so there is no need to use custom backtrader
  • Live plotting data update works in a single thread and is done by a DataHandler
  • Data update is being done every n seconds, which is configureable

Features

  • Interactive plots
  • Interactive backtrader optimization result browser (only supported for single-strategy runs)
  • Highly configurable
  • Different skinnable themes
  • Easy to use

Python >= 3.6 is required.

How to use

  • Add to cele as an analyzer:
from btplotting import BacktraderPlottingLive
  ...
  ...

cerebro = bt.Cerebro()
cerebro.addstrategy(MyStrategy)
cerebro.adddata(LiveDataStream())
cerebro.addanalyzer(BacktraderPlottingLive)
cerebro.run()
cerebro.plot()
  • If you need to change the default port or share the plotting to public:
cerebro.addanalyzer(BacktraderPlottingLive, address="*", port=8889)

Jupyter

In Jupyter you can plut to a single browser tab with iplot=False:

plot = btplotting.BacktraderPlotting()
cerebro.plot(plot, iplot=False)

You may encounters TypeError: <class '__main__.YourStrategyClass'> is a built-in class error.

To remove the source code tab use:

plot = btplotting.BacktraderPlotting()
plot.tabs.remove(btplotting.tabs.SourceTab)
cerebro.plot(plot, iplot=False)

Demos

https://happydasch.github.io/btplotting/

Installation

pip install git+https://github.com/happydasch/btplotting

Sponsoring

If you want to support the development of btplotting, consider to support this project.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].