public static OrderCondition Create(OrderConditionType type) { var result = type switch { OrderConditionType.Execution => new ExecutionCondition() as OrderCondition, OrderConditionType.Margin => new MarginCondition(), OrderConditionType.PercentChange => new PercentChangeCondition(), OrderConditionType.Price => new PriceCondition(), OrderConditionType.Time => new TimeCondition(), OrderConditionType.Volume => new VolumeCondition(), _ => throw new Exception("Invalid order condition") }; result.Type = type; return(result); }
public void UpdateCondition(OrderConditionType type) { if (type == OrderConditionType.LIMIT) { TIF = OrderTIFType.GFD; VolCondition = OrderVolType.ANYVOLUME; } else if (type == OrderConditionType.FAK) { TIF = OrderTIFType.IOC; VolCondition = OrderVolType.ANYVOLUME; } else if (type == OrderConditionType.FOK) { TIF = OrderTIFType.IOC; VolCondition = OrderVolType.ALLVOLUME; } }
public void readConditions() { if (serverVersion >= MinServerVer.PEGGED_TO_BENCHMARK) { int nConditions = eDecoder.ReadInt(); if (nConditions > 0) { for (int i = 0; i < nConditions; i++) { OrderConditionType orderConditionType = (OrderConditionType)eDecoder.ReadInt(); OrderCondition condition = OrderCondition.Create(orderConditionType); condition.Deserialize(eDecoder); order.Conditions.Add(condition); } order.ConditionsIgnoreRth = eDecoder.ReadBoolFromInt(); order.ConditionsCancelOrder = eDecoder.ReadBoolFromInt(); } } }
public static OrderCondition Create(OrderConditionType type) { OrderCondition rval = null; switch (type) { case OrderConditionType.Execution: rval = new ExecutionCondition(); break; case OrderConditionType.Margin: rval = new MarginCondition(); break; case OrderConditionType.PercentCange: rval = new PercentChangeCondition(); break; case OrderConditionType.Price: rval = new PriceCondition(); break; case OrderConditionType.Time: rval = new TimeCondition(); break; case OrderConditionType.Volume: rval = new VolumeCondition(); break; } if (rval != null) { rval.Type = type; } return(rval); }
public static OrderCondition Create(OrderConditionType type) { OrderCondition?rval = null; switch (type) { case OrderConditionType.Execution: rval = new ExecutionCondition(); break; case OrderConditionType.Margin: rval = new MarginCondition(); break; case OrderConditionType.PercentChange: rval = new PercentChangeCondition(); break; case OrderConditionType.Price: rval = new PriceCondition(); break; case OrderConditionType.Time: rval = new TimeCondition(); break; case OrderConditionType.Volume: rval = new VolumeCondition(); break; } if (rval != null) { rval.Type = type; } return(rval ?? throw new InvalidOperationException("Invalid OrderConditionType.")); }
public static OrderCondition Create(OrderConditionType type) { OrderCondition rval = null; switch (type) { case OrderConditionType.Execution: rval = new ExecutionCondition(); break; case OrderConditionType.Margin: rval = new MarginCondition(); break; case OrderConditionType.PercentCange: rval = new PercentChangeCondition(); break; case OrderConditionType.Price: rval = new PriceCondition(); break; case OrderConditionType.Time: rval = new TimeCondition(); break; case OrderConditionType.Volume: rval = new VolumeCondition(); break; } if (rval != null) rval.Type = type; return rval; }