示例#1
0
        public bool Process(SymbolData Data)
        {
            bool ret = false;

            if (mBeginTime < mEndTime && mBeginTime < 150000000 && mEndTime > 93000000)
            {
                for (int i = 0; i < Data.mTransaction.Count; ++i)
                {
                    if (Data.mTransaction[i].TradingTime > mEndTime)
                    {
                        break;
                    }

                    if (Data.mTransaction[i].TradingTime > mBeginTime)
                    {
                        ConversionTransactionData(Data.mTransaction[i]);
                    }
                }

                StatisticsData();

                ret = true;
            }

            return(ret);
        }
示例#2
0
 public static void InitDataHubSymbolList(List <int> SymbolList)
 {
     mLock.Lock();
     foreach (var ele in SymbolList)
     {
         mDatas[ele] = new SymbolData();
     }
     mLock.Unlock();
 }
示例#3
0
        public static void PushQuotationDataInHub(int Symbol, QuotationData Quotation)
        {
            SymbolData CurData = mDatas[Symbol];

            CurData.mLock.Lock();

            CurData.mBase.Copy(Quotation.Base);
            CurData.mCrossQuotes.Copy(Quotation.CrossQuotes);

            StatisticsStatus Statistics = new StatisticsStatus();

            Statistics.Copy(Quotation.Statistics);
            CurData.mStatistics.Add(Statistics);

            CurData.mLock.Unlock();
        }
示例#4
0
        public static void PushTransactionDataInHub(int Symbol, List <TransactionData> Transaction, bool Clear)
        {
            SymbolData CurData = mDatas[Symbol];

            CurData.mLock.Lock();
            if (Clear)
            {
                CurData.mTransaction.Clear();
            }

            foreach (var ele in Transaction)
            {
                CurData.mTransaction.Add(ele);
            }

            CurData.mLock.Unlock();
        }
示例#5
0
        public static bool SubmitProcesser(int Symbol, IDataProcesser Processer)
        {
            bool ret = false;

            if (mDatas.ContainsKey(Symbol))
            {
                SymbolData CurData = mDatas[Symbol];

                CurData.mLock.Lock();

                Processer.Process(CurData);

                CurData.mLock.Unlock();

                ret = true;
            }

            return(ret);
        }
示例#6
0
        public bool Process(SymbolData Data)
        {
            StatisticData(Data.mTransaction);

            return(true);
        }