mirror of
https://github.com/freqtrade/freqtrade.git
synced 2024-11-10 10:21:59 +00:00
Detail tests for custom exit pricing
This commit is contained in:
parent
2a59ef7311
commit
22173851d6
|
@ -37,6 +37,7 @@ class BTContainer(NamedTuple):
|
||||||
use_sell_signal: bool = False
|
use_sell_signal: bool = False
|
||||||
use_custom_stoploss: bool = False
|
use_custom_stoploss: bool = False
|
||||||
custom_entry_price: Optional[float] = None
|
custom_entry_price: Optional[float] = None
|
||||||
|
custom_exit_price: Optional[float] = None
|
||||||
|
|
||||||
|
|
||||||
def _get_frame_time_from_offset(offset):
|
def _get_frame_time_from_offset(offset):
|
||||||
|
|
|
@ -566,7 +566,7 @@ tc35 = BTContainer(data=[
|
||||||
tc36 = BTContainer(data=[
|
tc36 = BTContainer(data=[
|
||||||
# D O H L C V B S BT
|
# D O H L C V B S BT
|
||||||
[0, 5000, 5050, 4950, 5000, 6172, 1, 0],
|
[0, 5000, 5050, 4950, 5000, 6172, 1, 0],
|
||||||
[1, 5000, 5500, 4951, 5000, 6172, 0, 0], # enter trade (signal on last candle) and stop
|
[1, 5000, 5500, 4951, 5000, 6172, 0, 0], # Enter and immediate ROI
|
||||||
[2, 4900, 5250, 4500, 5100, 6172, 0, 0],
|
[2, 4900, 5250, 4500, 5100, 6172, 0, 0],
|
||||||
[3, 5100, 5100, 4650, 4750, 6172, 0, 0],
|
[3, 5100, 5100, 4650, 4750, 6172, 0, 0],
|
||||||
[4, 4750, 4950, 4350, 4750, 6172, 0, 0]],
|
[4, 4750, 4950, 4350, 4750, 6172, 0, 0]],
|
||||||
|
@ -576,6 +576,37 @@ tc36 = BTContainer(data=[
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
# Test 37: Custom exit price below all candles
|
||||||
|
# causes sell signal timeout
|
||||||
|
tc37 = BTContainer(data=[
|
||||||
|
# D O H L C V B S BT
|
||||||
|
[0, 5000, 5050, 4950, 5000, 6172, 1, 0],
|
||||||
|
[1, 5000, 5500, 4951, 5000, 6172, 0, 0],
|
||||||
|
[2, 4900, 5250, 4900, 5100, 6172, 0, 1], # exit - but timeout
|
||||||
|
[3, 5100, 5100, 4950, 4950, 6172, 0, 0],
|
||||||
|
[4, 5000, 5100, 4950, 4950, 6172, 0, 0]],
|
||||||
|
stop_loss=-0.10, roi={"0": 0.10}, profit_perc=0.0,
|
||||||
|
use_sell_signal=True,
|
||||||
|
custom_exit_price=4552,
|
||||||
|
trades=[BTrade(sell_reason=SellType.FORCE_SELL, open_tick=1, close_tick=4)]
|
||||||
|
)
|
||||||
|
|
||||||
|
# Test 38: Custom exit price above all candles
|
||||||
|
# causes sell signal timeout
|
||||||
|
tc38 = BTContainer(data=[
|
||||||
|
# D O H L C V B S BT
|
||||||
|
[0, 5000, 5050, 4950, 5000, 6172, 1, 0],
|
||||||
|
[1, 5000, 5500, 4951, 5000, 6172, 0, 0],
|
||||||
|
[2, 4900, 5250, 4900, 5100, 6172, 0, 1], # exit - but timeout
|
||||||
|
[3, 5100, 5100, 4950, 4950, 6172, 0, 0],
|
||||||
|
[4, 5000, 5100, 4950, 4950, 6172, 0, 0]],
|
||||||
|
stop_loss=-0.10, roi={"0": 0.10}, profit_perc=0.0,
|
||||||
|
use_sell_signal=True,
|
||||||
|
custom_exit_price=6052,
|
||||||
|
trades=[BTrade(sell_reason=SellType.FORCE_SELL, open_tick=1, close_tick=4)]
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
TESTS = [
|
TESTS = [
|
||||||
tc0,
|
tc0,
|
||||||
tc1,
|
tc1,
|
||||||
|
@ -614,6 +645,8 @@ TESTS = [
|
||||||
tc34,
|
tc34,
|
||||||
tc35,
|
tc35,
|
||||||
tc36,
|
tc36,
|
||||||
|
tc37,
|
||||||
|
tc38,
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
@ -644,6 +677,8 @@ def test_backtest_results(default_conf, fee, mocker, caplog, data) -> None:
|
||||||
backtesting.strategy.advise_sell = lambda a, m: frame
|
backtesting.strategy.advise_sell = lambda a, m: frame
|
||||||
if data.custom_entry_price:
|
if data.custom_entry_price:
|
||||||
backtesting.strategy.custom_entry_price = MagicMock(return_value=data.custom_entry_price)
|
backtesting.strategy.custom_entry_price = MagicMock(return_value=data.custom_entry_price)
|
||||||
|
if data.custom_exit_price:
|
||||||
|
backtesting.strategy.custom_exit_price = MagicMock(return_value=data.custom_exit_price)
|
||||||
backtesting.strategy.use_custom_stoploss = data.use_custom_stoploss
|
backtesting.strategy.use_custom_stoploss = data.use_custom_stoploss
|
||||||
caplog.set_level(logging.DEBUG)
|
caplog.set_level(logging.DEBUG)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user