def parse_trade(cls, instmt, raw): """ :param instmt: Instrument :param raw: Raw data in JSON :return: """ trade = Trade() # Trade price trade.trade_price = float(str(raw[0])) # Trade volume trade.trade_volume = float(str(raw[1])) # Timestamp date_time = float(raw[2]) trade.date_time = datetime.utcfromtimestamp(date_time).strftime("%Y%m%d %H:%M:%S.%f") # Trade side trade.trade_side = Trade.parse_side(raw[3]) # Trade id trade.trade_id = trade.date_time + '-' + str(instmt.get_exch_trade_id()) return trade
def parse_trade(cls, instmt, raw): """ :param instmt: Instrument :param raw: Raw data in JSON :return: """ trade = Trade() trade_id = raw[0] trade_price = float(raw[1]) trade_volume = float(raw[2]) timestamp = raw[3] trade_side = raw[4] trade.trade_id = trade_id + timestamp trade.trade_price = trade_price trade.trade_volume = trade_volume trade.trade_side = Trade.parse_side(trade_side) return trade
def parse_trade(cls, instmt, raw): """ :param instmt: Instrument :param raw: Raw data in JSON :return: """ trade = Trade() keys = list(raw.keys()) if cls.get_trades_timestamp_field_name() in keys and \ cls.get_trade_price_field_name() in keys and \ cls.get_trade_volume_field_name() in keys: # Date time date_time = float(raw[cls.get_trades_timestamp_field_name()]) date_time = date_time / cls.get_timestamp_offset() trade.date_time = datetime.utcfromtimestamp(date_time).strftime( "%Y%m%d %H:%M:%S.%f") # Trade side trade.trade_side = Trade.parse_side( raw[cls.get_trade_side_field_name()]) # Trade price trade.trade_price = float( str(raw[cls.get_trade_price_field_name()])) # Trade volume trade.trade_volume = float( str(raw[cls.get_trade_volume_field_name()])) # Trade id trade.trade_id = trade.date_time + '-P' + str( trade.trade_price) + '-V' + str(trade.trade_volume) else: raise Exception('Does not contain trade keys in instmt %s-%s.\nOriginal:\n%s' % \ (instmt.get_exchange_name(), instmt.get_instmt_name(), \ raw)) return trade
def parse_trade(cls, instmt, raw): """ :param instmt: Instrument :param raw: Raw data in JSON :return: """ trade = Trade() keys = list(raw.keys()) if cls.get_trades_timestamp_field_name() in keys and \ cls.get_trade_id_field_name() in keys and \ cls.get_trade_side_field_name() in keys and \ cls.get_trade_price_field_name() in keys and \ cls.get_trade_volume_field_name() in keys: # Date time timestamp = raw[cls.get_trades_timestamp_field_name()] timestamp = timestamp.replace('T', ' ').replace('Z', '').replace('-', '') trade.date_time = timestamp # Trade side trade.trade_side = Trade.parse_side( raw[cls.get_trade_side_field_name()]) # Trade id trade.trade_id = raw[cls.get_trade_id_field_name()] # Trade price trade.trade_price = raw[cls.get_trade_price_field_name()] # Trade volume trade.trade_volume = raw[cls.get_trade_volume_field_name()] else: raise Exception('Does not contain trade keys in instmt %s-%s.\nOriginal:\n%s' % \ (instmt.get_exchange_name(), instmt.get_instmt_name(), \ raw)) return trade