unknown crypto currency error: Send order to Binance exchange with Python CCXT package 

(Last Updated On: July 18, 2018)

Sending order to Binance exchange with Python CCXT package

To enable API, you login to follow these instructions  but understand working with unknown code from Binance crypto currency exchange. Realize that this is not an easy process like Coinbase. This is confirmation is not as slick as other brokers/exchanges I have worked with.

https://support.coinigy.com/hc/en-us/articles/360001144614-How-do-I-find-my-API-key-on-Binance-com-

https://support.binance.com/hc/en-us/articles/115000840592-Binance-API-Beta

Also for CCXT Python package, use this source code example

https://github.com/ccxt/ccxt/issues/2552

When I run this sample with test enabled, I get this return code:

{‘info’: {}, ‘id’: None, ‘timestamp’: None, ‘datetime’: None, ‘lastTradeTimestamp’: None, ‘symbol’: None, ‘type’: None, ‘side’: None, ‘price’: None, ‘amount’: None, ‘cost’: None, ‘filled’: 0.0, ‘remaining’: None, ‘status’: None, ‘fee’: None}

Confirmed Binance login

Do understand this account is unfunded so it does confirm to work when you enter the correct API and secret keys. If the secret or API keys were incorrect, you will get this exceptions:

File “/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/ccxt/binance.py”, line 834, in handle_errors
raise ExchangeError(self.id + ‘: unknown error code: ‘ + body + ‘ ‘ + error)
ccxt.base.errors.ExchangeError: binance: unknown error code: {“code”:-1022,”msg”:”Signature for this request is not valid.”} -1022

In the Trenches with Crypto Currencies video replay

Here is an ongoing dialogue with my most helpful dialogue PRIVATE Telegram group:

for anyone with Binance API experience. I am using this example with binance for CCXT https://github.com/ccxt/ccxt/issues/2552

Some coding examples

It seems to login ok with the proper API keys. I test a fake one which resulted as an error as expected. When I try set up these coding parameters with:

symbol = ‘XZC/BNB’

#symbol = ‘BCH/BNB’

type = ‘limit’ # or ‘market’

side = ‘buy’ # or ‘buy’

amount = 1.0

price = 1.302 #0.060154 # or None

# extra params and overrides if needed

params = {

‘test’: True, # test if it’s valid, but don’t actually place it

}

order = exchange.create_order(symbol, ‘limit’, side, amount, price, params)

It results in which is nothing:

{‘info’: {}, ‘id’: None, ‘timestamp’: None, ‘datetime’: None, ‘lastTradeTimestamp’: None, ‘symbol’: None, ‘type’: None, ‘side’: None, ‘price’: None, ‘amount’: None, ‘cost’: None, ‘filled’: 0.0, ‘remaining’: None, ‘status’: None, ‘fee’: None}

My test account has a Bitcoin balance of 0.00176200. Do I need to choose another pair with a lower value? Do I need to only use a crypto currency pair with BTC not BNB?

Thanks

also, i tried this code:

symbol = ‘XLM/BTC’

#symbol = ‘XZC/BNB’

#symbol = ‘BCH/BNB’

type = ‘limit’ # or ‘market’

side = ‘buy’ # or ‘buy’

amount = 1.0

#price = 1.302 #0.060154 # or None

price =0.00003550

but now get response of: ccxt.base.errors.InvalidOrder: binance {“code”:-1013,”msg”:”Filter failure: MIN_NOTIONAL”}

any pointers?

—–

MIN_NOTIONAL hints at your account not having enough capital/margin for the transaction. Have you verified this?

I’d suggest you try a transaction with an amount of 0.01 or something like that ← tried this but it did not correct the problem

For the currency question based on the pair:

Yes, in this case you need BNB in order to convert it to XZC. So you would first have to convert your BTC to BNB using the BNB/BTC pair.

…Yes, it sounds like you’re hitting a minimum order size restriction. Don’t forget that order sizes are denominated in the base currency of the pair (XLM in this case). One XLM is only worth 27c, so try increasing the order size to 10, or 50 or something like that.

It looks the like the minimum order size on Binance is 0.002 BTC, so try an order size greater than 55 or 60.

Source code updates compared to a few weeks

I also got this CCXT exception:

ccxt.base.errors.ExchangeNotAvailable: binance POST https://www.binance.com/api/v1/order 400 Bad Request {“code”:-1104,”msg”:”Not all sent parameters were read; read ‘8’ parameter(s) but was sent ‘9’.”}

But here is the latest source code sample:

import ccxt

exchange = ccxt.binance({

‘apiKey’: , ## these appear to work with valid keys

‘secret’: ,

‘enableRateLimit’: True,

})

symbol = ‘XLM/BTC’

#symbol = ‘XZC/BNB’

#symbol = ‘BCH/BNB’

typ = ‘limit’ # or ‘market’

side = ‘buy’ # or ‘buy’

amount = 55 #1.0 tried 0.1 but not balid

#price = 1.302 #0.060154 # or None

price =0.00003550

# extra params and overrides if needed

#removed because of this exception

#ccxt.base.errors.ExchangeNotAvailable: binance POST https://www.binance.com/api/v1/order 400 Bad Request {“code”:-1104,”msg”:”Not all sent parameters were read; read ‘8’ parameter(s) but was sent ‘9’.”}

# File “testBinanceOrder.py”, line 26, in <module>

# order = exchange.create_order(symbol, ‘limit’, side, amount, price, params)

# NameError: name ‘params’ is not defined

params = {

‘test’: True # test if it’s valid, but don’t actually place it

}

order = exchange.create_order(symbol, typ, side, amount, price, params)

print(order)

note the new exception of Not all sent parameters were read; read ‘8’ parameter(s) but was sent ‘9’.”

i am sending a total of 9 of but what am I supposed to eliminate? i tired the extra params but that did not help

I finally got something working with this https://github.com/ccxt/ccxt/issues/298

Can you post verbose output for it?

Try a minimal example:

import ccxt
binance = ccxt.binance({
    "apiKey": "YOUR_KEY",
    "secret": "YOUR_SECRET",
    "verbose": True,
})
print(binance.create_market_sell_order('BTC/USDT', 0.00711675))


This also seems to work fine as well:

#print(binance.create_market_sell_order(‘BTC/USDT’, 0.0001))
print(binance.create_market_buy_order(‘BTC/USDT’, 0.00001))

HOW DO YOU START A PROFITABLE TRADING BUSINESS? Read more NOW >>>

NOTE I now post my TRADING ALERTS into my personal FACEBOOK ACCOUNT and TWITTER. Don't worry as I don't post stupid cat videos or what I eat!
This entry was posted in Bitcoin Crypto Currency, Quant Development and tagged , , , , , , , on by .

About caustic

Hi i there My name is Bryan Downing. I am part of a company called QuantLabs.Net This is specifically a company with a high profile blog about technology, trading, financial, investment, quant, etc. It posts things on how to do job interviews with large companies like Morgan Stanley, Bloomberg, Citibank, and IBM. It also posts different unique tips and tricks on Java, C++, or C programming. It posts about different techniques in learning about Matlab and building models or strategies. There is a lot here if you are into venturing into the financial world like quant or technical analysis. It also discusses the future generation of trading and programming Specialties: C++, Java, C#, Matlab, quant, models, strategies, technical analysis, linux, windows P.S. I have been known to be the worst typist. Do not be offended by it as I like to bang stuff out and put priorty of what I do over typing. Maybe one day I can get a full time copy editor to help out. Do note I prefer videos as they are much easier to produce so check out my many video at youtube.com/quantlabs