Пример #1
0
        public void ProcessLevel2(LEVEL2RECORD pRec)
        {
            switch (pRec.side)
            {
            case enumMarketSide.msAsk:
                level2Asks.Process(pRec);
                break;

            case enumMarketSide.msBid:
                level2Bids.Process(pRec);
                break;

            default:
                throw new ApplicationException("Invalid Level II Side");
            }
            lastBid = level2Bids.LastPrice;
            lastAsk = level2Asks.LastPrice;
            CheckSignalSync();
            if (Environment.TickCount > lastChangeTime + 30)
            {
                if (level2Bids.HasChanged || level2Asks.HasChanged)
                {
                    LogLevel2Change(false, TradeSide.Unknown, 0, 0);
                }
            }
        }
Пример #2
0
 void MBTQUOTELib.IMbtQuotesNotify.OnLevel2Data(ref LEVEL2RECORD pRec)
 {
     lock ( level2Locker) {
         try {
             if (pRec.dPrice < 100000)
             {
                 ProcessLevel2(pRec);
             }
         } catch (Exception e) {
             log.Notice(e.ToString());
         }
     }
 }
Пример #3
0
 void MBTQUOTELib.IMbtQuotesNotify.OnLevel2Data(ref LEVEL2RECORD pRec)
 {
 }
Пример #4
0
 /// <summary>
 /// Processing Level2 data requires tracking the actual current best ask and bid. That's on the TODO
 /// Currently using Level1 data from OnQuoteData
 /// </summary>
 /// <param name="pRec"></param>
 void MBTQUOTELib.IMbtQuotesNotify.OnLevel2Data(ref LEVEL2RECORD pRec)
 {
     TickImpl k = new TickImpl(pRec.bstrSymbol);
     k.ex = pRec.bstrSource;
     k.time = Util.DT2FT(pRec.UTCTime);
     k.date = Util.ToTLDate(DateTime.UtcNow.Date);
     enumMarketSide ems = (enumMarketSide)pRec.side;
     switch (ems)
     {
         case enumMarketSide.msAsk:
             k.ask = (decimal)pRec.dPrice;
             k.oe = pRec.bstrSource;
             k.os = k.AskSize = pRec.lSize;
             k.trade = k.ask;
             k.size = k.AskSize;
             break;
         case enumMarketSide.msBid:
             k.bid = (decimal)pRec.dPrice;
             k.be = pRec.bstrSource;
             k.bs = k.BidSize = pRec.lSize;
             k.trade = k.bid;
             k.size = k.BidSize;
             break;
     }
     SendNewTick(k);
 }
Пример #5
0
 void MBTQUOTELib.IMbtQuotesNotify.OnLevel2Data(ref LEVEL2RECORD pRec)
 {
 }
Пример #6
0
		void IMbtQuotesNotify.OnLevel2Data  (ref LEVEL2RECORD data)  { }
 void IMbtQuotesNotify.OnLevel2Data(ref LEVEL2RECORD pRec)
 {
     throw new NotImplementedException();
 }
Пример #8
0
 void IMbtQuotesNotify.OnLevel2Data(ref LEVEL2RECORD pRec)
 {
     throw new NotImplementedException();
 }