stable/freqtrade/tests/edge/test_edge.py
2018-10-02 16:32:57 +02:00

30 lines
1.2 KiB
Python

from freqtrade.tests.conftest import log_has, get_patched_exchange
from freqtrade.edge import Edge
# Cases to be tested:
# 1) Three complete trades within dataframe (with sell or buy hit for all)
# 2) Two open trades but one without sell/buy hit
# 3) Two complete trades and one which should not be considered as it happend while
# there was an already open trade on pair
# 4) Three complete trades with buy=1 on the last frame
# 5) Candle drops 8%, stoploss at 1%: Trade closed, 1% loss
# 6) Candle drops 4% but recovers to 1% loss, stoploss at 3%: Trade closed, 3% loss
# 7) Candle drops 4% recovers to 1% entry criteria are met candle drops
# 20%, stoploss at 2%: Trade 1 closed, Loss 2%, Trade 2 opened, Trade 2 closed, Loss 2%
def test_filter(mocker, default_conf):
exchange = get_patched_exchange(mocker, default_conf)
edge = Edge(default_conf, exchange)
mocker.patch('freqtrade.edge.Edge._cached_pairs', mocker.PropertyMock(
return_value=[
['E/F', -0.01, 0.66, 3.71, 0.50, 1.71],
['C/D', -0.01, 0.66, 3.71, 0.50, 1.71],
['N/O', -0.01, 0.66, 3.71, 0.50, 1.71]
]
))
pairs = ['A/B', 'C/D', 'E/F', 'G/H']
assert(edge.filter(pairs) == ['E/F', 'C/D'])