Senatus
A WIP Python library for building trading bots and performing market analysis. Senatus wraps the Binance API (spot and futures) and provides utilities for retrieving market data, computing technical indicators, and visualizing results — so you can focus on strategy logic instead of boilerplate.
Features
- Binance integration — spot and futures market data via
binance-connectorandbinance-futures-connector - Data handling — market data returned as
pandasDataFrames, ready for analysis - Numerical analysis —
numpy-based computations for signal processing and indicator math - Visualization — interactive charts via
plotlyfor exploring price action and indicators - (WIP)Bot-ready — designed as a foundation for automated trading strategies
Installation
pip install senatus
Virtual environment (recommended)
python3 -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install senatus
Quickstart
# Example: fetch OHLCV data and compute a simple moving average
# (full API reference coming soon — see the senatus/ source directory)
from senatus.api.binanceAPI import (getPastCandlesTimeSeries)
from senatus.indicators.indicators import (getMAV, getEMA, getWRSI, find_top)
from senatus.plot import Plot
from senatus.test_trader import TestTrader
from senatus.strategies import RSI_Margins_Strategy, BoolIndicatorStrategy
# Define your parameters
pair = 'bnbusdt'
timeframe = '1h'
# Get past data
priceSeries = getPastCandlesTimeSeries(pair, timeframe)
# Plot data
my_plot = Plot(priceSeries)
my_plot.plot_asset_chart()
wrsi = getWRSI(priceSeries, 8)
my_plot.plot_indicator_dif_chart(wrsi)
is_top = find_top(priceSeries, 25, 0)
tt = TestTrader(priceSeries, 1000)
# Test bot
tt.operate_strategy(is_top, BoolIndicatorStrategy(), my_plot)
tt.operate_strategy(wrsi, RSI_Margins_Strategy(15, 80), my_plot)
my_plot.apply_custom().show()
Full quickstart examples are in progress. See the
senatus/package directory for available modules and thetest/directory for usage patterns.
Dependencies
| Package | Purpose |
|---|---|
numpy >= 2.2.3 |
Numerical computation |
pandas >= 2.2.3 |
Market data as DataFrames |
plotly >= 5.24.0 |
Interactive charting |
binance-connector >= 3.12.0 |
Binance Spot API |
binance-futures-connector >= 4.1.0 |
Binance Futures API |
Project Structure
senatus/
├── senatus/ # Core library package
├── test/ # Tests and usage examples
├── pyproject.toml # Package metadata and dependencies
└── LICENSE.txt
Roadmap
- Initial technical indicator library (RSI, MACD, Bollinger Bands, etc.)
- Complete quickstart documentation with code examples
- Backtesting utilities
- Strategy base class for building trading bots
License
MIT — see LICENSE.txt for details.
Author
Metadata
Release files for senatus 0.0.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| senatus-0.0.7.tar.gz | 10.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| senatus-0.0.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 21.8 kB
Release files / senatus-0.0.7.tar.gz
| Download URL | senatus-0.0.7.tar.gz |
|---|---|
| Size | 10.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
94ce750f718046d46ca88c2b37bdbed3dd9a315a5c0f267cfe597bff5faeb67e
|
|
BLAKE2b-256 checksum How to use checksums |
a746caf2be911ab11f9a58afeea4fd5ff890d4370993ff66b488f8918aea6d8c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Linux Mint","version":"22.3","id":"zena","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / senatus-0.0.7-py3-none-any.whl
| Download URL | senatus-0.0.7-py3-none-any.whl |
|---|---|
| Size | 11.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7d805d3aae1cc410fce4cb86f1ed5551f2675150881439960853af87d4523acb
|
|
BLAKE2b-256 checksum How to use checksums |
1cbb9e1d083f00553cfd6c94a0e459dae4156612d7f12dbfd668ed6bca1dd75a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Linux Mint","version":"22.3","id":"zena","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|