Skip to main content

Binance API wrapper with backtesting tools.

Project description

Welcome to BinPan's documentation!

PyPI version Python License: MIT

BinPan is a Python wrapper for the Binance API oriented towards market data analysis: candlestick (kline) data, trades, technical indicators, plotting, and strategy backtesting.

It is intended to be useful in Jupyter Notebooks, the Python console, or any data pipeline.

Requires Python >= 3.12. Published on PyPI under the MIT license.

Features

  • Fetch candlestick (OHLCV) data with timezone and indexing options.
  • Fetch atomic and aggregated trades.
  • Native technical indicators (EMA, SMA, RSI, MACD, Bollinger Bands, Supertrend, Ichimoku, VWAP, Stochastic, fractals, and more).
  • Interactive candlestick charts with Plotly: indicators, buy/sell markers, trade bubble charts, order book, market profile.
  • Support and resistance detection via K-Means clustering (static, rolling, discrete interval).
  • Strategy tagging and backtesting engine with stop loss, target, entry filters, and ROI/profit metrics.
  • Exchange metadata: order types, filters, fees, coin networks, 24h volume ranking.
  • CSV export/import for klines and trades.
  • PostgreSQL/TimescaleDB integration for historical data storage.
  • Heikin-Ashi candles, reversal charts from tick data, kline resampling.

An example of a candlestick chart with indicators:

BinPan contains no Binance order method, withdraw method or any dangerous command.

If you decide to add API keys for account methods, BinPan will encrypt them in a file and in memory, but it is recommended not to enable trading capability in your Binance API key configuration.

Be careful out there!

Installation

pip install binpan

Any API key or secret will be prompted when needed and encrypted in a file.

Quick Start

import binpan

btcusdt = binpan.Symbol(symbol='btcusdt',
                        tick_interval='15m',
                        time_zone='Europe/Madrid',
                        limit=200)

btcusdt.ema(21)
btcusdt.supertrend()
btcusdt.plot()

Example Notebooks

The notebooks/ folder contains example Jupyter Notebooks organized by topic:

# Notebook Topic
01 basic_tutorial Getting started: data, indicators, plots, trades
02 data_analysis Analysis: indicators, trades, market profile, order book
03 technical_indicators Full indicator catalogue
04 plotting All visualization capabilities
05 reversal_charts Reversal candles from atomic trades
06 tagging_and_backtesting Strategy signals and backtesting
07 support_resistance_kmeans S/R with K-Means clustering
08-10 ichimoku_* Ichimoku analysis and backtesting
11 exchange_info Exchange class: metadata, filters, fees
12 export_csv CSV export/import
13-15 database_* PostgreSQL/TimescaleDB integration

Documentation

Full Sphinx documentation: https://nand0san.github.io/binpan_studio/

GitHub repo

https://github.com/nand0san/binpan_studio

Google Colab

Google Colab is not available for the Binance API due to IP restrictions.

BinanceAPIException: APIError(code=0): Service unavailable from a restricted location...

Jupyter Import Troubleshooting

If you encounter import errors in Jupyter, install packages directly to the kernel:

import sys
!{sys.executable} -m pip install binpan

License

MIT

Project details


Release history Release notifications | RSS feed

This version

0.9.3

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

binpan-0.9.3.tar.gz (181.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

binpan-0.9.3-py3-none-any.whl (191.1 kB view details)

Uploaded Python 3

File details

Details for the file binpan-0.9.3.tar.gz.

File metadata

  • Download URL: binpan-0.9.3.tar.gz
  • Upload date:
  • Size: 181.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for binpan-0.9.3.tar.gz
Algorithm Hash digest
SHA256 94b13fd0b84fdd53b8222b6d24024e26cf4eb32f371e2081df2da20d1a8e6e3d
MD5 cfd4bebff204ab4fcc69afdc0bfa79d4
BLAKE2b-256 7cb0af58b8ff22c3651daacacabcf573ce3ea81764683f87ea65477cd6e3b324

See more details on using hashes here.

File details

Details for the file binpan-0.9.3-py3-none-any.whl.

File metadata

  • Download URL: binpan-0.9.3-py3-none-any.whl
  • Upload date:
  • Size: 191.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for binpan-0.9.3-py3-none-any.whl
Algorithm Hash digest
SHA256 7d581baea63cfa201f83beeb3250d2a2a51df67802bcd78dd26a62660ab0fb1c
MD5 00022dca1e3bbce3585f397f11265395
BLAKE2b-256 0b751f7b04e9ff676f5a5d816160ed79c1150948c16810cb3087e64014931b5f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page