public double GetCloseAndQty(PositionRecord pos,out EnumOpenClose OpenClose) { double qty = 0; OpenClose = EnumOpenClose.CLOSE; if (IsSHFE) { // 上海,先检查今仓 qty = pos.QtyToday - pos.FrozenCloseToday; if (qty > 0) { OpenClose = EnumOpenClose.CLOSE_TODAY; } else { // 先算出昨仓,再查挂的昨平仓有多少 qty = (pos.Qty - pos.QtyToday) - (pos.FrozenClose - pos.FrozenCloseToday); } } else { // 非上海,直接返回 qty = pos.Qty - pos.FrozenClose; } return qty; }
/// <summary> /// 计算平昨仓和平 /// </summary> /// <param name="pos"></param> /// <param name="OpenClose"></param> /// <returns></returns> public double GetCloseAndQty(PositionRecord pos,out EnumOpenClose OpenClose) { double qty = 0;//可平仓量 OpenClose = EnumOpenClose.CLOSE;//开平标志,默认设置为平昨仓 if (IsSHFE)//是否上交所 { // 上海,先检查今仓可平量,今仓可平量=实际今仓量-挂平今量 qty = pos.QtyToday - pos.FrozenCloseToday; if (qty > 0)//今仓可平量>0时 { OpenClose = EnumOpenClose.CLOSE_TODAY;//设置平今标志 } else//今仓可平量==0时 { // 计算出昨可平仓量,再查挂的昨平仓有多少,昨仓=(实际持仓-实际今仓)-(挂平仓量 - 挂平今量) qty = (pos.Qty - pos.QtyToday) - (pos.FrozenClose - pos.FrozenCloseToday); } } else { // 非上海,直接返回 qty = pos.Qty - pos.FrozenClose; } return qty; }
public double GetCloseAndQty(PositionRecord pos, out EnumOpenClose OpenClose) { double qty = 0; OpenClose = EnumOpenClose.CLOSE; if (IsSHFE) { // 上海,先检查今仓 qty = pos.QtyToday - pos.FrozenCloseToday; if (qty > 0) { OpenClose = EnumOpenClose.CLOSE_TODAY; } else { // 先算出昨仓,再查挂的昨平仓有多少 qty = (pos.Qty - pos.QtyToday) - (pos.FrozenClose - pos.FrozenCloseToday); } } else { // 非上海,直接返回 qty = pos.Qty - pos.FrozenClose; } return(qty); }