public void CancelOrder(OrderVM orderVM) { var sendobjBld = new PBOrderRequest(); sendobjBld.Exchange = orderVM.Exchange; sendobjBld.Contract = orderVM.Contract; sendobjBld.OrderID = orderVM.OrderID; sendobjBld.OrderSysID = orderVM.OrderSysID; MessageWrapper.SendMessage((uint)BusinessMessageID.MSG_ID_ORDER_CANCEL, sendobjBld); }
public void CreateOrder(OrderVM orderVM) { if (orderVM == null) { OnOrderError?.Invoke(new Exception("订单对象异常")); return; } if (orderVM.Contract == null) { OnOrderError?.Invoke(new Exception("订单合约不能为空")); return; } if (orderVM.Volume <= 0) { OnOrderError?.Invoke(new Exception("订单数量不正确")); return; } double price = 0; var contractInfo = ClientDbContext.FindContract(orderVM.Contract); if (contractInfo != null) { price = Math.Round(orderVM.LimitPrice / contractInfo.PriceTick) * contractInfo.PriceTick; } else { OnOrderError?.Invoke(new Exception("输入合约不存在")); return; } var pb = new PBOrderRequest(); pb.Contract = orderVM.Contract; pb.LimitPrice = orderVM.LimitPrice; pb.Tif = (int)orderVM.TIF; pb.VolCond = (int)orderVM.VolCondition; pb.Volume = orderVM.Volume; pb.ExecType = (int)orderVM.ExecType; pb.Direction = (int)orderVM.Direction; pb.Openclose = (int)orderVM.OpenClose; if (orderVM.Portfolio != null) { pb.Portfolio = orderVM.Portfolio; } MessageWrapper.SendMessage((uint)BusinessMessageID.MSG_ID_ORDER_NEW, pb); }