@@ -1528,6 +1528,25 @@ def test_handle_trade(
15281528 assert trade .close_date is not None
15291529 assert trade .exit_reason == "sell_signal1"
15301530
1531+ correct_profit_ratio = trade .calc_profit_ratio (
1532+ rate = trade .close_rate , amount = trade .amount , open_rate = trade .open_rate
1533+ )
1534+ profit_ratio_1 = trade .calc_profit_ratio (rate = trade .close_rate , open_rate = trade .open_rate )
1535+ profit_ratio_2 = trade .calc_profit_ratio (
1536+ rate = trade .close_rate , open_rate = trade .open_rate * 1.02
1537+ )
1538+ profit_ratio_3 = trade .calc_profit_ratio (rate = trade .close_rate , amount = trade .amount )
1539+ profit_ratio_4 = trade .calc_profit_ratio (rate = trade .close_rate )
1540+ profit_ratio_5 = trade .calc_profit_ratio (
1541+ rate = trade .close_rate , amount = trade .amount , open_rate = trade .open_rate * 1.02
1542+ )
1543+ assert correct_profit_ratio == close_profit
1544+ assert correct_profit_ratio == profit_ratio_1
1545+ assert correct_profit_ratio != profit_ratio_2
1546+ assert correct_profit_ratio == profit_ratio_3
1547+ assert correct_profit_ratio == profit_ratio_4
1548+ assert correct_profit_ratio != profit_ratio_5
1549+
15311550
15321551@pytest .mark .parametrize ("is_short" , [False , True ])
15331552def test_handle_overlapping_signals (
@@ -5729,7 +5748,7 @@ def test_position_adjust2(mocker, default_conf_usdt, fee) -> None:
57295748@pytest .mark .parametrize (
57305749 "data" ,
57315750 [
5732- # tuple 1 - side amount, price
5751+ # tuple 1 - side, amount, price
57335752 # tuple 2 - amount, open_rate, stake_amount, cumulative_profit, realized_profit, rel_profit
57345753 (
57355754 (("buy" , 100 , 10 ), (100.0 , 10.0 , 1000.0 , 0.0 , None , None )),
0 commit comments