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); }
public static void InitDataHubSymbolList(List <int> SymbolList) { mLock.Lock(); foreach (var ele in SymbolList) { mDatas[ele] = new SymbolData(); } mLock.Unlock(); }
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(); }
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(); }
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); }
public bool Process(SymbolData Data) { StatisticData(Data.mTransaction); return(true); }