Exemplo n.º 1
0
        protected override sealed void OnMarketData(MarketDataEventArgs e)
        {
            DateTime t;

            if (useMillisec)
            {
                ComputeTimeOffset(e.Time);
                t = DateTime.Now.AddMilliseconds(timeoffset);
            }
            else
            {
                t = e.Time;
            }

            if (!initBidAsk)
            {
                initBidAsk = (ask > bid);
            }

            if ((e.MarketDataType == MarketDataType.Last))
            {
                GMktDataTimeTicks = e.Time.Ticks;

                if (writeData && writeOK && writable && initBidAsk)
                {
                    writeOK  = fm.RecordTick(t, bid, ask, e.Price, (int)e.Volume);
                    firstRec = true;
                }

                UpdateBeginEndTime();

                if (disableTime || ((GMktDataTimeTicks >= BeginTimeTicks) && (GMktDataTimeTicks < EndTimeTicks)))
                {
                    tickQueue.Enqueue(new Gom.MarketDataType(t, Gom.Utils.GetIntTickType(bid, ask, e.Price), e.Price, (int)e.Volume));
                }
            }

            else if (e.MarketDataType == MarketDataType.Ask)
            {
                ask = e.Price;
            }

            else if (e.MarketDataType == MarketDataType.Bid)
            {
                bid = e.Price;
            }
        }