Files
catalyst/test.py
T

65 lines
1.9 KiB
Python

import zmq
import logging
import tornado
from data.sources.equity import *
from data.feed import *
from data.transforms import Merge, MovingAverage
from qbt_server import connect_db
from qbt_client import BacktestClient
def datafeed():
connection, db = connect_db()
logger = logging.getLogger()
feed = DataFeed(db, 1) #one merge, two moving averages.
feed_proc = multiprocessing.Process(target=feed.run)
feed_proc.start()
#config = {}
#config['name'] = '**merged feed**'
#config['transforms'] = [{'name':'mavg1', 'class':'MovingAverage', 'hours':1},{'name':'mavg2', 'class':'MovingAverage', 'hours':2}]
#result_address = "tcp://127.0.0.1:20202"
#mavg = MovingAverage(feed.feed_address, result_address, feed.sync_address, config['transforms'][0])
#mavg.run()
#merger = Merge(feed.feed_address, result_address, feed.sync_address, config)
#merger_proc = multiprocessing.Process(target=merger.run)
#merger_proc.start()
client = BacktestClient(feed.feed_address, feed.sync_address)
client.run()
def pubsub():
proc1 = multiprocessing.Process(target=sub)
proc2 = multiprocessing.Process(target=pub)
proc1.start()
proc2.start()
def sub():
context = zmq.Context()
controller = context.socket(zmq.PULL)
controller.connect("tcp://127.0.0.1:10099")
#controller.setsockopt(zmq.SUBSCRIBE, '')
while True:
try:
message = controller.recv()
print message
except zmq.ZMQError as err:
if err.errno != zmq.EAGAIN:
raise err
def pub():
context = zmq.Context()
controller = context.socket(zmq.PUSH)
controller.bind("tcp://127.0.0.1:10099")
while True:
controller.send("HELLO3")
if __name__ == "__main__":
tornado.options.parse_command_line()
datafeed()