stable/freqtrade/enums/interestmode.py

31 lines
891 B
Python
Raw Normal View History

2021-07-06 03:48:56 +00:00
from decimal import Decimal
from enum import Enum
from math import ceil
from freqtrade.exceptions import OperationalException
2021-07-06 03:48:56 +00:00
2021-07-06 03:48:56 +00:00
one = Decimal(1.0)
four = Decimal(4.0)
twenty_four = Decimal(24.0)
class InterestMode(Enum):
"""Equations to calculate interest"""
2021-07-06 03:48:56 +00:00
HOURSPERDAY = "HOURSPERDAY"
HOURSPER4 = "HOURSPER4" # Hours per 4 hour segment
NONE = "NONE"
2021-07-06 03:48:56 +00:00
def __call__(self, *args, **kwargs):
borrowed, rate, hours = kwargs["borrowed"], kwargs["rate"], kwargs["hours"]
2021-07-06 03:48:56 +00:00
if self.name == "HOURSPERDAY":
return borrowed * rate * ceil(hours)/twenty_four
elif self.name == "HOURSPER4":
# Probably rounded based on https://kraken-fees-calculator.github.io/
return borrowed * rate * (1+ceil(hours/four))
else:
raise OperationalException("Leverage not available on this exchange with freqtrade")