Ejemplo n.º 1
0
def debug_sub(exchange, model, routing_key, user, password, host):
    if model == 'fanout':
        subscriber(host=host, user=user, password=password,
                   exchange=exchange).start()
    elif model == 'direct':
        subscriber_routing(host=host,
                           user=user,
                           password=password,
                           exchange=exchange,
                           routing_key=routing_key).start()
Ejemplo n.º 2
0
    def subscribe_data(self, code, frequence, data_host, data_port, data_user, data_password, model='py'):
        """[summary]

        Arguments:
            code {[type]} -- [description]
            frequence {[type]} -- [description]
        """

        if frequence.endswith('min'):
            if model == 'py':
                self.sub = subscriber(exchange='realtime_{}_{}'.format(
                    frequence, code), host=data_host, port=data_port, user=data_user, password=data_password)
            elif model == 'rust':
                self.sub = subscriber_routing(exchange='realtime_{}'.format(
                    code), routing_key = frequence, host=data_host, port=data_port, user=data_user, password=data_password)
            self.sub.callback = self.callback
        elif frequence.endswith('s'):


            import re
            self._num_cached  = 2*int(re.findall(r'\d+',self.frequence)[0])
            self.sub = subscriber_routing(exchange='CTPX', routing_key=code, host=data_host, port=data_port, user=data_user, password=data_password)
            self.sub.callback = self.second_callback
        elif frequence.endswith('tick'):
            self._num_cached = 1
            self.sub = subscriber_routing(exchange='CTPX', routing_key=code, host=data_host, port=data_port, user=data_user, password=data_password)
            self.sub.callback = self.tick_callback
    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):

        super().__init__()
        self.ws = websocket.WebSocketApp(
            'wss://openmd.shinnytech.com/t/md/front/mobile',
            on_pong=on_pong,
            on_message=self.on_message,
            on_error=on_error,
            on_close=on_close)

        def _onopen(ws):
            def run():
                ws.send(peek())

            threading.Thread(target=run, daemon=False).start()

        self.quoteclient = pymongo.MongoClient(
            host=mongo_ip).QAREALTIME.realtimeQuote
        self.ws.on_open = _onopen
        self.data = {}
        self.subscribe_list = ['SHFE.rb1910', 'DCE.j1909']
        self.sub = subscriber(host=eventmq_ip, exchange='QAQuote')
        self.sub.callback = self.callback
        threading.Thread(target=self.ws.run_forever,
                         name='market_websock',
                         daemon=False).start()
        threading.Thread(target=self.sub.start,
                         name='market_subscriber',
                         daemon=True).start()
Ejemplo n.º 5
0
    def __init__(self):
        super().__init__(name='qasubclient')

        self.req = publisher_routing(exchange='QARealtime_Market',
                                     routing_key='stock')
        self.last_ab = pd.DataFrame()
        self.sub = subscriber(exchange='stocktransaction')
        self.sub.callback = self.callback
Ejemplo n.º 6
0
    def subscribe_data(self, code, frequence, data_host, data_port, data_user, data_password):
        """[summary]

        Arguments:
            code {[type]} -- [description]
            frequence {[type]} -- [description]
        """

        self.sub = subscriber(exchange='realtime_{}_{}'.format(
            frequence, code), host=data_host, port=data_port, user=data_user, password=data_password)
        self.sub.callback = self.callback
 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()
Ejemplo n.º 9
0
def debug_sub(exchange, model, routing_key, user, password, host, port,
              durable):
    if model == 'fanout':
        subscriber(host=host,
                   port=port,
                   user=user,
                   password=password,
                   exchange=exchange).start()
    elif model == 'direct':
        subscriber_routing(host=host,
                           port=port,
                           user=user,
                           password=password,
                           exchange=exchange,
                           routing_key=routing_key,
                           durable=durable).start()
    elif model == 'topic':
        subscriber_topic(host=host,
                         port=port,
                         user=user,
                         password=password,
                         exchange=exchange,
                         routing_key=routing_key,
                         durable=durable).start()
    def __init__(self,
                 code_list: list,
                 frequency='60min',
                 strategy="HS300Enhance",
                 init_data=None):
        """

        :param code_list:
        :param indicator_fun:
        :param frequency:
        :param strategy:
        """
        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 = init_data
        self.stock_code_list = code_list
        self.strategy = strategy

        # 接收stock 重采样的数据
        self.sub = subscriber(host=eventmq_ip,
                              exchange='realtime_stock_{}_min'.format(
                                  self.frequency))
        self.sub.callback = self.stock_min_callback
        # 发送stock indicator result
        self.pub = publisher_topic(
            host=eventmq_ip,
            exchange='realtime_stock_calculator_{}_{}_min'.format(
                self.strategy, self.frequency))
        threading.Thread(target=self.sub.start).start()

        print("REALTIME_STOCK_CACULATOR INIT, strategy: %s frequency: %s" %
              (self.strategy, self.frequency))
Ejemplo n.º 11
0
from QAPUBSUB.consumer import  subscriber
sub = subscriber(host='192.168.2.116',user='******', password='******' ,exchange= 'realtime_60min_rb1910')

sub.start()
Ejemplo n.º 12
0
# zsorder.code = '000001'
# zsorder.vol = 1000
# zsorder.price = 0.0
# zsorder.bsflg = 1
# zs=zsorder.SerializeToString()
# print(zs)
# odata2 = zsorder_pb2.zsorder
# odata2.ParseFromString(zsorder)
# print(odata2.code)

def ucallback(a,b,c,data):
    odata = zsorder_pb2.zsorder()
    # print(a)
    # print(b)
    # print(data)
    # print(type(data))
    try:
        odata.ParseFromString(data)
        # odata.ParseFromBytes(data)
        # print("ok")
        print(odata.code)
    except Exception as e:
        print("error")
        print(e)


c = consumer.subscriber(exchange='zsorder')
# c.callback = lambda a,b,c,data: print(data)
c.callback = ucallback
c.start()
Ejemplo n.º 13
0
from QAPUBSUB import consumer

c = consumer.subscriber(exchange='ctp')
c.callback = lambda x, y, body, z: print(z)
c.start()