Home
Softono

Basana

Open source Python
840
Stars
110
Forks
2
Issues
19
Watchers
3 months
Last Commit

 About Basana

A Python async and event driven framework for algorithmic trading, with a focus on crypto currencies.

Platforms

Web Self-hosted

Languages

Python

Links

Need Help Installing Basana?

We provide expert installation service for this software. Our team will install, configure, and secure Basana on your server. plans start at just $30.

Testcases PyPI version Read The Docs License Downloads

Basana

Basana is a Python async and event driven framework for algorithmic trading, with a focus on crypto currencies.

Key Features

  • 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.

Getting Started

Installation

$ 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.

Backtest a pairs trading strategy

  1. 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
    
  2. Run the backtest

    $ python -m samples.backtest_pairs_trading
    

./docs/_static/readme_pairs_trading.png

Binance Order Book mirror

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.

./docs/_static/order_book_mirror.png

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.

Documentation

https://basana.readthedocs.io/en/latest/

Help

You can seek help with using Basana in the discussion area on GitHub.