Implement enter_tag initialization to avoid futures warning
This commit is contained in:
@@ -1388,7 +1388,8 @@ class IStrategy(ABC, HyperStrategyMixin):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
logger.debug(f"Populating enter signals for pair {metadata.get('pair')}.")
|
logger.debug(f"Populating enter signals for pair {metadata.get('pair')}.")
|
||||||
|
# Initialize column to work around Pandas bug #56503.
|
||||||
|
dataframe.loc[:, 'enter_tag'] = ''
|
||||||
df = self.populate_entry_trend(dataframe, metadata)
|
df = self.populate_entry_trend(dataframe, metadata)
|
||||||
if 'enter_long' not in df.columns:
|
if 'enter_long' not in df.columns:
|
||||||
df = df.rename({'buy': 'enter_long', 'buy_tag': 'enter_tag'}, axis='columns')
|
df = df.rename({'buy': 'enter_long', 'buy_tag': 'enter_tag'}, axis='columns')
|
||||||
@@ -1404,6 +1405,8 @@ class IStrategy(ABC, HyperStrategyMixin):
|
|||||||
currently traded pair
|
currently traded pair
|
||||||
:return: DataFrame with exit column
|
:return: DataFrame with exit column
|
||||||
"""
|
"""
|
||||||
|
# Initialize column to work around Pandas bug #56503.
|
||||||
|
dataframe.loc[:, 'exit_tag'] = ''
|
||||||
logger.debug(f"Populating exit signals for pair {metadata.get('pair')}.")
|
logger.debug(f"Populating exit signals for pair {metadata.get('pair')}.")
|
||||||
df = self.populate_exit_trend(dataframe, metadata)
|
df = self.populate_exit_trend(dataframe, metadata)
|
||||||
if 'exit_long' not in df.columns:
|
if 'exit_long' not in df.columns:
|
||||||
|
|||||||
@@ -734,7 +734,7 @@ def test_backtest_one(default_conf, fee, mocker, testdatadir) -> None:
|
|||||||
'min_rate': [0.10370188, 0.10300000000000001],
|
'min_rate': [0.10370188, 0.10300000000000001],
|
||||||
'max_rate': [0.10501, 0.1038888],
|
'max_rate': [0.10501, 0.1038888],
|
||||||
'is_open': [False, False],
|
'is_open': [False, False],
|
||||||
'enter_tag': [None, None],
|
'enter_tag': ['', ''],
|
||||||
"leverage": [1.0, 1.0],
|
"leverage": [1.0, 1.0],
|
||||||
"is_short": [False, False],
|
"is_short": [False, False],
|
||||||
'open_timestamp': [1517251200000, 1517283000000],
|
'open_timestamp': [1517251200000, 1517283000000],
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ def test_backtest_position_adjustment(default_conf, fee, mocker, testdatadir) ->
|
|||||||
'min_rate': [0.10370188, 0.10300000000000001],
|
'min_rate': [0.10370188, 0.10300000000000001],
|
||||||
'max_rate': [0.10481985, 0.1038888],
|
'max_rate': [0.10481985, 0.1038888],
|
||||||
'is_open': [False, False],
|
'is_open': [False, False],
|
||||||
'enter_tag': [None, None],
|
'enter_tag': ['', ''],
|
||||||
'leverage': [1.0, 1.0],
|
'leverage': [1.0, 1.0],
|
||||||
'is_short': [False, False],
|
'is_short': [False, False],
|
||||||
'open_timestamp': [1517251200000, 1517283000000],
|
'open_timestamp': [1517251200000, 1517283000000],
|
||||||
|
|||||||
@@ -1023,9 +1023,9 @@ def test_auto_hyperopt_interface_loadparams(default_conf, mocker, caplog):
|
|||||||
|
|
||||||
@pytest.mark.parametrize('function,raises', [
|
@pytest.mark.parametrize('function,raises', [
|
||||||
('populate_entry_trend', True),
|
('populate_entry_trend', True),
|
||||||
('advise_entry', True),
|
('advise_entry', False),
|
||||||
('populate_exit_trend', True),
|
('populate_exit_trend', True),
|
||||||
('advise_exit', True),
|
('advise_exit', False),
|
||||||
])
|
])
|
||||||
def test_pandas_warning_direct(ohlcv_history, function, raises):
|
def test_pandas_warning_direct(ohlcv_history, function, raises):
|
||||||
|
|
||||||
@@ -1041,8 +1041,8 @@ def test_pandas_warning_direct(ohlcv_history, function, raises):
|
|||||||
getattr(_STRATEGY, function)(df, {'pair': 'ETH/BTC'})
|
getattr(_STRATEGY, function)(df, {'pair': 'ETH/BTC'})
|
||||||
|
|
||||||
|
|
||||||
def test_pandas_warning_through_analyze_pair(ohlcv_history, mocker):
|
def test_pandas_warning_through_analyze_pair(ohlcv_history, mocker, recwarn):
|
||||||
|
|
||||||
mocker.patch.object(_STRATEGY.dp, 'ohlcv', return_value=ohlcv_history)
|
mocker.patch.object(_STRATEGY.dp, 'ohlcv', return_value=ohlcv_history)
|
||||||
with pytest.warns(FutureWarning):
|
_STRATEGY.analyze_pair('ETH/BTC')
|
||||||
_STRATEGY.analyze_pair('ETH/BTC')
|
assert len(recwarn) == 0
|
||||||
|
|||||||
Reference in New Issue
Block a user