['experiment_id', 'backtest_id', 'parameters_id']) outputs = list() for bt in scenarios: print(bt[0]) experiment_id, backtest_id, parameters_id = bt[0] results = bt[1] experiment = db.load_experiment(experiment_id) backtest_params = db.load_backtests([backtest_id]) returns = db.load_returns(experiment) excess_returns = returns.values train, test = backtest.split_returns( excess_returns, backtest_params['update_periods'], backtest_params['trailing_periods']) portfolios = pg.decimallistseries2nparray(results.portfolio_weights) portfolio_returns = pg.decimallistseries2nparray(results.test_returns) train_mean = ps.mean(portfolios[0,:], train[0]) train_variance = ps.variance(portfolios[0,:], train[0]) eta = results.eta.iloc[0] backtest_statistics = ps.rkw_statistics( portfolios, portfolio_returns, eta=eta) test_statistics = backtest_statistics['statistics'] agg_returns = backtest_statistics['aggregate_returns'] output = test_statistics output['aggregate_returns'] = pg.array2pgarray(agg_returns) output['train_mean_return'] = train_mean output['train_variance'] = train_variance output['parameters_id'] = parameters_id output['experiment_id'] = experiment_id