def test_min_roi_reached2(default_conf, fee) -> None: # test with ROI raising after last interval min_roi_list = [ { 20: 0.07, 30: 0.05, 55: 0.30, 0: 0.1 }, { 0: 0.1, 20: 0.07, 30: 0.05, 55: 0.30 }, ] for roi in min_roi_list: strategy = DefaultStrategy(default_conf) strategy.minimal_roi = roi trade = Trade( pair='ETH/BTC', stake_amount=0.001, amount=5, open_date=arrow.utcnow().shift(hours=-1).datetime, fee_open=fee.return_value, fee_close=fee.return_value, exchange='bittrex', open_rate=1, ) assert not strategy.min_roi_reached( trade, 0.02, arrow.utcnow().shift(minutes=-56).datetime) assert strategy.min_roi_reached( trade, 0.12, arrow.utcnow().shift(minutes=-56).datetime) assert not strategy.min_roi_reached( trade, 0.04, arrow.utcnow().shift(minutes=-39).datetime) assert strategy.min_roi_reached( trade, 0.071, arrow.utcnow().shift(minutes=-39).datetime) assert not strategy.min_roi_reached( trade, 0.04, arrow.utcnow().shift(minutes=-26).datetime) assert strategy.min_roi_reached( trade, 0.06, arrow.utcnow().shift(minutes=-26).datetime) # Should not trigger with 20% profit since after 55 minutes only 30% is active. assert not strategy.min_roi_reached( trade, 0.20, arrow.utcnow().shift(minutes=-2).datetime) assert strategy.min_roi_reached( trade, 0.31, arrow.utcnow().shift(minutes=-2).datetime)
def test_min_roi_reached3(default_conf, fee) -> None: # test for issue #1948 min_roi = {20: 0.07, 30: 0.05, 55: 0.30, } strategy = DefaultStrategy(default_conf) strategy.minimal_roi = min_roi trade = Trade( pair='ETH/BTC', stake_amount=0.001, open_date=arrow.utcnow().shift(hours=-1).datetime, fee_open=fee.return_value, fee_close=fee.return_value, exchange='bittrex', open_rate=1, ) assert not strategy.min_roi_reached(trade, 0.02, arrow.utcnow().shift(minutes=-56).datetime) assert not strategy.min_roi_reached(trade, 0.12, arrow.utcnow().shift(minutes=-56).datetime) assert not strategy.min_roi_reached(trade, 0.04, arrow.utcnow().shift(minutes=-39).datetime) assert strategy.min_roi_reached(trade, 0.071, arrow.utcnow().shift(minutes=-39).datetime) assert not strategy.min_roi_reached(trade, 0.04, arrow.utcnow().shift(minutes=-26).datetime) assert strategy.min_roi_reached(trade, 0.06, arrow.utcnow().shift(minutes=-26).datetime) # Should not trigger with 20% profit since after 55 minutes only 30% is active. assert not strategy.min_roi_reached(trade, 0.20, arrow.utcnow().shift(minutes=-2).datetime) assert strategy.min_roi_reached(trade, 0.31, arrow.utcnow().shift(minutes=-2).datetime)
def test_min_roi_reached(default_conf, fee) -> None: strategy = DefaultStrategy(default_conf) strategy.minimal_roi = {0: 0.1, 20: 0.05, 55: 0.01} trade = Trade( pair='ETH/BTC', stake_amount=0.001, open_date=arrow.utcnow().shift(hours=-1).datetime, fee_open=fee.return_value, fee_close=fee.return_value, exchange='bittrex', open_rate=1, ) assert not strategy.min_roi_reached( trade, 0.01, arrow.utcnow().shift(minutes=-55).datetime) assert strategy.min_roi_reached(trade, 0.12, arrow.utcnow().shift(minutes=-55).datetime) assert not strategy.min_roi_reached( trade, 0.04, arrow.utcnow().shift(minutes=-39).datetime) assert strategy.min_roi_reached(trade, 0.06, arrow.utcnow().shift(minutes=-39).datetime) assert not strategy.min_roi_reached( trade, -0.01, arrow.utcnow().shift(minutes=-1).datetime) assert strategy.min_roi_reached(trade, 0.02, arrow.utcnow().shift(minutes=-1).datetime)
def test_min_roi_reached(default_conf, fee) -> None: # Use list to confirm sequence does not matter min_roi_list = [{20: 0.05, 55: 0.01, 0: 0.1}, {0: 0.1, 20: 0.05, 55: 0.01}] for roi in min_roi_list: strategy = DefaultStrategy(default_conf) strategy.minimal_roi = roi trade = Trade( pair='ETH/BTC', stake_amount=0.001, open_date=arrow.utcnow().shift(hours=-1).datetime, fee_open=fee.return_value, fee_close=fee.return_value, exchange='bittrex', open_rate=1, ) assert not strategy.min_roi_reached(trade, 0.02, arrow.utcnow().shift(minutes=-56).datetime) assert strategy.min_roi_reached(trade, 0.12, arrow.utcnow().shift(minutes=-56).datetime) assert not strategy.min_roi_reached(trade, 0.04, arrow.utcnow().shift(minutes=-39).datetime) assert strategy.min_roi_reached(trade, 0.06, arrow.utcnow().shift(minutes=-39).datetime) assert not strategy.min_roi_reached(trade, -0.01, arrow.utcnow().shift(minutes=-1).datetime) assert strategy.min_roi_reached(trade, 0.02, arrow.utcnow().shift(minutes=-1).datetime)