Hello,
I tried running BitcoinExchangeFH with multiple exchanges as a publisher to ZeroMQ socket on windows 7 and Ubuntu 16.04.2 AWS EC2. See my simple ZeroMQ subscriber client below.
The market data looks OK on windows, but it seems to be completely jumbled on Ubuntu.
See examples below.
What could be the reason for this behavior?
Examples:
Windows:
LEONIDS@LEONIDS03 MINGW64 ~/Envs/BitcoinExchangeFH$ head -n 5 zmq_sub_client.win.log; tail -n 5 zmq_sub_client.win.log
Getting market feed...
Started...
b'{"exchange":"BitMEX","instmt":"XBTUSD","trade_px":0.0,"trade_volume":0.0,"b1":2609.1,"b2":2609.0,"b3":2608.9,"b4":2608.6,"b5":2608.3,"a1":2609.2,"a2":2610.0,"a3":2610.1,"a4":2610.7,"a5":2610.9,"bq1":45361.0,"bq2":270.0,"bq3":5000.0,"bq4":5000.0,"bq5":6000.0,"aq1":1260.0,"aq2":100.0,"aq3":8.0,"aq4":32.0,"aq5":96.0,"order_date_time":"20170705 21:59:57.368267","trades_date_time":"20000101 00:00:00.000000","update_type":1,"table":"exchanges_snapshot"}'
b'{"exchange":"BitMEX","instmt":"XBTUSD","trade_px":2609.2,"trade_volume":974,"b1":2609.1,"b2":2609.0,"b3":2608.9,"b4":2608.6,"b5":2608.3,"a1":2609.2,"a2":2610.0,"a3":2610.1,"a4":2610.7,"a5":2610.9,"bq1":45361.0,"bq2":270.0,"bq3":5000.0,"bq4":5000.0,"bq5":6000.0,"aq1":1260.0,"aq2":100.0,"aq3":8.0,"aq4":32.0,"aq5":96.0,"order_date_time":"20170705 21:59:57.368267","trades_date_time":"20170705 21:59:57.399267","update_type":2,"table":"exchanges_snapshot"}'
b'{"exchange":"BitMEX","instmt":"XBTUSD","trade_px":2609.2,"trade_volume":560,"b1":2609.1,"b2":2609.0,"b3":2608.9,"b4":2608.6,"b5":2608.3,"a1":2609.2,"a2":2610.0,"a3":2610.1,"a4":2610.7,"a5":2610.9,"bq1":45361.0,"bq2":270.0,"bq3":5000.0,"bq4":5000.0,"bq5":6000.0,"aq1":1260.0,"aq2":100.0,"aq3":8.0,"aq4":32.0,"aq5":96.0,"order_date_time":"20170705 21:59:57.368267","trades_date_time":"20170705 21:59:57.512267","update_type":2,"table":"exchanges_snapshot"}'
b'{"exchange":"Bitstamp","instmt":"BTCUSD","trade_px":2610.01,"trade_volume":0.07388939,"b1":2610.01,"b2":2610.0,"b3":2605.0,"b4":2603.65,"b5":2603.63,"a1":2611.6,"a2":2611.89,"a3":2611.95,"a4":2612.12,"a5":2612.3,"bq1":4.76708818,"bq2":22.22829399,"bq3":0.0022,"bq4":1.128,"bq5":3.8992,"aq1":0.241,"aq2":0.479,"aq3":2.3939244,"aq4":0.15518748,"aq5":7.09836726,"order_date_time":"20170705 22:00:23.408267","trades_date_time":"20170705 22:00:24.026267","update_type":2,"table":"exchanges_snapshot"}'
b'{"exchange":"Bitstamp","instmt":"BTCUSD","trade_px":2610.01,"trade_volume":0.07388939,"b1":2610.01,"b2":2610.0,"b3":2605.0,"b4":2603.65,"b5":2603.63,"a1":2611.6,"a2":2611.89,"a3":2612.12,"a4":2612.29,"a5":2612.3,"bq1":4.39451152,"bq2":22.22829399,"bq3":0.0022,"bq4":1.128,"bq5":3.8992,"aq1":0.241,"aq2":0.479,"aq3":0.15518748,"aq4":4.236222,"aq5":7.09836726,"order_date_time":"20170705 22:00:24.402267","trades_date_time":"20170705 22:00:24.026267","update_type":1,"table":"exchanges_snapshot"}'
b'{"exchange":"BitMEX","instmt":"XBTUSD","trade_px":2611,"trade_volume":20,"b1":2610.9,"b2":2610.7,"b3":2610.6,"b4":2610.5,"b5":2610.3,"a1":2611.0,"a2":2611.2,"a3":2611.4,"a4":2612.0,"a5":2612.2,"bq1":33811.0,"bq2":184.0,"bq3":5000.0,"bq4":5000.0,"bq5":150.0,"aq1":5363.0,"aq2":2150.0,"aq3":10000.0,"aq4":2000.0,"aq5":16.0,"order_date_time":"20170705 22:00:24.404267","trades_date_time":"20170705 22:00:09.463267","update_type":1,"table":"exchanges_snapshot"}'
b'{"exchange":"Gdax","instmt":"BTCUSD","trade_px":0.0,"trade_volume":0.0,"b1":2615.0,"b2":2614.76,"b3":2614.71,"b4":2614.2,"b5":2613.92,"a1":2615.09,"a2":2615.44,"a3":2615.59,"a4":2615.63,"a5":2615.96,"bq1":0.48,"bq2":1.91051,"bq3":0.10065071,"bq4":0.13,"bq5":0.01,"aq1":2.72,"aq2":0.01,"aq3":0.01,"aq4":0.1,"aq5":0.1,"order_date_time":"20170705 22:00:24.420267","trades_date_time":"20000101 00:00:00.000000","update_type":1,"table":"exchanges_snapshot"}'
b'{"exchange":"OkCoin","instmt":"SPOT_BTCUSD","trade_px":2697.24,"trade_volume":0.073,"b1":2702.84,"b2":2696.38,"b3":2695.69,"b4":2695.66,"b5":2693.01,"a1":2705.0,"a2":2709.27,"a3":2710.55,"a4":2712.53,"a5":2714.99,"bq1":0.036,"bq2":2.0,"bq3":0.05,"bq4":2.576,"bq5":0.04,"aq1":9.945,"aq2":0.02,"aq3":0.2,"aq4":0.012,"aq5":0.5,"order_date_time":"20170705 22:00:24.731267","trades_date_time":"20170705 22:00:00.616267","update_type":1,"table":"exchanges_snapshot"}'
LEONIDS@LEONIDS03 MINGW64 ~/Envs/BitcoinExchangeFH$
Ubuntu:
(BitcoinExchangeFH) ubuntu@ip-172-31-40-58:/home/ubuntu/envs/BitcoinExchangeFH$ head -n 5 zmq_sub_client.log; tail -n 5 zmq_sub_client.log
Getting market feed...
Started...
b'{"b4":2556.88,"a2":2558.57,"bq5":1.9,"trades_date_time":"20170705 08:32:47.084933","b1":2557.68,"aq3":0.01,"bq4":0.8,"bq1":0.01,"a5":2559.96,"trade_px":2558.5,"b2":2556.92,"a4":2559.66,"trade_volume":0.35015176,"update_type":1,"b3":2556.91,"a1":2558.5,"aq5":0.01,"exchange":"Gdax","aq4":1.0,"b5":2556.56,"a3":2559.2,"aq2":0.915188,"bq2":0.0081,"bq3":0.6276,"table":"exchanges_snapshot","order_date_time":"20170705 08:32:48.308532","instmt":"BTCUSD","aq1":6.97541503}'
b'{"b4":2538.77,"a2":2541.65,"bq5":4.22,"trades_date_time":"20170705 08:32:48.320541","b1":2538.9,"aq3":6.24038635,"bq4":4.3,"bq1":0.376,"a5":2544.0,"trade_px":2541.65,"b2":2538.88,"a4":2543.02,"trade_volume":0.09903745,"update_type":2,"b3":2538.87,"a1":2541.44,"aq5":1.0,"exchange":"Bitstamp","aq4":0.12345676,"b5":2537.89,"a3":2541.8,"aq2":6.24038635,"bq2":4.072297,"bq3":2.81107191,"table":"exchanges_snapshot","order_date_time":"20170705 08:32:47.275917","instmt":"BTCUSD","aq1":0.12147692}'
b'{"b4":2512.5,"a2":2515,"bq5":0.01,"trades_date_time":"20170705 08:32:45.470112","b1":2512.9,"aq3":1.2,"bq4":0.15,"bq1":6.19322842,"a5":2517.1,"trade_px":2513,"b2":2512.8,"a4":2516.2,"trade_volume":0.18464675,"update_type":1,"b3":2512.6,"a1":2513,"aq5":1.713,"exchange":"Bitfinex","aq4":0.01,"b5":2512,"a3":2515.5,"aq2":0.05,"bq2":1.2,"bq3":1.1872589,"table":"exchanges_snapshot","order_date_time":"20170705 08:32:48.414512","instmt":"BTCUSD","aq1":3.93626483}'
b'{"b4":2557.68,"a2":2561.31,"bq5":0.06,"trades_date_time":"20170705 08:33:50.242615","b1":2558.46,"aq3":3.45026,"bq4":0.8521,"bq1":0.01,"a5":2561.48,"trade_px":2558.51,"b2":2558.45,"a4":2561.37,"trade_volume":0.01,"update_type":1,"b3":2558.44,"a1":2558.51,"aq5":0.01,"exchange":"Gdax","aq4":0.5,"b5":2557.67,"a3":2561.34,"aq2":1.1,"bq2":0.01,"bq3":0.01,"table":"exchanges_snapshot","order_date_time":"20170705 08:33:53.966488","instmt":"BTCUSD","aq1":8.0}'
b'{"b4":2502.00000001,"a2":2509.0,"bq5":0.44963128,"trades_date_time":"20170705 08:33:53.582717","b1":2505.00003594,"aq3":3.88908198,"bq4":0.05150097,"bq1":0.03952096,"a5":2515.0,"trade_px":2507.0,"b2":2505.0,"a4":2514.99999999,"trade_volume":0.04,"update_type":1,"b3":2502.00000005,"a1":2507.0,"aq5":5.29567228,"exchange":"Bittrex","aq4":0.98411746,"b5":2502.0,"a3":2510.0,"aq2":0.88671901,"bq2":0.182,"bq3":1.751,"table":"exchanges_snapshot","order_date_time":"20170705 08:33:53.968146","instmt":"USDTBTC","aq1":0.02977037}'
b'{"b4":2610.5,"a2":2628.0,"bq5":2.0,"trades_date_time":"20170705 08:33:37.421357","b1":2610.78,"aq3":0.684,"bq4":0.3,"bq1":0.5,"a5":2631.95,"trade_px":2615.95,"b2":2610.77,"a4":2630.45,"trade_volume":0.1,"update_type":1,"b3":2610.75,"a1":2622.0,"aq5":0.02,"exchange":"OkCoin","aq4":1.943,"b5":2610.49,"a3":2630.42,"aq2":0.025,"bq2":0.6,"bq3":0.3,"table":"exchanges_snapshot","order_date_time":"20170705 08:33:54.028874","instmt":"SPOT_BTCUSD","aq1":0.09}'
b'{"b4":2521.59795,"a2":2563.05677,"bq5":2.14241,"trades_date_time":"20000101 00:00:00.000000","b1":2548.74,"aq3":0.14241,"bq4":0.61241,"bq1":4.87,"a5":2577.44969,"trade_px":0.0,"b2":2542.12,"a4":2577.44968,"trade_volume":0.0,"update_type":1,"b3":2535.83802,"a1":2548.74422,"aq5":0.19241,"exchange":"Quoine","aq4":15.0,"b5":2513.231,"a3":2571.4663,"aq2":0.11241,"bq2":9.75,"bq3":0.10241,"table":"exchanges_snapshot","order_date_time":"20170705 08:33:54.066095","instmt":"BTCUSD","aq1":0.10241}'
b'{"b4":2538.77,"a2":2541.88,"bq5":4.22,"trades_date_time":"20170705 08:33:10.693341","b1":2540.5,"aq3":6.24038635,"bq4":4.3,"bq1":2.91127733,"a5":2544.0,"trade_px":2538.98,"b2":2540.45,"a4":2543.02,"trade_volume":0.1,"update_type":1,"b3":2538.79,"a1":2541.84,"aq5":1.0,"exchange":"Bitstamp","aq4":0.12345676,"b5":2537.89,"a3":2542.62,"aq2":6.24038635,"bq2":4.11,"bq3":0.376,"table":"exchanges_snapshot","order_date_time":"20170705 08:33:54.273394","instmt":"BTCUSD","aq1":6.24038635}'
(BitcoinExchangeFH) ubuntu@ip-172-31-40-58:/home/ubuntu/envs/BitcoinExchangeFH$
Another run:
(BitcoinExchangeFH) ubuntu@ip-172-31-40-58:/home/ubuntu/envs/BitcoinExchangeFH$ head -n 5 zmq_sub_client.01.log; tail -n 5 zmq_sub_client.01.log
Getting market feed...
Started...
b'{"bq5":0.16310297,"instmt":"USDTBTC","order_date_time":"20170705 04:36:47.688285","aq2":1.63,"trade_px":0.0,"b3":2526.0,"a3":2538.0,"trades_date_time":"20000101 00:00:00.000000","bq1":1.44395489,"a4":2538.55,"b5":2525.98,"b1":2533.2,"bq3":0.81693282,"aq4":0.09872762,"b2":2526.08,"a1":2537.99999998,"bq4":0.46431003,"exchange":"Bittrex","trade_volume":0.0,"a2":2537.99999999,"table":"exchanges_snapshot","aq3":0.1,"update_type":1,"a5":2539.86,"aq1":3.11e-06,"b4":2525.99,"aq5":0.05,"bq2":0.3491967}'
b'{"bq5":5.0,"instmt":"BTCUSD","order_date_time":"20170705 04:36:48.086726","aq2":0.3,"trade_px":0.0,"b3":2555.5,"a3":2658.54046222,"trades_date_time":"20000101 00:00:00.000000","bq1":1.63005649,"a4":2674.9899,"b5":2539.7893,"b1":2570.0,"bq3":0.4877743,"aq4":1.0838,"b2":2556.0,"a1":2627.2,"bq4":0.51847133,"exchange":"Gatecoin","trade_volume":0.0,"a2":2640.0,"table":"exchanges_snapshot","aq3":0.01,"update_type":1,"a5":2674.99,"aq1":0.02,"b4":2550.0,"aq5":0.04,"bq2":0.51}'
b'{"bq5":0.01,"instmt":"BTCUSD","order_date_time":"20170705 04:36:48.478696","aq2":0.0145,"trade_px":0.0,"b3":2569.0,"a3":2569.77,"trades_date_time":"20000101 00:00:00.000000","bq1":2.899,"a4":2569.78,"b5":2568.32,"b1":2569.09,"bq3":3.12,"aq4":0.01,"b2":2569.08,"a1":2569.1,"bq4":0.02,"exchange":"Gdax","trade_volume":0.0,"a2":2569.12,"table":"exchanges_snapshot","aq3":0.01,"update_type":1,"a5":2569.79,"aq1":2.1481,"b4":2568.8,"aq5":0.01,"bq2":0.11}'
b'{"trades_date_time":"20170705 08:26:45.883629","b4":2514,"b2":2515.3,"instmt":"BTCUSD","aq4":1.3,"bq4":0.4,"bq1":2.20351999,"trade_px":2515.4,"order_date_time":"20170705 08:26:49.174633","aq5":0.09,"a5":2518,"table":"exchanges_snapshot","a2":2515.6,"aq2":9,"update_type":1,"bq5":1.01,"a1":2515.5,"b3":2514.7,"b5":2512.6,"aq1":2.07,"trade_volume":0.422837,"bq2":0.01,"a4":2517.2,"bq3":0.01,"aq3":0.329,"exchange":"Bitfinex","a3":2516.9,"b1":2515.4}'
b'{"trades_date_time":"20170705 08:26:45.883629","b4":2514,"b2":2515.3,"instmt":"BTCUSD","aq4":1.3,"bq4":0.4,"bq1":2.25738695,"trade_px":2515.4,"order_date_time":"20170705 08:26:49.554109","aq5":0.09,"a5":2518,"table":"exchanges_snapshot","a2":2515.6,"aq2":9,"update_type":1,"bq5":1.01,"a1":2515.5,"b3":2514.7,"b5":2512.6,"aq1":2.07,"trade_volume":0.422837,"bq2":0.01,"a4":2517.2,"bq3":0.01,"aq3":0.329,"exchange":"Bitfinex","a3":2516.9,"b1":2515.4}'
b'{"trades_date_time":"20170705 08:26:34.726610","b4":2537.63,"b2":2539.47,"instmt":"BTCUSD","aq4":1.128,"bq4":1.504,"bq1":1.128,"trade_px":2544.5,"order_date_time":"20170705 08:26:49.768011","aq5":4.4,"a5":2548.27,"table":"exchanges_snapshot","a2":2544.5,"aq2":5.02365222,"update_type":1,"bq5":4.076,"a1":2544.4,"b3":2538.91,"b5":2537.58,"aq1":6.24038635,"trade_volume":1.21673413,"bq2":4.79,"a4":2548.03,"bq3":4.45008538,"aq3":0.37037031,"exchange":"Bitstamp","a3":2547.67,"b1":2539.55}'
b'{"trades_date_time":"20170705 08:26:49.809470","b4":2512.0,"b2":2512.0222,"instmt":"USDTBTC","aq4":2.46244838,"bq4":0.05205908,"bq1":0.67769556,"trade_px":2513.001,"order_date_time":"20170705 08:26:42.948505","aq5":0.00028219,"a5":2516.7548,"table":"exchanges_snapshot","a2":2514.25405,"aq2":0.00028247,"update_type":2,"bq5":0.5277909,"a1":2513.5,"b3":2512.022,"b5":2511.99999993,"aq1":0.3439122,"trade_volume":0.01661362,"bq2":2.0,"a4":2516.34150594,"bq3":2.0,"aq3":0.2,"exchange":"Poloniex","a3":2516.0,"b1":2513.001}'
b'{"trades_date_time":"20170705 08:26:48.573898","b4":2609.09,"b2":2611.06,"instmt":"SPOT_BTCUSD","aq4":1.948,"bq4":0.5,"bq1":0.487,"trade_px":2623.17,"order_date_time":"20170705 08:26:49.836235","aq5":1.44,"a5":2628.49,"table":"exchanges_snapshot","a2":2623.17,"aq2":0.112,"update_type":1,"bq5":0.3,"a1":2620.0,"b3":2611.0,"b5":2609.08,"aq1":5.0,"trade_volume":0.01,"bq2":0.3,"a4":2624.97,"bq3":0.076,"aq3":1.2,"exchange":"OkCoin","a3":2624.53,"b1":2617.15}'
(BitcoinExchangeFH) ubuntu@ip-172-31-40-58:/home/ubuntu/envs/BitcoinExchangeFH$
Subscriber client code:
(BitcoinExchangeFH) ubuntu@ip-172-31-40-58:/home/ubuntu/envs/BitcoinExchangeFH$ cat zmq_sub_client.py
# http://learning-0mq-with-pyzmq.readthedocs.io/en/latest/pyzmq/patterns/pubsub.html
import sys
import zmq
port = "6001"
if len(sys.argv) > 1:
port = sys.argv[1]
int(port)
# Socket to talk to server
context = zmq.Context()
socket = context.socket(zmq.SUB)
print("Getting market feed...")
socket.connect("tcp://127.0.0.1:%s" % port)
topicfilter = ""
socket.setsockopt_string(zmq.SUBSCRIBE, topicfilter)
print("Started...")
while True:
ret = socket.recv()
print(ret)
(BitcoinExchangeFH) ubuntu@ip-172-31-40-58:/home/ubuntu/envs/BitcoinExchangeFH$
Ubuntu configuration:
(BitcoinExchangeFH) ubuntu@ip-172-31-40-58:/home/ubuntu/envs/BitcoinExchangeFH$ python --version
Python 3.5.2
(BitcoinExchangeFH) ubuntu@ip-172-31-40-58:/home/ubuntu/envs/BitcoinExchangeFH$ pip --version
pip 9.0.1 from /home/ubuntu/envs/BitcoinExchangeFH/lib/python3.5/site-packages (python 3.5)
(BitcoinExchangeFH) ubuntu@ip-172-31-40-58:/home/ubuntu/envs/BitcoinExchangeFH$ pip freeze
BitcoinExchangeFH==0.1.3rc3
gevent==1.2.2
greenlet==0.4.12
numpy==1.13.0
PyMySQL==0.7.11
pyzmq==16.0.2
qPython==1.2.2
six==1.10.0
websocket==0.2.1
websocket-client==0.44.0
(BitcoinExchangeFH) ubuntu@ip-172-31-40-58:/home/ubuntu/envs/BitcoinExchangeFH$
ubuntu@ip-172-31-40-58:/home/ubuntu$ uname -a
Linux ip-172-31-40-58 4.4.0-1013-aws #22-Ubuntu SMP Fri Mar 31 15:41:31 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
ubuntu@ip-172-31-40-58:/home/ubuntu$ sudo lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.2 LTS
Release: 16.04
Codename: xenial
ubuntu@ip-172-31-40-58:/home/ubuntu$