Draw candlesticks charts right into your terminal, using Python!
Project description
Python Candlesticks Chart
📈 Draw candlesticks charts right into your terminal, using Python!
This is a portage from the great cli-candlestick-chart (developed by Julien-R44, written in Rust). You are looking at the Python 3.10+ version.
Note: not tested on macOS, nor Windows (it will likely fail to render colors).
Table of contents:
Features
- Auto-fit to terminal size
- Practical formatting for big, and tiny, numbers
- Integration with Rich
- Simple, yet customizable, API
- Exact same API as the Rust version, plus some sugar
- Simple installation, no external dependencies
Intallation
As simple as:
$ python -m pip install -U candlestick-chart
Demonstration
from candlestick_chart import Candle, Chart
# Add some candles
candles = [
Candle(133.520004, 133.610001, 126.760002, 129.410004),
Candle(128.889999, 131.740005, 128.429993, 131.009995),
Candle(127.720001, 131.050003, 126.379997, 126.599998),
Candle(128.360001, 131.630005, 127.860001, 130.919998),
Candle(132.429993, 132.630005, 130.229996, 132.050003),
]
# Create and display the chart
# Optional keyword arguments: title, width, height
chart = Chart(candles, title="Optional title")
# Set the chart title
chart.set_name("BTC/USDT")
# Set customs colors
chart.set_bear_color(1, 205, 254)
chart.set_bull_color(255, 107, 153)
chart.set_vol_bull_color(1, 205, 254)
chart.set_vol_bear_color(255, 107, 153)
# Set custom labels (empty string => label not displayed)
chart.set_label("highest", "ATH")
chart.set_label("lowest", "ATL")
chart.set_label("average", "")
chart.set_label("volume", "")
# Volume pane settings
chart.set_volume_pane_height(6)
chart.set_volume_pane_enabled(False)
# And, it is also responsive!
new_width = 200
new_height = 150
chart.update_size(new_width, new_height)
# By the way, did you know that you can add more candles in real-time?
chart.update_candles(candles[:3])
# Or completely replace current candles
chart.update_candles(candles[:3], reset=True)
# Set a custom color at price 52,348.63
# from candlestick_chart.utils import fnum
chart.set_highlight(fnum(52,348.63), "red")
chart.set_highlight(fnum(52,348.63), (255, 0, 0))
chart.set_highlight(fnum(52,348.63), "91m")
chart.set_highlight(fnum(52,348.63), "91;47m")
chart.draw()
Binary Usage
When installing the library, an executable is made available (candlestick-chart
):
$ candlestick-chart --help
options:
-h, --help show this help message and exit
-m {stdin,csv-file,json-file}, --mode {stdin,csv-file,json-file}
Select the method for retrieving the candles.
-f FILE, --file FILE [MODE:*-file] File to read candles from.
--chart-name CHART_NAME
Sets the chart name.
--bear-color BEAR_COLOR
Sets the descending candles color in hexadecimal.
--bull-color BULL_COLOR
Sets the ascending candles color in hexadecimal.
--version show program's version number and exit
When requesting the JSON or stdin mode, the library expects a JSON with the following format:
[
{
"open": 28994.009766,
"high": 29600.626953,
"low": 28803.585938,
"close": 29374.152344
},
...
]
For all requests, here are supported fields:
"open": float # mandatory
"close": float # mandatory
"high": float # mandatory
"low": float # mandatory
"volume": float
"timestamp": float
Examples
API
- Basic example with CSV parsing: run with
$ python examples/basic-from-csv-file.py
- Basic example with JSON parsing: run with
$ python examples/basic-from-json-file.py
- Basic example with stdin parsing: run with
$ ./examples/basic-from-stdin.sh
- Fetch candles from Binance: run with
$ python examples/fetch-from-binance.py
- Integration with Rich: run with
$ python examples/integrate-with-rich.py
- Using a custom chart renderer class: run with
$ python examples/custom-renderer-class.py
Binary
Read CSV from file
$ candlestick-chart \
--mode=csv-file \
--file='./examples/BTC-USD.csv' \
--chart-name='My BTC Chart' \
--bear-color='#b967ff' \
--bull-color='ff6b99'
Read JSON from file
$ candlestick-chart \
--mode=json-file \
--file='./examples/BTC-chart.json' \
--chart-name='My BTC Chart' \
--bear-color='#b967ff' \
--bull-color='ff6b99'
Read from stdin
echo '[
{
"open": 28994.009766,
"high": 29600.626953,
"low": 28803.585938,
"close": 29374.152344
},
{
"open": 29376.455078,
"high": 33155.117188,
"low": 29091.181641,
"close": 32127.267578
}
]' | candlestick-chart \
--mode=stdin \
--chart-name='My BTC Chart' \
--bear-color='#b967ff' \
--bull-color='ff6b99'
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
Built Distribution
File details
Details for the file candlestick-chart-2.6.0.tar.gz
.
File metadata
- Download URL: candlestick-chart-2.6.0.tar.gz
- Upload date:
- Size: 15.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6f70d131613993a02587b50cce2887ed2ec276c1ebd890b2885f2649fe1d7b23 |
|
MD5 | 3a9b2e1d6ccbc8983a3f647c35e79a18 |
|
BLAKE2b-256 | a831ee867b422c1cb993cfe39fa18c162484ed235f1d0d4fa68371796e244ec2 |
File details
Details for the file candlestick_chart-2.6.0-py3-none-any.whl
.
File metadata
- Download URL: candlestick_chart-2.6.0-py3-none-any.whl
- Upload date:
- Size: 16.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7d03ed85847c4bc8fd20945979c0648ae0caeb5c6effafe81979e658ae1f5791 |
|
MD5 | 0f49e2c074a70008c73586adfd994f3d |
|
BLAKE2b-256 | 2b0387ab4a671b88360daf8e7d4259d5466894afc02ca57f8d5406a45c96ab1d |