Skip to content

BurningNetel/binance-tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Binance portfolio tracker

This application gets your binance portfolio and stores it in mongodb every minute.

Installation

First, install dependencies using pip and requirements.txt. In binance.service, append your secret and api-key as arguments to runner.py. Place the binance.service file in /etc/systemd/system/. Reload systemd with systemctl daemon-reload, and enable the binance service with systemctl enable binance.service.

Frontend

Use https://github.com/BurningNetel/binance-tracker-frontend to visualize the value of your portfolio over time.

This project is based on

https://github.com/swordsecurity/binance

Binance API client in Python

  • Does not require an api key for public methods
  • Compatible with Python 2.7-3.6

Installation

pip install binance

Usage

import binance

For authenticated API calls, set your API key and secret

binance.set("your api key", "your secret key")

Get prices for all symbols

binance.prices()

Example response

{u'123456': u'0.00030000',
 u'ASTBTC': u'0.00005049',
 u'ASTETH': u'0.00092500',
 ...}

Get tickers for all symbols

binance.tickers()

Example response

{u'123456': {'ask': u'0.00000000',
  'askQty': u'0.00000000',
  'bid': u'0.00000000',
  'bidQty': u'0.00000000'},
 u'ASTBTC': {'ask': u'0.00005149',
  'askQty': u'3396.00000000',
  'bid': u'0.00004951',
  'bidQty': u'222.00000000'},
 ...}

Get order book

binance.depth("BNBBTC")

Example response

{'asks': {u'0.00022773': u'83.00000000',
  u'0.00022799': u'3347.00000000',
  u'0.00022800': u'3476.00000000',
  ...},
 'bids': {u'0.00020410': u'2000.00000000',
  u'0.00020450': u'6363.00000000',
  u'0.00020469': u'592.00000000',
  ...}}

Get top 5 levels only

binance.depth("BNBBTC", limit=5)

Get klines

binance.klines("BNBBTC", "1m")

Example response

[{'close': u'0.00023780',
  'closeTime': 1508472359999,
  'high': u'0.00023780',
  'low': u'0.00023768',
  'numTrades': 7,
  'open': u'0.00023769',
  'openTime': 1508472300000,
  'quoteVolume': u'0.06964315',
  'volume': u'293.00000000'},
 ...}]

Get balances for all currencies

binance.balances()

Example response

{u'123': {'free': u'0.00000000', 'locked': u'0.00000000'},
 u'456': {'free': u'0.00000000', 'locked': u'0.00000000'},
 u'ADX': {'free': u'0.00000000', 'locked': u'0.00000000'},
 ...}

Place order

Place 1000 lot buy order at 0.000001 on BNBBTC

binance.order("BNBBTC", binance.BUY, 1000, 0.000001)

Example response

{u'clientOrderId': u'fud8s7yw8o4wry7',
 u'executedQty': u'0.00000000',
 u'orderId': 123456789,
 u'origQty': u'1000.00000000',
 u'price': u'0.00000100',
 u'side': u'BUY',
 u'status': u'NEW',
 u'symbol': u'BNBBTC',
 u'timeInForce': u'GTC',
 u'transactTime': 1508502448246,
 u'type': u'LIMIT'}

Test an order to see if any errors are returned from the API. It will not actually place an order.

binance.order("BNBBTC", binance.BUY, 1000, 0.000001, test=True)

Example response. An empty dict indicates that there were no errors.

{}

Use a client id to identify the order later

binance.order("BNBBTC", binance.BUY, 1000, 0.000001, newClientOrderId="foobar")

Cancel order

binance.cancel("BNBBTC", orderId=123456789)

Example response

{u'clientOrderId': u'h67362qq3e9eaefe',
 u'orderId': 123456789,
 u'origClientOrderId': u'fud8s7yw8o4wry7',
 u'symbol': u'BNBBTC'}

Cancel using client id

binance.cancel("BNBBTC", origClientOrderId="foobar")

Get order status

binance.orderStatus("BNBBTC", orderId=123456789)

Example response

{u'clientOrderId': u'fud8s7yw8o4wry7',
 u'executedQty': u'0.00000000',
 u'icebergQty': u'0.00000000',
 u'orderId': 123456789,
 u'origQty': u'1000.00000000',
 u'price': u'0.00000100',
 u'side': u'BUY',
 u'status': u'NEW',
 u'stopPrice': u'0.00000000',
 u'symbol': u'BNBBTC',
 u'time': 1508502448246,
 u'timeInForce': u'GTC',
 u'type': u'LIMIT'}

Get using client id

binance.orderStatus("BNBBTC", origClientOrderId="foobar")

Get all open orders

binance.openOrders("BNBBTC")

Example response

[{u'clientOrderId': u'fud8s7yw8o4wry7',
  u'executedQty': u'0.00000000',
  u'icebergQty': u'0.00000000',
  u'orderId': 123456789,
  u'origQty': u'1000.00000000',
  u'price': u'0.00000100',
  u'side': u'BUY',
  u'status': u'NEW',
  u'stopPrice': u'0.00000000',
  u'symbol': u'BNBBTC',
  u'time': 1508502448246,
  u'timeInForce': u'GTC',
  u'type': u'LIMIT'},
 ...]

Get open and closed orders

binance.allOrders("BNBBTC")

Example response

[{u'clientOrderId': u'8u9ohoes8ryo',
  u'executedQty': u'10.00000000',
  u'icebergQty': u'0.00000000',
  u'orderId': 987654321,
  u'origQty': u'10.00000000',
  u'price': u'0.00020000',
  u'side': u'BUY',
  u'status': u'FILLED',
  u'stopPrice': u'0.00000000',
  u'symbol': u'BNBBTC',
  u'time': 1508333700089,
  u'timeInForce': u'GTC',
  u'type': u'LIMIT'},
 ...]

Get trades

binance.myTrades("BNBBTC")

Example response

[{u'commission': u'0.00500000',
  u'commissionAsset': u'BNB',
  u'id': 1484979,
  u'isBestMatch': True,
  u'isBuyer': True,
  u'isMaker': False,
  u'orderId': 987654321,
  u'price': u'0.00020000',
  u'qty': u'10.00000000',
  u'time': 1508333700089},
 ...]

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages