2021-12-03 11:12:33 +00:00
|
|
|
from enum import Enum
|
|
|
|
|
|
|
|
|
|
|
|
class CandleType(str, Enum):
|
|
|
|
"""Enum to distinguish candle types"""
|
|
|
|
SPOT = "spot"
|
|
|
|
FUTURES = "futures"
|
|
|
|
MARK = "mark"
|
|
|
|
INDEX = "index"
|
|
|
|
PREMIUMINDEX = "premiumIndex"
|
2022-02-12 22:10:21 +00:00
|
|
|
|
|
|
|
# TODO: Could take up less memory if these weren't a CandleType
|
2021-12-03 11:12:33 +00:00
|
|
|
FUNDING_RATE = "funding_rate"
|
2022-02-15 05:53:10 +00:00
|
|
|
# BORROW_RATE = "borrow_rate" # * unimplemented
|
2021-12-03 11:46:18 +00:00
|
|
|
|
2023-02-25 12:34:19 +00:00
|
|
|
def __str__(self):
|
|
|
|
return f"{self.name.lower()}"
|
|
|
|
|
2021-12-08 12:00:11 +00:00
|
|
|
@staticmethod
|
|
|
|
def from_string(value: str) -> 'CandleType':
|
2021-12-03 11:46:18 +00:00
|
|
|
if not value:
|
|
|
|
# Default to spot
|
2021-12-08 13:35:15 +00:00
|
|
|
return CandleType.SPOT
|
2021-12-03 11:46:18 +00:00
|
|
|
return CandleType(value)
|
2021-12-08 12:00:11 +00:00
|
|
|
|
|
|
|
@staticmethod
|
|
|
|
def get_default(trading_mode: str) -> 'CandleType':
|
|
|
|
if trading_mode == 'futures':
|
|
|
|
return CandleType.FUTURES
|
2021-12-08 13:35:15 +00:00
|
|
|
return CandleType.SPOT
|