added shorter syntax for one pane

This commit is contained in:
David Brazda
2024-10-13 14:21:05 +02:00
parent a9cb8da66e
commit 7b0acec3e6
5 changed files with 33 additions and 6 deletions

View File

@ -53,13 +53,26 @@ t1data.ohlcv.data["BAC"].lw.plot(auto_scale=macd)
![alt text](image-6.png) ![alt text](image-6.png)
```python ```python
#quick few liner, displays close series with label "close" on right pricescale and rsi on left price scale, all on single Panel #ONE PANEL - quick few liner, displays close series with label "close" on right pricescale and rsi on left price scale, all on single Panel
pane1 = Panel( pane1 = Panel(
right=[(close, "close")], right=[(close, "close")],
left=[(rsi,"rsi")] left=[(rsi,"rsi")]
) )
ch = chart([pane1]) ch = chart([pane1])
##ONE PANEL - quicker
Panel(
auto_scale=[cdlbreakaway],
ohlcv=(t1data.ohlcv.data["BAC"],entries),
histogram=[],
right=[],
left=[],
middle1=[],
middle2=[]
).chart(size="s")
```
![alt text](image-7.png)
```python
# display two Panels # display two Panels
# on first displays ohlcv data, orderimbalance volume as histogram with opacity, bbands on the right pricescale and # on first displays ohlcv data, orderimbalance volume as histogram with opacity, bbands on the right pricescale and
# sma with short_signals and short_exits on the left pricescale # sma with short_signals and short_exits on the left pricescale

BIN
image-7.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

View File

@ -10,7 +10,7 @@ ohlcv_cols = ['close', 'volume', 'open', 'high', 'low']
right_cols = ['vwap'] right_cols = ['vwap']
left_cols = ['rsi', 'cci', 'macd', 'macdsignal'] left_cols = ['rsi', 'cci', 'macd', 'macdsignal']
middle1_cols = ["mom"] middle1_cols = ["mom"]
middle2_cols = ["updated"] middle2_cols = ["updated", "integer"]
histogram_cols = ['buyvolume', 'sellvolume', 'trades', 'macdhist'] histogram_cols = ['buyvolume', 'sellvolume', 'trades', 'macdhist']
def append_scales(df, right, histogram, left, middle1, middle2, name = ""): def append_scales(df, right, histogram, left, middle1, middle2, name = ""):
@ -246,6 +246,18 @@ class Panel:
ch = chart([pane1]) ch = chart([pane1])
# or simply:
Panel(
auto_scale=[cdlbreakaway],
ohlcv=(t1data.ohlcv.data["BAC"],entries),
histogram=[],
right=[],
left=[],
middle1=[],
middle2=[]
).chart(size="s")
# Synced example # Synced example
pane1 = Panel( pane1 = Panel(
ohlcv=(t1data.data["BAC"],), #(series, entries, exits, other_markers) ohlcv=(t1data.data["BAC"],), #(series, entries, exits, other_markers)
@ -303,8 +315,10 @@ class Panel:
self.xloc = xloc self.xloc = xloc
self.precision = precision self.precision = precision
def chart(self, **kwargs):
chart([self], **kwargs)
def chart(panes: list[Panel], sync=False, title='', size="m", xloc=None, session = slice("09:30:00","9:30:05"), precision=None, **kwargs): def chart(panes: list[Panel], sync=False, title='', size="s", xloc=None, session = slice("09:30:00","9:30:05"), precision=None, **kwargs):
""" """
Function to fast render a chart with multiple panes. This function manipulates graphical Function to fast render a chart with multiple panes. This function manipulates graphical
output or interfaces with an external framework to display charts with synchronized output or interfaces with an external framework to display charts with synchronized

View File

@ -113,7 +113,7 @@ def is_vbt_indicator(variable):
# Get the module path of the variable's type # Get the module path of the variable's type
module_path = variable.__class__.__module__ module_path = variable.__class__.__module__
# Check if it starts with 'vectorbtpro.indicators' # Check if it starts with 'vectorbtpro.indicators'
return module_path.startswith('vectorbtpro.indicators') return module_path.startswith('vectorbtpro.indicators') or module_path.startswith('indicators.')
class Pane: class Pane:
def __init__(self, window): def __init__(self, window):

View File

@ -5,7 +5,7 @@ with open('README.md', 'r', encoding='utf-8') as f:
setup( setup(
name='lightweight_charts', name='lightweight_charts',
version='2.2.4', version='2.2.5',
packages=find_packages(), packages=find_packages(),
python_requires='>=3.8', python_requires='>=3.8',
install_requires=[ install_requires=[