示例#1
0
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
示例#2
0
 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)
示例#3
0
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
示例#4
0
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
示例#5
0
 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)
示例#6
0
 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)
示例#7
0
 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}")