TradeData的数据结构如下:
@dataclass
class TradeData(BaseData):
"""
Trade data contains information of a fill of an order. One order
can have several trade fills.
"""
symbol: str
exchange: Exchange
orderid: str
tradeid: str
direction: Direction = None
offset: Offset = Offset.NONE
price: float = 0
volume: float = 0
datetime: datetime = None
def __post_init__(self):
""""""
self.vt_symbol = f"{self.symbol}.{self.exchange.value}"
self.vt_orderid = f"{self.gateway_name}.{self.orderid}"
self.vt_tradeid = f"{self.gateway_name}.{self.tradeid}"
它是不包含昨仓信息的。但是Offset的信息里面有:
class Offset(Enum):
"""
Offset of order/trade.
"""
NONE = ""
OPEN = "开"
CLOSE = "平"
CLOSETODAY = "平今"
CLOSEYESTERDAY = "平昨"
看这个Offset,如果trade.offset.value == "平今",那trade.volume肯定是今仓数量,trade.offset.value == "平昨",那trade.volume肯定是昨仓数量。那么问题来了,如果返回的信息是trade.offset.value == "平",我又想知道这时候trade.volume里包含的昨仓信息,如果实现了?
trade.offset.value == "平" or trade.offset.value == "平今" or trade.offset.value == "平昨"