def add_missing_data(self, symbol='SVXY', validate_date=None): if validate_date is None: validate_date = TradeTime.get_latest_trade_date() start_time = datetime.datetime.fromordinal(validate_date.toordinal()) end_time = start_time + datetime.timedelta(days=1) rows = self.get_time_and_price(symbol, start_time, end_time) j = 0 missing_records = [] for i, time in enumerate(TradeTime.get_all_trade_min(validate_date)): if j >= len(rows) or rows[j][0] > time: if j > 0: price = rows[j - 1][1] else: price = rows[0][1] missing_records.append( Equity(symbol, time, price, price, price, price, 0, 0)) else: j = j + 1 if len(missing_records) > 0: self.insert(missing_records) return len(missing_records)
def add_missing_data(self, symbol='SVXY', validate_date=None): if validate_date is None: validate_date = TradeTime.get_latest_trade_date() start_time = datetime.datetime.fromordinal(validate_date.toordinal()) end_time = start_time + datetime.timedelta(days=1) rows = self.get_min_time_and_price(symbol, start_time, end_time) j = 0 missing_records = [] for i, time in enumerate(TradeTime.get_all_trade_min(validate_date)): # if i == 390: # print time if j >= len(rows) or rows[j][0].minute > time.minute or rows[j][0].hour > time.hour: if j > 0: # price = rows[j-1][1] price = self.get_nearest_price(time, symbol) else: price = rows[0][1] missing_records.append((symbol, time, price)) else: j = j+1 if len(missing_records) > 0: for record in missing_records: self.insert(*record) return len(missing_records)