public void UpdatePosition(BrokerTrade trade) { if (trade.Direction == DirectionType.Buy) //买 { if (trade.OpenClose == OpenCloseType.CloseToday) //买平今空 { mTdShortPart.Frozen -= trade.Qty; mTdShortPart.Position -= trade.Qty; } else if (trade.OpenClose == OpenCloseType.Close) //买平昨空 { mYdShortPart.Frozen -= trade.Qty; mYdShortPart.Position -= trade.Qty; } else //买开多 { mTdLongPart.Position += trade.Qty; } } else //卖 { if (trade.OpenClose == OpenCloseType.CloseToday) //卖平今多 { mTdLongPart.Frozen -= trade.Qty; mTdLongPart.Position -= trade.Qty; } else if (trade.OpenClose == OpenCloseType.Close) //,卖平昨多 { mYdLongPart.Frozen -= trade.Qty; mYdLongPart.Position -= trade.Qty; } else //卖开空 { mTdShortPart.Position += trade.Qty; } } }
public static void UpdatePosition(BrokerTrade trade) { getPosition(trade.Instrument).UpdatePosition(trade); }