示例#1
0
    def record(self, entity, start, end, size, timestamps):
        if size < 20:
            size = 20

        ccxt_exchange = CCXTAccount.get_ccxt_exchange(entity.exchange)

        if ccxt_exchange.has['fetchTrades']:
            limit = CCXTAccount.get_tick_limit(entity.exchange)

            limit = min(size, limit)

            kdata_list = []

            trades = ccxt_exchange.fetch_trades(entity.code, limit=limit)

            for trade in trades:
                kdata_json = {
                    'name': entity.name,
                    'provider': 'ccxt',
                    # 'id': trade['id'],
                    'level': 'tick',
                    'order': trade['order'],
                    'timestamp': to_pd_timestamp(trade['timestamp']),
                    'price': trade['price'],
                    'volume': trade['amount'],
                    'direction': trade['side'],
                    'order_type': trade['type'],
                    'turnover': trade['price'] * trade['amount']
                }
                kdata_list.append(kdata_json)

            return kdata_list
        else:
            self.logger.warning("exchange:{} not support fetchOHLCV".format(entity.exchange))
示例#2
0
    def record(self, entity, start, end, size, timestamps):
        if size < 20:
            size = 20

        entity = entity

        ccxt_exchange = CCXTAccount.get_ccxt_exchange(entity.exchange)

        if ccxt_exchange.has['fetchTrades']:
            limit = CCXTAccount.get_tick_limit(entity.exchange)

            limit = min(size, limit)

            kdata_list = []

            try:
                trades = ccxt_exchange.fetch_trades(entity.code, limit=limit)

                # always ignore the latest one,because it's not finished
                for trade in trades[0:-1]:
                    kdata_json = {
                        'name': entity.name,
                        'provider': 'ccxt',
                        # 'id': trade['id'],
                        'level': 'tick',
                        'order': trade['order'],
                        'timestamp': to_pd_timestamp(trade['timestamp']),
                        'price': trade['price'],
                        'volume': trade['amount'],
                        'direction': trade['side'],
                        'orderType': trade['type'],
                        'turnover': trade['price'] * trade['amount']
                    }
                    kdata_list.append(kdata_json)

                return kdata_list
            except Exception as e:
                logger.exception("record_kdata for security:{} failed".format(
                    entity.id))
        else:
            logger.warning("exchange:{} not support fetchOHLCV".format(
                entity.exchange))
示例#3
0
    def request(self, url=None, method='get', param=None, path_fields=None):
        security_item = param['security_item']
        size = param['size']

        ccxt_exchange = CCXTAccount.get_ccxt_exchange(security_item.exchange)

        if ccxt_exchange.has['fetchTrades']:
            limit = CCXTAccount.get_tick_limit(security_item.exchange)

            limit = min(size, limit)

            kdata_list = []

            try:
                trades = ccxt_exchange.fetch_trades(security_item.code,
                                                    limit=limit)

                # always ignore the latest one,because it's not finished
                for trade in trades[0:-1]:
                    kdata_json = {
                        'securityId': security_item.id,
                        'name': security_item.name,
                        'provider': 'ccxt',
                        # 'id': trade['id'],
                        'level': 'tick',
                        'order': trade['order'],
                        'timestamp': to_pd_timestamp(trade['timestamp']),
                        'price': trade['price'],
                        'volume': trade['amount'],
                        'direction': trade['side'],
                        'orderType': trade['type'],
                        'turnover': trade['price'] * trade['amount']
                    }
                    kdata_list.append(kdata_json)

                return kdata_list
            except Exception as e:
                logger.exception("record_kdata for security:{} failed".format(
                    security_item.id))
        else:
            logger.warning("exchange:{} not support fetchOHLCV".format(
                security_item.exchange))