bbgo_origin/python/bbgo/data/balance.py

31 lines
674 B
Python
Raw Normal View History

from __future__ import annotations
2022-04-13 06:00:28 +00:00
from dataclasses import dataclass
2022-05-13 08:30:19 +00:00
from decimal import Decimal
2022-04-13 06:00:28 +00:00
import bbgo_pb2
2022-05-13 08:30:19 +00:00
from ..utils import parse_number
2022-04-13 06:00:28 +00:00
@dataclass
class Balance:
exchange: str
currency: str
2022-05-13 08:30:19 +00:00
available: Decimal
locked: Decimal
2022-05-16 04:23:31 +00:00
borrowed: Decimal
@classmethod
def from_pb(cls, obj: bbgo_pb2.Balance) -> Balance:
return cls(
exchange=obj.exchange,
currency=obj.currency,
2022-05-13 08:30:19 +00:00
available=parse_number(obj.available),
locked=parse_number(obj.locked),
2022-05-16 04:23:31 +00:00
borrowed=parse_number(obj.borrowed),
)
2022-05-13 08:30:19 +00:00
def total(self) -> Decimal:
return self.available + self.locked