def debug_pub(exchange, model, routing_key, user, password, host, port, content): if model == 'fanout': publisher(host=host, port=port, user=user, password=password, exchange=exchange).pub(content) elif model == 'direct': print(routing_key) publisher_routing(host=host, port=port, user=user, password=password, exchange=exchange, routing_key=routing_key).pub(content, routing_key=routing_key) elif model == 'topic': publisher_topic(host=host, port=port, user=user, password=password, exchange=exchange, routing_key=routing_key).pub(content, routing_key=routing_key)
def __init__(self, code): self.data = {} self.min5_data = {} self.pro = producer.publisher(host=eventmq_ip, exchange='1min_{}'.format(code), user=market_data_user, password=market_data_password) self.pro_realtimemin = producer.publisher(host=eventmq_ip, exchange='realtime_min_{}'.format( code), user=market_data_user, password=market_data_password) self.is_send = False self.last_volume = 0 self.c = consumer.subscriber_routing(host=eventmq_ip, exchange='CTPX', routing_key=code, user=market_data_user, password=market_data_password)
def __init__(self, frequency='5min'): """ 暂时不支持单个股票重采样 :param frequency: """ super().__init__() if isinstance(frequency, float): self.frequency = int(frequency) elif isinstance(frequency, str): _frequency = frequency.replace('min', '') if str.isnumeric(_frequency): self.frequency = int(_frequency) else: print("unknown frequency: %s" % frequency) return elif isinstance(frequency, int): self.frequency = frequency else: print("unknown frequency: %s" % frequency) return self.market_data = None # 接收stock tick 数据 self.sub = subscriber( host=eventmq_ip, exchange='realtime_stock_min') self.sub.callback = self.stock_min_callback # 发送重采样的数据 self.pub = publisher( host=eventmq_ip, exchange='realtime_stock_{}_min'.format(self.frequency)) threading.Thread(target=self.sub.start).start() print("QA_REALTIME_COLLECTOR_STOCK_BAR_RESAMPLER INIT, frequency: %s" % self.frequency)
def __init__(self, delay=10.5, date: datetime.datetime = None, log_dir='./log', debug=False): super().__init__(name='QA_REALTIME_COLLECTOR_STOCK_BAR', thread_num=None, timeout=0.5) cur_time = datetime.datetime.now() if date is None else date # set qa_tdx_excutor is debug mode self.debug = debug self.cur_year = cur_time.year self.cur_month = cur_time.month self.cur_day = cur_time.day self.isRequesting = False self.delay = delay # 数据获取请求间隔 self.code_list = [] self.sub = subscriber_routing(host=eventmq_ip, exchange='QARealtime_Market', routing_key='stock') self.sub.callback = self.callback self.pub = publisher(host=eventmq_ip, exchange='realtime_stock_min') self.log_dir = log_dir self.pre_market_data = None self.last_update_time = cur_time threading.Thread(target=self.sub.start, daemon=True).start() logger.info("QA_REALTIME_COLLECTOR_STOCK_BAR INIT, delay %s" % self.delay)
def __init__(self): super().__init__(name='QAREALTIME_COLLECTOR_STOCK') self.codelist = [] self.sub = subscriber_routing(host=eventmq_ip, exchange='QARealtime_Market', routing_key='stock') self.sub.callback = self.callback self.pub = publisher(host=eventmq_ip, exchange='stocktransaction') threading.Thread(target=self.sub.start, daemon=True).start()
def __init__(self, code, subexchange='tick'): self.data = {} self.is_send = False self.last_volume = 0 self.pro = producer.publisher(exchange='bar_1min_{}'.format(code), user='******', password='******', host=eventmq_ip) self.pro_realtimemin = producer.publisher( exchange='realtime_min_{}'.format(code), user='******', password='******', host=eventmq_ip) self.c = consumer.subscriber_routing(exchange='tick', routing_key=code, user='******', password='******', host=eventmq_ip) print('start ctptick collector {}'.format(code))
def __init__(self, delay=30.5): super().__init__(name='QA_REALTIME_COLLECTOR_STOCK_BAR') # 数据获取请求间隔 self.isOK = True self.delay = delay self.codelist = [] self.sub = subscriber_routing(host=eventmq_ip, exchange='QARealtime_Market', routing_key='stock') self.sub.callback = self.callback self.pub = publisher(host=eventmq_ip, exchange='realtime_stock_min') print("QA_REALTIME_COLLECTOR_STOCK_BAR INIT, delay %s" % self.delay) threading.Thread(target=self.sub.start, daemon=True).start()
def __init__(self, code='rb1910', freqence='60min', model='tb'): super().__init__() self.code = code self.freqence = freqence self.sub = subscriber(host=eventmq_ip, exchange='realtime_min_{}'.format(self.code)) self.pub = publisher(host=eventmq_ip, exchange='realtime_{}_{}'.format( self.freqence, self.code)) self.sub.callback = self.callback self.market_data = [] self.dt = None self.model = model
def __init__(self, frequency='5min', date: datetime.datetime = None, log_dir='./log'): """ 暂时不支持单个股票重采样 :param frequency: """ super().__init__() logger.info("QA实时股票Bar重采样,初始化...周期: %s" % frequency) if isinstance(frequency, float): self.frequency = int(frequency) elif isinstance(frequency, str): _frequency = frequency.replace('min', '') if str.isnumeric(_frequency): self.frequency = int(_frequency) else: logger.error("不支持的周期 unknownFrequency: %s" % frequency) return elif isinstance(frequency, int): self.frequency = frequency else: logger.error("不支持的周期 unknownFrequency: %s" % frequency) return self.market_data = None # 接收stock tick 数据 self.sub = subscriber(host=eventmq_ip, exchange='realtime_stock_min') self.sub.callback = self.on_message_callback self.stock_sub = subscriber_routing(host=eventmq_ip, exchange='QARealtime_Market', routing_key='stock') self.stock_sub.callback = self.on_stock_subscribe_message_callback # 发送重采样的数据 self.pub = publisher(host=eventmq_ip, exchange='realtime_stock_{}_min'.format( self.frequency)) self.count = 0 self.code_list = [] cur_time = datetime.datetime.now() if date is None else date self.cur_year = cur_time.year self.cur_month = cur_time.month self.cur_day = cur_time.day # 多进程计算 self.cpu_count = multiprocessing.cpu_count() - 1 self.log_dir = log_dir threading.Thread(target=self.sub.start, daemon=True).start() threading.Thread(target=self.stock_sub.start, daemon=True).start()
def __init__(self, investor='008107', pwd='1', broker='9999', front_md='tcp://180.168.146.187:10031', front_td='tcp://180.168.146.187:10030'): self.req = 0 self.ordered = False self.needAuth = False self.RelogEnable = True self.broker = broker self.investor = investor self.pwd = pwd self.front_md = front_md self.front_td = front_td self.prepare() self.market_data = [] self.min_t = 0 self._trading_code = [] self.pro = producer.publisher(exchange='ctp') self.subscribed_code = []
#!/usr/bin/env python from QAPUBSUB import producer import zsorder_pb2 # z1= subscriber_routing(exchange='xx',routing_key='x1') # z2 = subscriber_routing(exchange='xx',routing_key='x2') # z3 = subscriber_routing(exchange='xx',routing_key='x2') # z1.callback= lambda a,b,c,x: print('FROM X1 {}'.format(x)) # z2.callback= lambda a,b,c,x: print('FROM X2 {}'.format(x)) # z3.callback= lambda a,b,c,x: print('FROM X3 {}'.format(x)) # p = publisher_routing(exchange='zsorder') p = producer.publisher(exchange='zsorder') # threading.Thread(target=z1.start).start() # threading.Thread(target=z2.start).start() # threading.Thread(target=z3.start).start() zsorder = zsorder_pb2.zsorder() zsorder.code = '000001' zsorder.vol = 1000 zsorder.price = 0.0 zsorder.bsflg = 1 # p.pub('xxxxx',routing_key='x1') # p.pub('1',routing_key='x2') print(zsorder.SerializeToString())
from QAPUBSUB import producer c = producer.publisher(exchange='ctp') while True: c.pub('I1111111')