def read_thru_date(lines, latest_date): for line in lines: splitted_line = get_date_value_line(line) if splitted_line: (date_str, value) = splitted_line date = str_to_date(date_str) if (latest_date == None or date > latest_date): return splitted_line
def test_next_business_day(self): date_str = '2016-12-31' current_date = str_to_date(date_str) print(current_date) print(f'current_date = {current_date}') next_day = next_business_day(current_date) print(f'next_day = {next_day}') data = yf.download("GOOG", start=next_day, end=next_day + datetime.timedelta(days=1), period="1d", interval="1d", rounding=True) print(data) self.assertTrue(data['Open'][0], 778.81)
def get_samples(company_ids, date_list, features_ids): connection, cursor = get_connection_cursor() sql = get_samples_sql(company_ids, date_list, features_ids) cursor.execute(sql) sample_wrapper_list = [] for row in tqdm(cursor): row_list = list(row) company_id = row_list[COMPANY_ID] ticker = row_list[TICKER] date = row_list[DATE] date_obj = str_to_date(date) sample = row_list[SAMPLE_START:] sample_wrapper = RawSample(company_id, ticker, date_obj, sample) sample_wrapper_list.append(sample_wrapper) print(f"there are potential {len(sample_wrapper_list)} raw samples") return sample_wrapper_list
def get_yahoo_responses(companies_ids, date_str_list): dateticker_to_closingprice_map = {} ticker_list = get_tickers(companies_ids) for date_str in tqdm(date_str_list, desc="looping over all given quarters, calling Yahoo on each", colour="CYAN"): date = str_to_date(date_str) missing_tickers = TickersPricesDAO.get_missing_tickers(date, ticker_list) sizeof_missing_tickers = len(missing_tickers) if sizeof_missing_tickers: end_date = date + datetime.timedelta(days=3) end_date_str = str(end_date) print( f'\nis about to download stock info from yahoo. Original date: {date_str}, looking for range ({date_str} -- {end_date_str}). Looking for {sizeof_missing_tickers} missing tickers: {missing_tickers}, ') data = yf.download(missing_tickers, start=date_str, end=end_date_str, period="1d") print(data) single_date_map = create_dateticker_to_closingprice(data, missing_tickers, date) # insert_data_into_db(single_date_map) # single_date_map = insert_data_into_db(data, missing_tickers, date) # # responses[date] = data dateticker_to_closingprice_map = {**dateticker_to_closingprice_map, **single_date_map} return dateticker_to_closingprice_map
def test_get_max_date_for_metric_id(self): old_date = str_to_date('2019-3-31') max_date = get_max_date_for_metric_id(1) self.assertTrue(max_date > old_date)
def test_next_business_day(self): date_str = '2016-12-31' current_date = str_to_date(date_str) next_day = next_business_day(current_date) print(next_day)
def test_adding_dates(self): date = str_to_date('2020-03-31') next_date = date + datetime.timedelta(days=91) print(f"next date = {next_date}")