???
Project description
Intro
- Monitors the entire crypto market kline (candlestick) data, showing 20 symbols only below for illustration
- Other tools
Usage
pip install crypto-monitor
- You can either react to individual symbol updates by defining a callback
on_changeas shown below - Or define a task like
plot_taskbelow that handles all symbols (x.data) repeatedlyx.data: Dict[str, np.ndarray] x.update_time: Dict[str, int] print(x.data["BTCUSDT"], x.update_time["BTCUSDT"])
import asyncio
from typing import List
import numpy as np
from crypto_data_downloader.binance import ALL_COLUMNS
from crypto_data_downloader.utils import format_date, plot_crypto_data, timestamp
from PIL import Image
from crypto_monitor.binance import CryptoMonitor
from crypto_monitor.utils import safe_exit, save_gif
async def main():
async def on_change(sym: str, arr: np.ndarray, e_time: int):
if sym == "BTCUSDT":
f = format_date
print(
f"BTC. my time: {f(timestamp())}, event time: {f(e_time)}, price: {arr[-1, 1]}"
)
x = CryptoMonitor()
x.quote = "USDT" # Quote asset
x.interval = "5m" # Kline time interval
x.columns = ["open_time", "close"] # Data columns to include
print(f"All data columns: {ALL_COLUMNS}")
x.kline_lim = 10 # Only show 10 time steps for clearer visualization
x.market = ["SPOT", "MARGIN"][1]
x.max_num = 20 # Only show 20 symbols for visualization
x.on_change = on_change
async def plot_task():
frames: List[Image.Image] = []
while True:
await asyncio.sleep(2)
safe_exit.check()
if len(x.data):
id = "data/CryptoMonitor"
plot_crypto_data(x.data, id)
frames.append(Image.open(f"{id}.png").copy())
assert len(frames) < 150, save_gif(frames, id, fps=5)
await asyncio.gather(x.watch(), plot_task())
asyncio.run(main())
- Output
All data columns: ['open_time', 'open', 'high', 'low', 'close', 'volume', 'close_time', 'quote_volume', 'n_trades', 'taker_buy_base_volume', 'taker_buy_quote_volume', 'unused']
weight lim: 5000/6000, USDT symbols: 599, spot: 559, margin: 403
BTC. my time: 2025-08-07 04:10:22, event time: 2025-08-07 04:10:22, price: 114639.92
BTC. my time: 2025-08-07 04:10:24, event time: 2025-08-07 04:10:24, price: 114639.91
BTC. my time: 2025-08-07 04:10:26, event time: 2025-08-07 04:10:26, price: 114639.92
...
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file crypto_live_trader-0.0.1.tar.gz.
File metadata
- Download URL: crypto_live_trader-0.0.1.tar.gz
- Upload date:
- Size: 2.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3f352f53e695092841172ec15efaa565573fb57780bdcab5fef6dd4e6bb98441
|
|
| MD5 |
57849258ca686a18a3e4d421966e35c2
|
|
| BLAKE2b-256 |
cefd043309da99b66e24f2a52b6a8aa591adc788c4cec06dafaa299e9e48198d
|
File details
Details for the file crypto_live_trader-0.0.1-py3-none-any.whl.
File metadata
- Download URL: crypto_live_trader-0.0.1-py3-none-any.whl
- Upload date:
- Size: 3.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e2fabbe526f69059a21e8c8236bd6bd5c8628f8dea4513aa77a234060aef1c26
|
|
| MD5 |
0be464c966d64c699ec661dc859493e1
|
|
| BLAKE2b-256 |
03fd2e3a50adf77f23c89b38d4f0e746ec6d2257d2b9df8c214c67bcbc9b495c
|