Esempio n. 1
0
    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
Esempio n. 2
0
    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)
Esempio n. 3
0
    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)
Esempio n. 4
0
    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)
Esempio n. 5
0
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