private static Order Deviation(Order order, OrderDeviationMode mode, int threshold, OrderDeviationMethod method, OrderPriceAdjustMethod adjustMethod, byte slippage, byte maxTry) { var info = GetOrderInfo(order); if (mode == OrderDeviationMode.Disabled) { info.DeviationMode = mode; } else { switch (info.DeviationMode) { case OrderDeviationMode.QuoteAndTrade: case OrderDeviationMode.Trade: case OrderDeviationMode.Time: info.DeviationMode |= mode; break; default: info.DeviationMode = mode; break; } } info.DeviationInfo.Threshold = threshold; info.DeviationInfo.Method = method; info.DeviationInfo.PriceAdjustMethod = adjustMethod; info.DeviationInfo.Slippage = slippage; info.DeviationInfo.MaxTry = maxTry; return(order); }
public void Load(byte[] bytes) { using (var stream = new MemoryStream(bytes)) using (var reader = new BinaryReader(stream)) { OpenClose = (OpenCloseType)reader.ReadByte(); HedgeFlag = (HedgeFlagType)reader.ReadByte(); Side = (OrderSide)reader.ReadByte(); DeviationMode = (OrderDeviationMode)reader.ReadByte(); FailedMethod = (OrderAdjustFailedMethod)reader.ReadByte(); ParentOrderId = reader.ReadInt32(); Market2Limit.LoadForm(reader); DeviationInfo.LoadForm(reader); } }
private static Order PriceDeviation(Order order, byte priceOffset, OrderDeviationMode mode, OrderPriceAdjustMethod adjustMethod = OrderPriceAdjustMethod.MatchPrice, byte slippage = 1, byte maxTry = 3) { return(Deviation(order, mode, priceOffset, OrderDeviationMethod.PriceAdjust, adjustMethod, slippage, maxTry)); }