Beispiel #1
0
        private bool HandleQueueException(QueueException ex)
        {
            log.Notice("QueueException: " + ex.EntryType + " with " + count + " ticks so far.");
            switch (ex.EntryType)
            {
            case EventType.StartHistorical:
                symbolState = SymbolState.Historical;
                break;

            case EventType.EndHistorical:
                symbolState = SymbolState.None;
                break;

            case EventType.StartRealTime:
                symbolState = SymbolState.RealTime;
                break;

            case EventType.EndRealTime:
                symbolState = SymbolState.None;
                break;

            case EventType.StartBroker:
                brokerState = BrokerState.Connected;
                if (SyncTicks.Enabled)
                {
                    while (tickSync.SentSwtichBrokerState)
                    {
                        tickSync.ClearSwitchBrokerState("endbroker");
                    }
                }
                break;

            case EventType.EndBroker:
                brokerState = BrokerState.Disconnected;
                if (SyncTicks.Enabled)
                {
                    while (tickSync.SentSwtichBrokerState)
                    {
                        tickSync.ClearSwitchBrokerState("endbroker");
                    }
                }
                break;

            case EventType.Terminate:
                symbolState = SymbolState.None;
                return(true);

            case EventType.RequestPosition:
                symbolState = SymbolState.None;
                return(false);

            default:
                throw new ApplicationException("Unexpected QueueException: " + ex.EntryType);
            }
            return(false);
        }
Beispiel #2
0
 private void TryCompleteTick()
 {
     if (endOfTickData)
     {
         if (tickSync.SentSwtichBrokerState)
         {
             tickSync.ClearSwitchBrokerState("Finished.");
         }
         if (tickSync.SentOrderChange)
         {
             tickSync.RemoveOrderChange();
         }
     }
     if (!endOfTickData && tickSync.Completed)
     {
         if (verbose)
         {
             log.Verbose("TryCompleteTick() Next Tick");
         }
         tickSync.Clear();
     }
     else if (tickSync.OnlyProcessPhysicalOrders)
     {
         if (trace)
         {
             log.Trace("Process physical orders - " + tickSync);
         }
         FillSimulator.StartTick(nextTick);
         if (FillSimulator.IsChanged)
         {
             FillSimulator.ProcessOrders();
         }
         tickSync.RemoveProcessPhysicalOrders();
     }
     else if (tickSync.OnlyReprocessPhysicalOrders || FillSimulator.IsChanged)
     {
         if (trace)
         {
             log.Trace("Reprocess physical orders - " + tickSync);
         }
         if (FillSimulator.IsChanged)
         {
             FillSimulator.ProcessOrders();
         }
         if (tickSync.SentReprocessPhysicalOrders)
         {
             tickSync.ClearReprocessPhysicalOrders();
         }
     }
 }