Ejemplo n.º 1
0
        public override void EmitAsk(Ask ask)
        {
            // Emit ask to BuySide strategy.
            base.EmitAsk(ask);

            System.Collections.Generic.LinkedListNode <OrderProcessor> processorNode = processors.First;

            // Send ask to order processors.
            while (processorNode != null)
            {
                OrderProcessor processor = processorNode.Value;
                processor.OnAsk(ask);
                processorNode = processorNode.Next;
            }
        }
Ejemplo n.º 2
0
        public override void EmitTrade(Trade trade)
        {
            // Emit trade to BuySide strategy.
            base.EmitTrade(trade);

            System.Collections.Generic.LinkedListNode <OrderProcessor> processorNode = processors.First;

            // Send trade to order processors.
            while (processorNode != null)
            {
                OrderProcessor processor = processorNode.Value;
                processor.OnTrade(trade);
                processorNode = processorNode.Next;
            }
        }
Ejemplo n.º 3
0
        public override void EmitBid(Bid bid)
        {
            // Emit bid to BuySide strategy.
            base.EmitBid(bid);

            System.Collections.Generic.LinkedListNode <OrderProcessor> processorNode = processors.First;

            // Send bid to order processors.
            while (processorNode != null)
            {
                OrderProcessor processor = processorNode.Value;
                processor.OnBid(bid);
                processorNode = processorNode.Next;
            }
        }
Ejemplo n.º 4
0
        protected override void OnExecutionReport(ExecutionReport report)
        {
            System.Collections.Generic.LinkedListNode <OrderProcessor> processorNode = processors.First;

            while (processorNode != null)
            {
                OrderProcessor processor = processorNode.Value;
                processor.OnExecutionReport(report);

                if (processor.IsDone)
                {
                    processors.Remove(processor);
                }

                processorNode = processorNode.Next;
            }
        }