コード例 #1
0
ファイル: XApiCom.cs プロジェクト: mlken/XAPI2
        private void OnRtnDepthMarketData_callback(object sender, [In] ref XAPI.DepthMarketDataNClass marketData)
        {
            DepthMarketDataNClass cls = new DepthMarketDataNClass();

            XAPI.DepthMarketDataNClass field = marketData;

            cls.TradingDay          = field.TradingDay;
            cls.ActionDay           = field.ActionDay;
            cls.UpdateTime          = field.UpdateTime;
            cls.UpdateMillisec      = field.UpdateMillisec;
            cls.Exchange            = (int)field.Exchange;
            cls.Symbol              = field.Symbol;
            cls.InstrumentID        = field.InstrumentID;
            cls.ExchangeID          = field.ExchangeID;
            cls.LastPrice           = field.LastPrice;
            cls.Volume              = field.Volume;
            cls.Turnover            = field.Turnover;
            cls.OpenInterest        = field.OpenInterest;
            cls.AveragePrice        = field.AveragePrice;
            cls.OpenPrice           = field.OpenPrice;
            cls.HighestPrice        = field.HighestPrice;
            cls.LowestPrice         = field.LowestPrice;
            cls.ClosePrice          = field.ClosePrice;
            cls.SettlementPrice     = field.SettlementPrice;
            cls.UpperLimitPrice     = field.UpperLimitPrice;
            cls.LowerLimitPrice     = field.LowerLimitPrice;
            cls.PreClosePrice       = field.PreClosePrice;
            cls.PreSettlementPrice  = field.PreSettlementPrice;
            cls.PreOpenInterest     = field.PreOpenInterest;
            cls.TradingPhase        = (int)field.TradingPhase;
            cls.TradingPhase_String = Enum <XAPI.TradingPhaseType> .ToString(field.TradingPhase);

            if (field.Bids != null && field.Bids.Length > 0)
            {
                cls.BidPrice1 = field.Bids[0].Price;
                cls.BidSize   = field.Bids[0].Size;
            }

            if (field.Asks != null && field.Asks.Length > 0)
            {
                cls.AskPrice1 = field.Asks[0].Price;
                cls.AskSize   = field.Asks[0].Size;
            }

            if (null == OnRtnDepthMarketData)
            {
                QueueData qd = new QueueData();
                qd.Type        = (int)ResponseType.OnRtnDepthMarketData;
                qd.Type_String = Enum <XAPI.ResponseType> .ToString(ResponseType.OnRtnDepthMarketData);

                qd.Sender = this;
                qd.Data1  = cls;

                MessageQueue.Enqueue(qd);
            }
            else
            {
                OnRtnDepthMarketData(this, cls);
            }
        }
コード例 #2
0
ファイル: XApiCom.cs プロジェクト: Strongc/XAPI2
        private void OnRtnDepthMarketData_callback(object sender, ref XAPI.DepthMarketDataNClass marketData)
        {
            DepthMarketDataNClass cls = new DepthMarketDataNClass();
            XAPI.DepthMarketDataNClass field = marketData;

            cls.TradingDay = field.TradingDay;
            cls.ActionDay = field.ActionDay;
            cls.UpdateTime = field.UpdateTime;
            cls.UpdateMillisec = field.UpdateMillisec;
            cls.Exchange = (int)field.Exchange;
            cls.Symbol = field.Symbol;
            cls.InstrumentID = field.InstrumentID;
            cls.ExchangeID = field.ExchangeID;
            cls.LastPrice = field.LastPrice;
            cls.Volume = field.Volume;
            cls.Turnover = field.Turnover;
            cls.OpenInterest = field.OpenInterest;
            cls.AveragePrice = field.AveragePrice;
            cls.OpenPrice = field.OpenPrice;
            cls.HighestPrice = field.HighestPrice;
            cls.LowestPrice = field.LowestPrice;
            cls.ClosePrice = field.ClosePrice;
            cls.SettlementPrice = field.SettlementPrice;
            cls.UpperLimitPrice = field.UpperLimitPrice;
            cls.LowerLimitPrice = field.LowerLimitPrice;
            cls.PreClosePrice = field.PreClosePrice;
            cls.PreSettlementPrice = field.PreSettlementPrice;
            cls.PreOpenInterest = field.PreOpenInterest;
            cls.TradingPhase = (int)field.TradingPhase;
            cls.TradingPhase_String = Enum<XAPI.TradingPhaseType>.ToString(field.TradingPhase);
            //cls.Bids = marketData.TradingDay;
            //cls.TradingDay = marketData.TradingDay;

            if (null == OnRtnDepthMarketData)
            {
                QueueData qd = new QueueData();
                qd.Type = (int)ResponeType.OnRtnDepthMarketData;
                qd.Type_String = Enum<XAPI.ResponeType>.ToString(ResponeType.OnRtnDepthMarketData);
                qd.Sender = this;
                qd.Data1 = cls;

                MessageQueue.Enqueue(qd);
            }
            else
            {
                OnRtnDepthMarketData(this, ref cls);
            }
        }