# # Simple Tick Data Collector # import zmq import datetime import pandas as pd context = zmq.Context() socket = context.socket(zmq.SUB) socket.connect('tcp://127.0.0.1:5555') socket.setsockopt_string(zmq.SUBSCRIBE, '') raw = pd.DataFrame() while True: msg = socket.recv_string() t = datetime.datetime.now() print(str(t) + ' | ' + msg) symbol, price = msg.split() raw = raw.append(pd.DataFrame({'SYM': symbol, 'PRICE': price}, index=[t])) data = raw.resample('5s', label='right').last() if len(data) % 4 == 0: print(50 * '=') print(data.tail()) print(50 * '=') # simple way of storing data, needs to be adjusted for your purposes if len(data) % 20 == 0: # h5 = pd.HDFStore('database.h5', 'a') # h5['data'] = data # h5.close() pass