diff --git a/freqtrade/data/btanalysis.py b/freqtrade/data/btanalysis.py index 4f29d7652..1aa3bef4a 100644 --- a/freqtrade/data/btanalysis.py +++ b/freqtrade/data/btanalysis.py @@ -25,7 +25,6 @@ BT_DATA_COLUMNS = ['pair', 'stake_amount', 'amount', 'open_date', 'close_date', 'stop_loss_ratio', 'min_rate', 'max_rate', 'is_open', 'enter_tag', 'is_short' ] -# TODO-lev: usage of the above might need compatibility code (buy_tag, is_short?, ...?) def get_latest_optimize_filename(directory: Union[Path, str], variant: str) -> str: @@ -160,6 +159,13 @@ def load_backtest_data(filename: Union[Path, str], strategy: Optional[str] = Non utc=True, infer_datetime_format=True ) + # Compatibility support for pre short Columns + if 'is_short' not in df.columns: + df['is_short'] = 0 + if 'enter_tag' not in df.columns: + df['enter_tag'] = df['buy_tag'] + df = df.drop(['buy_tag'], axis=1) + else: # old format - only with lists. raise OperationalException( diff --git a/tests/data/test_btanalysis.py b/tests/data/test_btanalysis.py index e9e6a4440..1ad43a8e3 100644 --- a/tests/data/test_btanalysis.py +++ b/tests/data/test_btanalysis.py @@ -90,7 +90,8 @@ def test_load_backtest_data_multi(testdatadir): for strategy in ('StrategyTestV2', 'TestStrategy'): bt_data = load_backtest_data(filename, strategy=strategy) assert isinstance(bt_data, DataFrame) - assert set(bt_data.columns) == set(BT_DATA_COLUMNS + ['close_timestamp', 'open_timestamp']) + assert set(bt_data.columns) == set( + BT_DATA_COLUMNS + ['close_timestamp', 'open_timestamp']) assert len(bt_data) == 179 # Test loading from string (must yield same result)