Basana is a Python async and event driven framework for algorithmic trading, with a focus on crypto currencies.
- Backtesting exchange so you can try your trading strategies before using real funds.
- Live trading at Binance and Bitstamp crypto currency exchanges.
- Asynchronous I/O and event driven.
$ pip install basana[charts]
The examples use TALIpp for the technical indicators, pandas, statsmodels and also Textual if you want to run the Binance order book mirror.
$ pip install talipp pandas statsmodels textual
Download and unzip samples or clone the GitHub repository.
-
Download historical data for backtesting
$ python -m basana.external.binance.tools.download_bars -c BCH/USDT -p 1h -s 2021-12-01 -e 2021-12-26 -o binance_bchusdt_hourly.csv $ python -m basana.external.binance.tools.download_bars -c CVC/USDT -p 1h -s 2021-12-01 -e 2021-12-26 -o binance_cvcusdt_hourly.csv -
Run the backtest
$ python -m samples.backtest_pairs_trading
The following example demonstrates how to maintain a synchronized local copy of a Binance order book using Basana's event-driven architecture. It initializes the order book from a REST API snapshot, then continuously updates it with real-time diffs from a WebSocket stream while periodically verifying consistency against fresh snapshots to handle potential synchronization issues.
Use the following command to run the example:
$ python -m samples.binance_order_book_mirror
The mirroring code can be found here.
The Basana repository comes with a number of examples you can experiment with or use as a template for your own projects:
Note that these examples are provided for educational purposes only. Use at your own risk.
https://basana.readthedocs.io/en/latest/
You can seek help with using Basana in the discussion area on GitHub.