Exemplo n.º 1
0
        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);
                        }
                    }
                }
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
 public void AddAsk(MdOrder o)
 {
     mAsks.Add(o);
 }
Exemplo n.º 4
0
 public void AddBid(MdOrder o)
 {
     mBids.Add(o);
 }