def dcc_scenarios(parameter_ids, experiment_ids, backtest_ids): parameters = dataframe2json(db.load_dcc_parameters_by_id(parameter_ids)) experiments = dataframe2json(db.load_experiments(experiment_ids)) backtests = dataframe2json(db.load_backtests(backtest_ids)) scenarios = list() for p, e, b in itertools.product(parameters, experiments, backtests): p = copy.deepcopy(p) e = copy.deepcopy(e) b = copy.deepcopy(b) metadata = {'parameters_id': int(p['id']), 'experiment_id': int(e['id']), 'backtest_id': int(b['id'])} p.pop('id', None) e.pop('id', None) b.pop('id', None) e['start_date'] = str(e['start_date']) e['end_date'] = str(e['end_date']) # Numpy.int64 is not JSON serializable for some reason. b['trailing_periods'] = int(b['trailing_periods']) b['update_periods'] = int(b['update_periods']) scenario = {'metadata': metadata, 'portfolio': p, 'returns': e, 'backtest': b} scenarios.append(json.dumps(scenario)) return scenarios
df .apply(lambda row: {c: v for c,v in zip(df.columns, row)}, axis=1) .tolist()) # %% dcc_params = db.load_dcc_parameters([0.0001, 0.01], [0.01, 0.1], [0.0, 1.0], [1.0, 10.0]) dcc_params = dataframe2json(dcc_params) mv_params = db.load_mv_parameters([0.001, 1.0]) mv_params = dataframe2json(mv_params) experiment_ids = list(range(3, 23)) experiments = db.load_experiments(experiment_ids) experiments = dataframe2json(experiments) backtest = {'update_periods': 12, 'trailing_periods': 120} # %% def dcc_scenarios(parameter_ids, experiment_ids, backtest_ids): parameters = dataframe2json(db.load_dcc_parameters_by_id(parameter_ids)) experiments = dataframe2json(db.load_experiments(experiment_ids)) backtests = dataframe2json(db.load_backtests(backtest_ids)) scenarios = list() for p, e, b in itertools.product(parameters, experiments, backtests): p = copy.deepcopy(p) e = copy.deepcopy(e)