bbgo_origin/python/bbgo/data/order.py

47 lines
1.2 KiB
Python
Raw Normal View History

from __future__ import annotations
2022-04-13 06:00:28 +00:00
from dataclasses import dataclass
from datetime import datetime
import bbgo_pb2
2022-04-13 06:00:28 +00:00
from ..enums import OrderType
from ..enums import SideType
from ..utils import parse_float
2022-04-18 03:40:39 +00:00
from ..utils import parse_time
2022-04-13 06:00:28 +00:00
@dataclass
class Order:
exchange: str
symbol: str
2022-04-13 06:00:28 +00:00
order_id: str
side: SideType
order_type: OrderType
price: float
stop_price: float
status: str
quantity: float
executed_quantity: float
2022-04-13 06:00:28 +00:00
client_order_id: str
group_id: int
created_at: datetime
@classmethod
def from_pb(cls, obj: bbgo_pb2.Order) -> Order:
return cls(
exchange=obj.exchange,
symbol=obj.symbol,
order_id=obj.id,
2022-04-15 06:57:33 +00:00
side=SideType(obj.side),
order_type=OrderType(obj.order_type),
price=parse_float(obj.price),
stop_price=parse_float(obj.stop_price),
status=obj.status,
quantity=parse_float(obj.quantity),
executed_quantity=parse_float(obj.executed_quantity),
client_order_id=obj.client_order_id,
group_id=obj.group_id,
2022-04-18 03:40:39 +00:00
created_at=parse_time(obj.created_at),
)