Ejemplo n.º 1
0
 /// <summary>
 /// Создаёт объект на основе
 /// </summary>
 public CGateOrderBookUpdate(CgmOrdersAggr rowUpdate, string instrumentCode)
 {
     IsinId         = rowUpdate.IsinId;
     InstrumentCode = instrumentCode;
     Type           = CGateOrderBookUpdateType.RowUpdate;
     ReplId         = rowUpdate.ReplId;
     ReplAct        = rowUpdate.ReplAct;
     Price          = (decimal)rowUpdate.Price;
     Quantity       = rowUpdate.Volume;
     ReplRev        = rowUpdate.ReplRev;
     Operation      = rowUpdate.Dir == 1 ? OrderOperation.Buy : OrderOperation.Sell;
 }
Ejemplo n.º 2
0
        public override void Handle(CgmOrdersAggr record)
        {
            var code = instrumentResolver.GetShortIsinByIsinId(record.IsinId);

            if (string.IsNullOrEmpty(code))
            {
                EnqueuePendingMessage(record);
                return;
            }

            futOrderBookEmitter.Handle(record);
            optOrderBookEmitter.Handle(record);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Обработчик сообщения cgate об обновлении строки стакана
        /// </summary>
        public void Handle(CgmOrdersAggr record)
        {
            if (record.StreamName != streamName)
            {
                return;
            }

            var code = instrumentResolver.GetShortIsinByIsinId(record.IsinId);

            if (string.IsNullOrEmpty(code))
            {
                throw new ArgumentException($"Can't resolve instrument code for isinId={record.IsinId}");
            }

            orderBooksUdatesQueue.Enqueue(new CGateOrderBookUpdate(record, code));
        }
Ejemplo n.º 4
0
 public void Handle(CgmOrdersAggr message)
 {
 }