private void LoadOrderbooks(string csvFile) { mSymbolToOrderbook.Clear(); using (var reader = new StreamReader(csvFile)) using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) { csv.Configuration.HasHeaderRecord = true; var records = csv.GetRecords <dynamic>(); foreach (dynamic record in records) { MdOrder mdOrder = MdOrder.FromMdLine(record); if (!mSymbolToOrderbook.ContainsKey(mdOrder.Symbol)) { mSymbolToOrderbook[mdOrder.Symbol] = new Orderbook(); } if (mdOrder.Side == 'B') { mSymbolToOrderbook[mdOrder.Symbol].AddBid(mdOrder); } else if (mdOrder.Side == 'A') { mSymbolToOrderbook[mdOrder.Symbol].AddAsk(mdOrder); } } } }
public static MdOrder FromMdLine(dynamic line) { MdOrder order = new MdOrder(); order.Symbol = line.Stock; order.Side = line.Side[0]; order.Px = double.Parse(line.Px); order.Qty = int.Parse(line.Qty); order.PrioritySeq = int.Parse(line.PrioritySeq); return(order); }
public void AddAsk(MdOrder o) { mAsks.Add(o); }
public void AddBid(MdOrder o) { mBids.Add(o); }