/
fgtmenow
/
tb
Обзор
Документация
Войти
/
fgtmenow
/
tb
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
bot/objects/InstrumentCache.py
50 строк
2 KB
Azarev Artem
add base bot sources
25 мар 2025, 20:11
25 мар 2025, 20:11
184b0c6
Код
Авторство
О чём код?
from _common.domain.model.Instrument import Instrument from _common.domain.util.SignletonMeta import SingletonMeta class InstrumentCache(metaclass=SingletonMeta): """ Кэш для хранения информации об инструментах торговли. Этот класс реализует паттерн Singleton и предоставляет доступ к информации о торговых инструментах, включая ставки финансирования и маржинальные требования. Атрибуты: instruments (dict): Словарь инструментов, индексированный по символу angle_band (dict): Словарь полос углов наклона, индексированный по символу """ def __init__(self): """Инициализация кэша с пустыми словарями для инструментов и полос углов.""" self.instruments: dict[str, Instrument] = {} self.angle_band: dict[str, float] = {} def get_funding_rate(self, symbol: str) -> float: """ Получить ставку финансирования для указанного символа. Аргументы: symbol: Символ торговой пары Возвращает: float: Ставка финансирования или 0.0, если инструмент не найден """ if self.instruments.__contains__(symbol): return self.instruments[symbol].ticker.fundingRate else: return 0.0 def get_maintenance_margin(self, symbol: str) -> float: """ Получить размер поддерживающей маржи для указанного символа. Аргументы: symbol: Символ торговой пары Возвращает: float: Размер поддерживающей маржи или 0.0, если инструмент не найден """ if self.instruments.__contains__(symbol): return self.instruments[symbol].maintenanceMargin else: return 0.0