azbot

module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 12, 2023 License: MIT

README ΒΆ

azbot

A fast stock and cryptocurrency trading bot framework implemented in Go. Azbot permits users to create and test custom strategies for spot and future markets.

Docs: https://ezquant.github.io/azbot/

The project was greatly inspired by: https://github.com/rodrigo-brito/ninjabot

DISCLAIMER
This software is for educational purposes only. Do not risk money which you are afraid to lose. USE THE SOFTWARE AT YOUR OWN RISK. THE AUTHORS AND ALL AFFILIATES ASSUME NO RESPONSIBILITY FOR YOUR TRADING RESULTS

Installation

go get -u github.com/ezquant/azbot/...

Examples of Usage

Check examples directory:

  • Paper Wallet (Live Simulation)
  • Backtesting (Simulation with historical data)
  • Real Account (Binance)
CLI

To download historical data you can download azbot CLI from:

  • Pre-build binaries in release page
  • Or with go install github.com/ezquant/azbot/cmd/azbot@latest

Example of usage

# Download candles of BTCUSDT to btc.csv file (Last 30 days, timeframe 1D)
azbot download --pair BTCUSDT --timeframe 1d --days 30 --output ./btc.csv
Backtesting Example
  • Backtesting a custom strategy from examples directory:
go run examples/backtesting/backtesting.go

Output:

INFO[2023-03-25 13:54] [SETUP] Using paper wallet                   
INFO[2023-03-25 13:54] [SETUP] Initial Portfolio = 10000.000000 USDT 
---------+--------+-----+------+--------+--------+-----+----------+-----------+
|  PAIR   | TRADES | WIN | LOSS | % WIN  | PAYOFF | SQN |  PROFIT  |  VOLUME   |
+---------+--------+-----+------+--------+--------+-----+----------+-----------+
| ETHUSDT |      9 |   6 |    3 | 66.7 % |  3.407 | 1.3 | 21748.41 | 407769.64 |
| BTCUSDT |     14 |   6 |    8 | 42.9 % |  5.929 | 1.5 | 13511.66 | 448030.05 |
+---------+--------+-----+------+--------+--------+-----+----------+-----------+
|   TOTAL |     23 |  12 |   11 | 52.2 % |  4.942 | 1.4 | 35260.07 | 855799.68 |
+---------+--------+-----+------+--------+--------+-----+----------+-----------+

-- FINAL WALLET --
0.0000 BTC = 0.0000 USDT
0.0000 ETH = 0.0000 USDT
45260.0735 USDT

----- RETURNS -----
START PORTFOLIO     = 10000.00 USDT
FINAL PORTFOLIO     = 45260.07 USDT
GROSS PROFIT        =  35260.073493 USDT (352.60%)
MARKET CHANGE (B&H) =  407.09%

------ RISK -------
MAX DRAWDOWN = -11.76 %

------ VOLUME -----
BTCUSDT         = 448030.05 USDT
ETHUSDT         = 407769.64 USDT
TOTAL           = 855799.68 USDT
-------------------
Chart available at http://localhost:8080

Plot result
Features
Binance Spot Binance Futures
Order Market πŸ†— πŸ†—
Order Market Quote πŸ†—
Order Limit πŸ†— πŸ†—
Order Stop πŸ†— πŸ†—
Order OCO πŸ†—
Backtesting πŸ†— πŸ†—
  • Backtesting

    • Paper Wallet (Live Trading with fake wallet)
    • Order Limit, Market, Stop Limit, OCO
    • Load Feed from CSV
    • Load Feed from TDX local files
    • Load Feed from Redis DB
  • Paperwallet

    • Load Feed from TDX remote API
    • Load Feed from CTP simnow and live
  • Bot Utilities

    • CLI to download historical data
    • Plot (Candles + Sell / Buy orders, Indicators)
    • Telegram Controller (Status, Buy, Sell, and Notification)
    • Heikin Ashi candle type support
    • Trailing stop tool
    • In app order scheduler

Roadmap

  • Include Web UI Controller
  • Include more chart indicators - Details
Exchanges

Currently, we only support Binance exchange. If you want to include support for other exchanges, you need to implement a new struct that implements the interface Exchange. You can check some examples in exchange directory.

Support the project
Address
BTC bc1qpk6yqju6rkz33ntzj8kuepmynmztzydmec2zm4
ETH 0x2226FFe4aBD2Afa84bf7222C2b17BBC65F64555A
LTC ltc1qj2n9r4yfsm5dnsmmtzhgj8qcj8fjpcvgkd9v3j

Patreon: https://www.patreon.com/azbot_github

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL