Skip to content

Commit 24f5096

Browse files
committed
modify test_handle_trade to test several cases of calc_profit_ratio
1 parent 030bc86 commit 24f5096

File tree

2 files changed

+21
-2
lines changed

2 files changed

+21
-2
lines changed

freqtrade/persistence/trade_model.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1181,7 +1181,7 @@ def calc_profit_ratio(
11811181
"""
11821182
Calculates the profit as ratio (including fee).
11831183
:param rate: rate to compare with.
1184-
:param amount: Amount to use for the calculation. Falls back to self.amount if not set.
1184+
:param amount: Amount to use for the calculation. Falls back to trade.amount if not set.
11851185
:param open_rate: open_rate to use. Defaults to self.open_rate if not provided.
11861186
:return: profit ratio as float
11871187
"""

tests/freqtradebot/test_freqtradebot.py

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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])
15331552
def 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

Comments
 (0)