Python adventure: Crypto-currency market explorer

codesharedot

codesharedot

Posted on September 20, 2019

Python adventure: Crypto-currency market explorer

You may have heard about crytpo-currency, alt-coins and other things. So where do you get those crypto coins?

Python can help. Get the market data for a currency, then filter through the data and show the exchanges trading them.

Fetch data

So we can do that with Python code. First import a few modules and ask the user what coin they want:

#!/usr/bin/python3
import requests                                                                                                                                
import json                                                                                                                                    
import os                                                                                                                                      

coin = input("Coin: ")                                                                                                                         
Enter fullscreen mode Exit fullscreen mode

Then we grab the JSON formatted currency data

#!/usr/bin/python3
api_url = "https://coinmarketbook.cc/api/ticker/" + coin                                                                               
response = requests.get(api_url)                                                                                                       
response_json = response.json()                                                                                                                
print(response_json)   
Enter fullscreen mode Exit fullscreen mode

Filter data

The data has this format:

{'symbol': 'ETH', 'current_price': '218.94323290', 'bid': '484.52353643', 'ask': '0.00000000', 'volume_24h': '9692178886.24000000', 'market_cap': '23606418360.00000000', 'buy_order': '75703291.01651694', 'created_at': '2018-09-25T18:54:35.711Z', 'updated_at': '2019-09-20T14:09:35.216Z', 'sell_order': '0.00000000', 'name': 'Ethereum', 'markets': ['bitmex:ETH/USD', 'bitmex:ETHU19', 'binance:ETH/BTC', 'binance:ETH/USDT', 'binance:ETH/TUSD', 'binance:ETH/PAX', 'binance:ETH/USDC', 'bithumb:ETH/KRW', 'bitfinex:ETH/USD', 'bitfinex:ETH/BTC', 'bitfinex:ETH/EUR', 'bitfinex:ETH/JPY', 'bitfinex:ETH/GBP', 'bitfinex:ETH/USDT', 'bitfinex:ETH/F0:', 'okex:ETH/USDT', 'okex:ETH/USD', 'okex:ETH/CNY', 'okex:ETH/USDK', 'okex:ETH/BTC', 'huobipro:ETH/USDT', 'huobipro:ETH/BTC', 'huobipro:ETH/HUSD', 'bittrex:ETH/BTC', 'bittrex:ETH/USDT', 'bittrex:ETH/USD', 'poloniex:ETH/BTC', 'poloniex:ETH/USDT', 'poloniex:ETH/USDC', 'kucoin2:ETH/PAX', 'kucoin2:ETH/USDC', 'kucoin2:ETH/TUSD', 'kucoin2:ETH/USDT', 'kucoin2:ETH/BTC', 'kucoin2:ETH/DAI', 'zb:ETH/USDT', 'zb:ETH/QC', 'zb:ETH/BTC', 'lbank:ETH/USDT', 'lbank:ETH/BTC', 'exx:ETH/USDT', 'exx:ETH/BTC', 'exx:ETH/CNYT', 'upbit:ETH/KRW', 'upbit:ETH/BTC', 'upbit:ETH/USDT', 'bitforex:ETH/USDT', 'bitforex:ETH/BTC', 'bitforex:ETH/TUSD', 'hitbtc2:ETH/BTC', 'hitbtc2:ETH/USDT', 'hitbtc2:ETH/TUSD', 'hitbtc2:ETH/DAI', 'hitbtc2:ETH/EURS', 'hitbtc2:ETH/GUSD', 'hitbtc2:ETH/PAX', 'hitbtc2:ETH/USDC', 'hitbtc2:ETH/EOSDT', 'hitbtc2:ETH/Bitcoin Cash', 'liquid:ETH/EUR', 'liquid:ETH/USDC', 'liquid:ETH/GUSD', 'liquid:ETH/AUD', 'liquid:ETH/BTC', 'liquid:ETH/ANCT', 'liquid:ETH/PHP', 'liquid:ETH/IDR', 'liquid:ETH/JPY', 'liquid:ETH/USD', 'liquid:ETH/HKD', 'liquid:ETH/SGD', 'liquid:ETH/DAI'], 'asset_id': 'ethereum', 'highest_volume_market': 'binance'}
Enter fullscreen mode Exit fullscreen mode

One of the fields in the JSON data is the available markets, we can parse that like this:

#!/usr/bin/python3
print(response_json['markets'])                                                                                                                

for market in response_json['markets']:                                                                                                        
    if "EUR" in market:                                                                                                                        
        print(market)    
Enter fullscreen mode Exit fullscreen mode

In the if statement above I filter for euros. They are trading in other currencies (USD, GBP etc), it's just a filter.

Complete code

The code below collects the markets for the coin that the user types. The modules are all installed by default, except maybe requests.

#!/usr/bin/python3
import requests
import json
import os

coin = input("Coin: ")

api_url = "https://coinmarketbook.cc/api/ticker/" + coin
response = requests.get(api_url)
response_json = response.json()   
#print(response_json)
#print(response_json['markets'])

for market in response_json['markets']:
    if "EUR" in market:
        print(market)
Enter fullscreen mode Exit fullscreen mode

Related links:

💖 💪 🙅 🚩
codesharedot
codesharedot

Posted on September 20, 2019

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related

Steem price with Python
blockchain Steem price with Python

September 21, 2019

Trezor hardware wallet with Python
blockchain Trezor hardware wallet with Python

September 20, 2019