Exemple #1
0
        virtual protected void AddQuoteToDictionary(IMarketInput imi, double value)
        {
            var data = GetData();

            data[imi] = value;
            //_Pairs.Add(imi);
            SetData(data);
        }
Exemple #2
0
        public double GetQuote(IMarketInput mi)
        {
            var miList = _FXData.Where(x => x.Key.Asset1 == mi.Asset1 && x.Key.Ccy2 == mi.Ccy2)
                         .Select(x => x.Key);

            if (miList.Count() == 1)
            {
                return(_FXData[miList.First()]);
            }
            else
            {
                throw new Exception("ERROR: Asset Market");
            }
        }
Exemple #3
0
        public double GetQuote(IMarketInput ccyPair)
        {
            if (ccyPair.IsIdentity)
            {
                return(1.0);
            }

            var data = GetData();

            // Find exact CcyPair
            var presentData = data.Where(x => x.Key.IsEquivalent(ccyPair))
                              .Select(x => (CurrencyPair)x.Key)
                              .ToList();

            if (presentData.Count() == 1)
            {
                if (presentData[0].IsEqual(ccyPair))
                {
                    return(data[presentData[0]]);
                }
                else
                {
                    return(1 / data[presentData[0]]);
                }
            }

            // Find triangle
            var ccyPairData = _Data.Where(x => x.Key.Contains(ccyPair.Ccy1) || x.Key.Contains(ccyPair.Ccy2));
            var ccyData     = ccyPairData.Select(x => x.Key.Ccy1 == ccyPair.Ccy1 || x.Key.Ccy1 == ccyPair.Ccy2 ? x.Key.Ccy2 : x.Key.Ccy1)
                              .ToList();

            try
            {
                return(Aux_GetQuote(ccyPair.Ccy1, ccyPair.Ccy2, new List <ICcyAsset> {
                }));
            }
            catch (Exception)
            {
                throw new Exception($"Issue with Data for {ccyPair.ToString()}");
            }
        }
Exemple #4
0
        public void AddQuote(IMarketInput imi, double value)
        {
            var data        = GetData();
            var presentData = data.Where(x => x.Key.IsEquivalent(imi)).Select(x => x.Key).ToList();

            if (presentData.Count() == 1)
            {
                if (presentData[0].IsEqual(imi))
                {
                    data[presentData[0]] = value;
                }
                else
                {
                    data[presentData[0]] = 1 / value;
                }
                SetData(data);
            }
            else if (presentData.Count() == 0)
            {
                AddQuoteToDictionary(imi, value);
            }
        }