import pytest import pandas as pd import numpy as np from ml_investment.data import SF1Data from ml_investment.features import calc_series_stats, QuarterlyFeatures, BaseCompanyFeatures,\ QuarterlyDiffFeatures, FeatureMerger, \ DailyAggQuarterFeatures from ml_investment.utils import load_json, int_hash_of_str from synthetic_data import GeneratedData config = load_json('config.json') loaders = [GeneratedData()] if config['sf1_data_path'] is not None: loaders.append(SF1Data(config['sf1_data_path'])) @pytest.mark.parametrize( ["series", "norm", "expected"], [([10, 0, 1], False, {'_mean': 3.6666666666666665, '_median': 1.0, '_max': 10.0, '_min': 0.0, '_std': 4.4969125210773475}), ([10, -30, 1, 4, 15.2], False, {'_mean': 0.039999999999999855, '_median': 4.0, '_max': 15.2, '_min': -30.0, '_std': 15.798936673080249}), ([1], False,
"cashneq", "rnd", "sgna", "ncfx", "divyield", "currentratio", "netinccmn" ] if __name__ == '__main__': parser = argparse.ArgumentParser() arg = parser.add_argument arg('--config_path', type=str) args = parser.parse_args() config = load_json(args.config_path) data_loader = SF1Data(config['sf1_data_path']) tickers_df = data_loader.load_base_data( currency=CURRENCY, scalemarketcap=SCALE_MARKETCAP) ticker_list = tickers_df['ticker'].unique().tolist() fc1 = QuarterlyFeatures( columns=QUARTER_COLUMNS, quarter_counts=QUARTER_COUNTS, max_back_quarter=MAX_BACK_QUARTER) fc2 = BaseCompanyFeatures(cat_columns=CAT_COLUMNS) fc3 = QuarterlyDiffFeatures(
'CHRIS/CME_CL1', 'ODA/POILBRE_USD', 'CHRIS/CME_NG1', 'ODA/PCOFFOTM_USD', 'ODA/PCOCO_USD', 'ODA/PORANG_USD', 'ODA/PBANSOP_USD', 'ODA/POLVOIL_USD', 'ODA/PLOGSK_USD', 'ODA/PCOTTIND_USD' ] if __name__ == '__main__': parser = argparse.ArgumentParser() arg = parser.add_argument arg('--config_path', type=str) arg('--secrets_path', type=str) args = parser.parse_args() config = load_json(args.config_path) secrets = load_json(args.secrets_path) downloader = QuandlDownloader(config, secrets, sleep_time=0.8) for code in tqdm(quandl_commodities_codes): downloader.single_download('datasets/{}'.format(code), '{}/{}.json'.format(config['commodities_data_path'], code.replace('/', '_')))