Also support column-transition for V1 strategies
This commit is contained in:
parent
0e13d57e57
commit
a0ef89d910
@ -959,13 +959,13 @@ class IStrategy(ABC, HyperStrategyMixin):
|
|||||||
if self._buy_fun_len == 2:
|
if self._buy_fun_len == 2:
|
||||||
warnings.warn("deprecated - check out the Sample strategy to see "
|
warnings.warn("deprecated - check out the Sample strategy to see "
|
||||||
"the current function headers!", DeprecationWarning)
|
"the current function headers!", DeprecationWarning)
|
||||||
return self.populate_buy_trend(dataframe) # type: ignore
|
df = self.populate_buy_trend(dataframe) # type: ignore
|
||||||
else:
|
else:
|
||||||
df = self.populate_buy_trend(dataframe, metadata)
|
df = self.populate_buy_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': 'long_tag'}, axis='columns')
|
df = df.rename({'buy': 'enter_long', 'buy_tag': 'long_tag'}, axis='columns')
|
||||||
|
|
||||||
return df
|
return df
|
||||||
|
|
||||||
def advise_exit(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
|
def advise_exit(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
|
||||||
"""
|
"""
|
||||||
@ -981,9 +981,9 @@ class IStrategy(ABC, HyperStrategyMixin):
|
|||||||
if self._sell_fun_len == 2:
|
if self._sell_fun_len == 2:
|
||||||
warnings.warn("deprecated - check out the Sample strategy to see "
|
warnings.warn("deprecated - check out the Sample strategy to see "
|
||||||
"the current function headers!", DeprecationWarning)
|
"the current function headers!", DeprecationWarning)
|
||||||
return self.populate_sell_trend(dataframe) # type: ignore
|
df = self.populate_sell_trend(dataframe) # type: ignore
|
||||||
else:
|
else:
|
||||||
df = self.populate_sell_trend(dataframe, metadata)
|
df = self.populate_sell_trend(dataframe, metadata)
|
||||||
if 'exit_long' not in df.columns:
|
if 'exit_long' not in df.columns:
|
||||||
df = df.rename({'sell': 'exit_long'}, axis='columns')
|
df = df.rename({'sell': 'exit_long'}, axis='columns')
|
||||||
return df
|
return df
|
||||||
|
@ -99,8 +99,10 @@ def test_load_strategy_noname(default_conf):
|
|||||||
StrategyResolver.load_strategy(default_conf)
|
StrategyResolver.load_strategy(default_conf)
|
||||||
|
|
||||||
|
|
||||||
def test_strategy_v2(result, default_conf):
|
@pytest.mark.filterwarnings("ignore:deprecated")
|
||||||
default_conf.update({'strategy': 'StrategyTestV2'})
|
@pytest.mark.parametrize('strategy_name', ['StrategyTestV2', 'TestStrategyLegacyV1'])
|
||||||
|
def test_strategy_pre_v3(result, default_conf, strategy_name):
|
||||||
|
default_conf.update({'strategy': strategy_name})
|
||||||
|
|
||||||
strategy = StrategyResolver.load_strategy(default_conf)
|
strategy = StrategyResolver.load_strategy(default_conf)
|
||||||
metadata = {'pair': 'ETH/BTC'}
|
metadata = {'pair': 'ETH/BTC'}
|
||||||
@ -364,7 +366,7 @@ def test_deprecate_populate_indicators(result, default_conf):
|
|||||||
|
|
||||||
|
|
||||||
@pytest.mark.filterwarnings("ignore:deprecated")
|
@pytest.mark.filterwarnings("ignore:deprecated")
|
||||||
def test_call_deprecated_function(result, monkeypatch, default_conf, caplog):
|
def test_call_deprecated_function(result, default_conf, caplog):
|
||||||
default_location = Path(__file__).parent / "strats"
|
default_location = Path(__file__).parent / "strats"
|
||||||
del default_conf['timeframe']
|
del default_conf['timeframe']
|
||||||
default_conf.update({'strategy': 'TestStrategyLegacyV1',
|
default_conf.update({'strategy': 'TestStrategyLegacyV1',
|
||||||
@ -386,11 +388,11 @@ def test_call_deprecated_function(result, monkeypatch, default_conf, caplog):
|
|||||||
|
|
||||||
enterdf = strategy.advise_entry(result, metadata=metadata)
|
enterdf = strategy.advise_entry(result, metadata=metadata)
|
||||||
assert isinstance(enterdf, DataFrame)
|
assert isinstance(enterdf, DataFrame)
|
||||||
assert 'buy' in enterdf.columns
|
assert 'enter_long' in enterdf.columns
|
||||||
|
|
||||||
exitdf = strategy.advise_exit(result, metadata=metadata)
|
exitdf = strategy.advise_exit(result, metadata=metadata)
|
||||||
assert isinstance(exitdf, DataFrame)
|
assert isinstance(exitdf, DataFrame)
|
||||||
assert 'sell' in exitdf
|
assert 'exit_long' in exitdf
|
||||||
|
|
||||||
assert log_has("DEPRECATED: Please migrate to using 'timeframe' instead of 'ticker_interval'.",
|
assert log_has("DEPRECATED: Please migrate to using 'timeframe' instead of 'ticker_interval'.",
|
||||||
caplog)
|
caplog)
|
||||||
|
Loading…
Reference in New Issue
Block a user