def _adjust_reports(self, date_from, reports): for report in reports: date_from = terminal.get_run_result_date_from(date_from, report['ResultId'], self.trades_before_run) report['Trades'] = [trade for trade in report['Trades'] if trade['CloseTime'] > date_from] return reports
def test_get_run_result_date_from_no_trades(self): # arrange df_run_trades = None # act date_from = terminal.get_run_result_date_from('2018.04.01', 1, df_run_trades) # assert self.assertEqual(datetime(2018, 4, 1, 0, 0, 0), date_from)
def test_get_run_result_date_from_zero_shift(self): # arrange df_run_trades = pd.DataFrame({ 'ResultId': [1], 'MaxCloseTime': [datetime(2018, 5, 1, 9, 15, 0)] }) # act date_from = terminal.get_run_result_date_from('2018.04.01', 1, df_run_trades, shift_days=0) # assert self.assertEqual(datetime(2018, 5, 1, 9, 15, 0), date_from)
def test_get_run_result_date_from_empty_df(self): # arrange df_run_trades = pd.DataFrame({ 'ResultId': [], 'NumTrades': [], 'MaxCloseTime': [] }) # act date_from = terminal.get_run_result_date_from('2018.04.01', 1, df_run_trades) # assert self.assertEqual(datetime(2018, 4, 1, 0, 0, 0), date_from)
def smart_refresh_trades(configuration_id): runs = run.get_by_configuration_id(configuration_id) trades_before_run = run_result.get_run_result_trades_summary_by_configuration_id( configuration_id) for run_entry in runs: run_id = run_entry['RunId'] date_from = run_entry['TestDateFrom'] if trades_before_run.shape[0] > 0: trades = trades_before_run[trades_before_run['RunId'] == run_id] for _, trades_entry in trades.iterrows(): result_id = trades_entry['ResultId'] cutoff_trade_date = terminal.get_run_result_date_from( date_from, result_id, trades_before_run) run_result.delete_trades_by_rusult_id_and_close_time( result_id, cutoff_trade_date) # reset previously collected results, re-think once an issue run_result.reset_run_results_by_configuration_id(configuration_id) return trades_before_run