예제 #1
0
        public QuotePolicy2QuotationDict GetQuotations(Guid instrumentId)
        {
            QuotePolicy2QuotationDict result = null;

            this.TryGetValue(instrumentId, out result);
            return(result);
        }
예제 #2
0
 internal bool TryGetValue(Guid instrumentId, out QuotePolicy2QuotationDict quotationList)
 {
     quotationList = null;
     for (int i = 0; i < _instrument2QuotationsDict.Count; i++)
     {
         var eachItem = _instrument2QuotationsDict[i];
         if (eachItem.Key.Equals(instrumentId))
         {
             quotationList = eachItem.Value;
             return(true);
         }
     }
     return(false);
 }
예제 #3
0
        internal bool TryGetQuotation(Guid instrumentId, IQuotePolicyProvider quotePolicyProvider, out Quotation quotation)
        {
            quotation = null;
            QuotePolicy2QuotationDict quotations = null;

            if (this.TryGetValue(instrumentId, out quotations))
            {
                quotation = quotePolicyProvider.Get <Quotation>(delegate(Guid id, out Quotation q)
                {
                    return(quotations.TryGetValue(id, out q));
                });
            }
            return(quotation != null);
        }
예제 #4
0
        private void Initialize(OverridedQ[] overridedQs)
        {
            _timeStamp = Market.MarketManager.Now;
            foreach (OverridedQ eachOverridedQuotation in overridedQs)
            {
                Quotation quotation = Quotation.Create(eachOverridedQuotation);
                if (quotation == null)
                {
                    continue;
                }
                QuotePolicy2QuotationDict quotationList;

                if (!this.TryGetValue(eachOverridedQuotation.InstrumentID, out quotationList))
                {
                    quotationList = new QuotePolicy2QuotationDict();
                    _instrument2QuotationsDict.Add(new KeyValuePair <Guid, QuotePolicy2QuotationDict>(eachOverridedQuotation.InstrumentID, quotationList));
                }
                if (quotationList.ContainsKey(eachOverridedQuotation.QuotePolicyID))
                {
                    throw new ApplicationException("Can't have more than one price for one instrument + quotepolicy in a batch of quotation");
                }
                quotationList.Add(eachOverridedQuotation.QuotePolicyID, quotation);
            }
        }