示例#1
0
        void MBTQUOTELib.IMbtQuotesNotify.OnTSData(ref TSRECORD pRec)
        {
            TickImpl k = new TickImpl();

            k.symbol = pRec.bstrSymbol;
            enumTickType tt = (enumTickType)pRec.lType;

            switch (tt)
            {
            case enumTickType.ttAskTick:
                k.ask = (decimal)pRec.dPrice;
                k.oe  = pRec.bstrExchange;
                k.os  = pRec.lSize;
                break;

            case enumTickType.ttBidTick:
                k.bid = (decimal)pRec.dPrice;
                k.be  = pRec.bstrExchange;
                k.bs  = pRec.lSize;
                break;

            case enumTickType.ttTradeTick:
                k.trade = (decimal)pRec.dPrice;
                k.ex    = pRec.bstrExchange;
                k.size  = pRec.lSize;
                break;
            }
            tl.newTick(k);
        }
示例#2
0
 void MBTQUOTELib.IMbtQuotesNotify.OnTSData(ref TSRECORD pRec)
 {
     lock ( tsDataLocker) {
         try {
             ProcessTimeAndSales(ref pRec);
         } catch (Exception ex) {
             log.Notice(ex.ToString());
         }
     }
 }
示例#3
0
        public void ProcessTimeAndSales(ref TSRECORD pTimeAndSales)
        {
            if (trace)
            {
                log.Trace("TimeAndSale: " +
                          pTimeAndSales.bstrExchange + ", " +
                          pTimeAndSales.bstrSymbol + ", " +
                          pTimeAndSales.cond + ", " +
                          pTimeAndSales.dPrice + ", " +
                          pTimeAndSales.lSize + ", " +
                          pTimeAndSales.lType + ", " +
                          pTimeAndSales.status + ", " +
                          pTimeAndSales.tick + ", " +
                          pTimeAndSales.type + ", " +
                          pTimeAndSales.UTCDateTime);
            }
            int InsideMarketHours = 30030;

            if (pTimeAndSales.status == enumTickStatus.tsNormal &&
                pTimeAndSales.type == enumTickType.ttTradeTick &&
                pTimeAndSales.cond == enumTickCondition.tcTrade_RegularSale &&
                pTimeAndSales.lType == InsideMarketHours)
            {
                CreateTick();
                lastAsk = lastBid = pTimeAndSales.dPrice;
                CheckSignalSync();
                tick.SetTrade(pTimeAndSales.dPrice, pTimeAndSales.lSize);
                if (Symbol.QuoteType == QuoteType.Level1)
                {
                    TryAddLevel1();
                }
                else if (Symbol.QuoteType == QuoteType.Level2)
                {
                    TryAddLevel2();
                }
                SendTick();
            }
        }
示例#4
0
 void MBTQUOTELib.IMbtQuotesNotify.OnTSData(ref TSRECORD pRec)
 {
     TickImpl k = new TickImpl();
     k.symbol = pRec.bstrSymbol;
     enumTickType tt = (enumTickType)pRec.lType;
     switch (tt)
     {
         case enumTickType.ttAskTick:
             k.ask = (decimal)pRec.dPrice;
             k.oe = pRec.bstrExchange;
             k.os = pRec.lSize;
             break;
         case enumTickType.ttBidTick:
             k.bid = (decimal)pRec.dPrice;
             k.be = pRec.bstrExchange;
             k.bs= pRec.lSize;
             break;
         case enumTickType.ttTradeTick:
             k.trade = (decimal)pRec.dPrice;
             k.ex = pRec.bstrExchange;
             k.size= pRec.lSize;
             break;
     }
     tl.newTick(k);
 }
示例#5
0
		void IMbtQuotesNotify.OnTSData      (ref TSRECORD data)      { }
 void IMbtQuotesNotify.OnTSData(ref TSRECORD pRec)
 {
     throw new NotImplementedException();
 }
 void IMbtQuotesNotify.OnTSData(ref TSRECORD pRec)
 {
     throw new NotImplementedException();
 }