From 5d3261e92fad6e4b7d5a843877ea3db2d646866a Mon Sep 17 00:00:00 2001 From: Arunavo Ray Date: Tue, 7 Sep 2021 12:24:39 +0530 Subject: [PATCH 1/4] Added Ftx interest rate calculation --- freqtrade/leverage/interest.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/freqtrade/leverage/interest.py b/freqtrade/leverage/interest.py index aacbb3532..c687c8b5b 100644 --- a/freqtrade/leverage/interest.py +++ b/freqtrade/leverage/interest.py @@ -20,7 +20,7 @@ def interest( :param exchange_name: The exchanged being trading on :param borrowed: The amount of currency being borrowed - :param rate: The rate of interest + :param rate: The rate of interest (i.e daily interest rate) :param hours: The time in hours that the currency has been borrowed for Raises: @@ -36,7 +36,8 @@ def interest( # Rounded based on https://kraken-fees-calculator.github.io/ return borrowed * rate * (one+ceil(hours/four)) elif exchange_name == "ftx": - # TODO-lev: Add FTX interest formula - raise OperationalException(f"Leverage not available on {exchange_name} with freqtrade") + # As Explained under #Interest rates section in + # https://help.ftx.com/hc/en-us/articles/360053007671-Spot-Margin-Trading-Explainer + return borrowed * rate * ceil(hours)/twenty_four else: - raise OperationalException(f"Leverage not available on {exchange_name} with freqtrade") + raise OperationalException(f"Leverage not available on {exchange_name} with freqtrade") \ No newline at end of file From d07c7f7f275af5169b4ba3ac6ca25974c687998f Mon Sep 17 00:00:00 2001 From: Arunavo Ray Date: Tue, 7 Sep 2021 12:28:23 +0530 Subject: [PATCH 2/4] Added Ftx interest rate calculation --- freqtrade/leverage/interest.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/freqtrade/leverage/interest.py b/freqtrade/leverage/interest.py index aacbb3532..c687c8b5b 100644 --- a/freqtrade/leverage/interest.py +++ b/freqtrade/leverage/interest.py @@ -20,7 +20,7 @@ def interest( :param exchange_name: The exchanged being trading on :param borrowed: The amount of currency being borrowed - :param rate: The rate of interest + :param rate: The rate of interest (i.e daily interest rate) :param hours: The time in hours that the currency has been borrowed for Raises: @@ -36,7 +36,8 @@ def interest( # Rounded based on https://kraken-fees-calculator.github.io/ return borrowed * rate * (one+ceil(hours/four)) elif exchange_name == "ftx": - # TODO-lev: Add FTX interest formula - raise OperationalException(f"Leverage not available on {exchange_name} with freqtrade") + # As Explained under #Interest rates section in + # https://help.ftx.com/hc/en-us/articles/360053007671-Spot-Margin-Trading-Explainer + return borrowed * rate * ceil(hours)/twenty_four else: - raise OperationalException(f"Leverage not available on {exchange_name} with freqtrade") + raise OperationalException(f"Leverage not available on {exchange_name} with freqtrade") \ No newline at end of file From c54259b4c55598bbc8579bc4f65d322f7180faac Mon Sep 17 00:00:00 2001 From: Arunavo Ray Date: Sun, 19 Sep 2021 11:35:29 +0530 Subject: [PATCH 3/4] Added ftx interest formula tests --- tests/leverage/{test_leverage.py => test_interest.py} | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) rename tests/leverage/{test_leverage.py => test_interest.py} (83%) diff --git a/tests/leverage/test_leverage.py b/tests/leverage/test_interest.py similarity index 83% rename from tests/leverage/test_leverage.py rename to tests/leverage/test_interest.py index 7b7ca0f9b..c7e787bdb 100644 --- a/tests/leverage/test_leverage.py +++ b/tests/leverage/test_interest.py @@ -22,9 +22,10 @@ twentyfive_hours = Decimal(25.0) ('kraken', 0.00025, five_hours, 0.045), ('kraken', 0.00025, twentyfive_hours, 0.12), # FTX - # TODO-lev: - implement FTX tests - # ('ftx', Decimal(0.0005), ten_mins, 0.06), - # ('ftx', Decimal(0.0005), five_hours, 0.045), + ('ftx', 0.0005, ten_mins, 0.00125), + ('ftx', 0.00025, ten_mins, 0.000625), + ('ftx', 0.00025, five_hours, 0.003125), + ('ftx', 0.00025, twentyfive_hours, 0.015625), ]) def test_interest(exchange, interest_rate, hours, expected): borrowed = Decimal(60.0) From 27bd30d266b121c0ead4c08c302dfa776e5596bd Mon Sep 17 00:00:00 2001 From: Arunavo Ray Date: Sun, 19 Sep 2021 11:42:29 +0530 Subject: [PATCH 4/4] fixed formatting issues --- freqtrade/leverage/interest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/freqtrade/leverage/interest.py b/freqtrade/leverage/interest.py index c687c8b5b..2878ad784 100644 --- a/freqtrade/leverage/interest.py +++ b/freqtrade/leverage/interest.py @@ -40,4 +40,4 @@ def interest( # https://help.ftx.com/hc/en-us/articles/360053007671-Spot-Margin-Trading-Explainer return borrowed * rate * ceil(hours)/twenty_four else: - raise OperationalException(f"Leverage not available on {exchange_name} with freqtrade") \ No newline at end of file + raise OperationalException(f"Leverage not available on {exchange_name} with freqtrade")