def update_trade(self, trade: TradeData) -> None:
""""""
if trade.direction == Direction.LONG:
if trade.offset == Offset.OPEN:
self.long_td += trade.volume
elif trade.offset == Offset.CLOSETODAY:
self.short_td -= trade.volume
elif trade.offset == Offset.CLOSEYESTERDAY:
self.short_yd -= trade.volume
elif trade.offset == Offset.CLOSE:
if trade.exchange in {Exchange.SHFE, Exchange.INE}:
self.short_yd -= trade.volume
else:
self.short_td -= trade.volume
if self.short_td < 0:
self.short_yd += self.short_td
self.short_td = 0
self.long_pos = self.long_td + self.long_yd
self.short_pos = self.short_td + self.short_yd
不太理解这里关于持仓的计算,当持仓方向为多头时。如果开多仓,那么self.long_td += trade.volume 今多 = 今多 + 交易量(这个理解)。
但是平今多的时候为什么self.short_td -= trade.volume 。 平今减少的不也应该时今多么?为什么要计算再今空上啊,而且还是今空 = 今空 - 交易量。
如果今空初始为零 那么平今多的时候self.short_td不就小于0了么 那样下面关于多头持仓和空头持仓的结果应该就不准了啊。请前辈们指教,谢谢、
self.long_pos = self.long_td + self.long_yd
self.short_pos = self.short_td + self.short_yd