Update order time in force to use entry/exit wording

This commit is contained in:
Matthias
2022-03-07 07:09:01 +01:00
parent da733a458d
commit 3ff261e22c
17 changed files with 88 additions and 40 deletions

View File

@@ -319,6 +319,7 @@ def test_backtesting_init_no_timeframe(mocker, default_conf, caplog) -> None:
del default_conf['timeframe']
default_conf['strategy_list'] = [CURRENT_TEST_STRATEGY,
'SampleStrategy']
# TODO: This refers to the sampleStrategy in user_data if it exists...
mocker.patch('freqtrade.exchange.Exchange.get_fee', MagicMock(return_value=0.5))
with pytest.raises(OperationalException):

View File

@@ -45,8 +45,8 @@ class HyperoptableStrategy(IStrategy):
# Optional time in force for orders
order_time_in_force = {
'buy': 'gtc',
'sell': 'gtc',
'entry': 'gtc',
'exit': 'gtc',
}
buy_params = {

View File

@@ -47,8 +47,8 @@ class StrategyTestV2(IStrategy):
# Optional time in force for orders
order_time_in_force = {
'buy': 'gtc',
'sell': 'gtc',
'entry': 'gtc',
'exit': 'gtc',
}
# By default this strategy does not use Position Adjustments

View File

@@ -48,8 +48,8 @@ class StrategyTestV3(IStrategy):
# Optional time in force for orders
order_time_in_force = {
'buy': 'gtc',
'sell': 'gtc',
'entry': 'gtc',
'exit': 'gtc',
}
buy_params = {

View File

@@ -257,8 +257,8 @@ def test_strategy_override_order_tif(caplog, default_conf):
caplog.set_level(logging.INFO)
order_time_in_force = {
'buy': 'fok',
'sell': 'gtc',
'entry': 'fok',
'exit': 'gtc',
}
default_conf.update({
@@ -268,15 +268,15 @@ def test_strategy_override_order_tif(caplog, default_conf):
strategy = StrategyResolver.load_strategy(default_conf)
assert strategy.order_time_in_force
for method in ['buy', 'sell']:
for method in ['entry', 'exit']:
assert strategy.order_time_in_force[method] == order_time_in_force[method]
assert log_has("Override strategy 'order_time_in_force' with value in config file:"
" {'buy': 'fok', 'sell': 'gtc'}.", caplog)
" {'entry': 'fok', 'exit': 'gtc'}.", caplog)
default_conf.update({
'strategy': CURRENT_TEST_STRATEGY,
'order_time_in_force': {'buy': 'fok'}
'order_time_in_force': {'entry': 'fok'}
})
# Raise error for invalid configuration
with pytest.raises(ImportError,

View File

@@ -941,6 +941,28 @@ def test_validate_ask_orderbook(default_conf, caplog) -> None:
validate_config_consistency(conf)
def test_validate_time_in_force(default_conf, caplog) -> None:
conf = deepcopy(default_conf)
conf['order_time_in_force'] = {
'buy': 'gtc',
'sell': 'gtc',
}
validate_config_consistency(conf)
assert log_has_re(r"DEPRECATED: Using 'buy' and 'sell' for time_in_force is.*", caplog)
assert conf['order_time_in_force']['entry'] == 'gtc'
assert conf['order_time_in_force']['exit'] == 'gtc'
conf = deepcopy(default_conf)
conf['order_time_in_force'] = {
'buy': 'gtc',
'sell': 'gtc',
}
conf['trading_mode'] = 'futures'
with pytest.raises(OperationalException,
match=r"Please migrate your time_in_force settings .* 'entry' and 'exit'\."):
validate_config_consistency(conf)
def test_load_config_test_comments() -> None:
"""
Load config with comments