/// <summary> /// LimitOrderBook constructor /// </summary> /// <param name="symbol">Security symbol</param> /// <param name="exchange">Security exchange</param> public LimitOrderBook(string symbol, string exchange) { Symbol = symbol; Exchange = exchange; Bid = new LimitOrderList(symbol, MarketSide.Bid); Ask = new LimitOrderList(symbol, MarketSide.Ask); }
/// <summary> /// Submit Spark.Event depth update event (thread-safe) /// </summary> /// <param name="eventItem">Spark event</param> public void SubmitEvent(Spark.Event eventItem) { LimitOrderList list = (ApiFunctions.GetMarketSide(eventItem.Flags) == MarketSide.Bid) ? Bid : Ask; lock (_lock) { list.SubmitEvent(eventItem); } }
/// <summary> /// Returns a discrete clone of limit order list /// </summary> public LimitOrderList Clone() { LimitOrderList result = new LimitOrderList(Symbol, Side); foreach (LimitOrder orderItem in this) { result.Add(orderItem.Clone()); } return(result); }