[PLUS] How to Stream RealTime Trade Data from Binance API in Python

Streaming Real Time Data from Binance

We are going to use websockets to stream real time (live) trade information from Binance and save the resulting information into a SQLite database using Python. This is much like we accomplished in our other Plus+ article for Kraken. We will connect to the "trade" streaming socket, which will return every transaction that takes place for the symbol that we pass. We will use BTC/USDT as the symbol in our example. Once the data is captured, it would be easy to extend this example to include some sort of display or summary of the trade data. "Tick data", literally every transaction 'print' (in lingo), can be created from the raw trade data as well. The script will save into our local database every 100 transactions that take place, and that can be modified in the main body of the script. Of course, we fully comment and make each line of python code logical and understandable.

Data Enhancements

There are a few data enhancements that we make before we save the data into our database. This will make it easier to sort or filter on the data in the future. First of all, we add a field for a human-readable date instead of using the unix server timestamp only. We also add a field for volume in USD terms (this is assuming BTC/USDT so technically in 'USD Tether' terms). This volume_usd field is calculated by multiplying the price * quantity. Binance API also returns a field called "is_buyer_marketmaker". This field can be somewhat confusing, and so we interpret it and add a field for "market sell" or "market buy" to display which side took action. "Market buy" means it was a buy marketorder on the order book.

Here is what the resulting database sample will look like as it captures trades:

This is a premium post. Create Plus+ Account to view the live, working codebase for this article.

Notice: Information contained herein is not and should not be construed as an offer, solicitation, or recommendation to buy or sell securities. The information has been obtained from sources we believe to be reliable; however no guarantee is made or implied with respect to its accuracy, timeliness, or completeness. Author does not own the any crypto currency discussed. The information and content are subject to change without notice. CryptoDataDownload and its affiliates do not provide investment, tax, legal or accounting advice.

This material has been prepared for informational purposes only and is the opinion of the author, and is not intended to provide, and should not be relied on for, investment, tax, legal, accounting advice. You should consult your own investment, tax, legal and accounting advisors before engaging in any transaction. All content published by CryptoDataDownload is not an endorsement whatsoever. CryptoDataDownload was not compensated to submit this article. Please also visit our Privacy policy; disclaimer; and terms and conditions page for further information.

Latest Posts
Follow Us
Notify me of new content