コード例 #1
0
        private void RunReceive(MarketTickData tickData)
        {
            try
            {
                m_currentTickIndex++;
                m_TickDatas.TryAdd(m_currentTickIndex, tickData);


                TickDataUpdateType tickDataUpdateType = GetUpdateType(tickData);
                if (tickDataUpdateType.HasFlag(TickDataUpdateType.Ask))
                {
                    m_TickDataHandlers[TickDataUpdateType.Ask].Add(tickData.Ask);
                    m_TickDataHandlers[TickDataUpdateType.AskQty].Add(tickData.AskQty);
                }
                if (tickDataUpdateType.HasFlag(TickDataUpdateType.Bid))
                {
                    m_TickDataHandlers[TickDataUpdateType.Bid].Add(tickData.Bid);
                    m_TickDataHandlers[TickDataUpdateType.BidQty].Add(tickData.BidQty);
                }
                if (tickDataUpdateType.HasFlag(TickDataUpdateType.SettlementPrice))
                {
                    m_TickDataHandlers[TickDataUpdateType.SettlementPrice].Add(tickData.SettlementPrice);
                    m_TickDataHandlers[TickDataUpdateType.SettlementQty].Add(tickData.SettlementQty);
                }

                if (OnRealTimeTickDataUpdate != null)
                {
                    OnRealTimeTickDataUpdate.Invoke("realtimetickdatahandler", tickData);
                }

                if (m_PreviousTickData == null)
                {
                    m_PreviousTickData = tickData;
                }

                if (tickData.DataDate != m_PreviousTickData.DataDate)
                //change of date
                {
                    if (OnRealTimeTickDataDateChange != null)
                    {
                        OnRealTimeTickDataDateChange.Invoke("realtimetickdatahandler", m_PreviousTickData.DataDate,
                                                            tickData.DataDate);
                    }
                }

                m_PreviousTickData = tickData;    //set the prev tick data from the current
            }
            catch (Exception ex)
            {
            }
        }
コード例 #2
0
        private TickDataUpdateType GetUpdateType(MarketTickData tickData)
        {
            TickDataUpdateType tickDataUpdateType = TickDataUpdateType.None;

            if (tickData.Ask > 0 && tickData.Ask < 2000000)
            {
                tickDataUpdateType = TickDataUpdateType.Ask | TickDataUpdateType.AskQty;
            }

            if (tickData.Bid > 0 && tickData.Bid < 2000000)
            {
                tickDataUpdateType = tickDataUpdateType | TickDataUpdateType.Bid | TickDataUpdateType.BidQty;
            }

            if (tickData.SettlementPrice > 0 && tickData.SettlementPrice < 2000000)
            {
                tickDataUpdateType = tickDataUpdateType | TickDataUpdateType.SettlementPrice | TickDataUpdateType.SettlementQty;
            }

            return(tickDataUpdateType);
        }
コード例 #3
0
 private double GetTickData(TickDataUpdateType dataUpdateType, int index)
 {
     return(m_TickDataHandlers[dataUpdateType].TickData(index));
 }