Beispiel #1
0
        private RateSourceData GetRate_Bloomberg(int SecurityID, DateTime ValuationDate)
        {
            SqlCommand sqlCom = new SqlCommand("spOTCOptionPrice_GetRiskFreeRate_Bloomberg");

            sqlCom.CommandType = CommandType.StoredProcedure;
            sqlCom.Parameters.Add(new SqlParameter("@SecurityID", SecurityID));
            sqlCom.Parameters.Add(new SqlParameter("@PriceDate", ValuationDate));
            DataSet        ds  = db.FetchData(sqlCom);
            RateSourceData rsd = new RateSourceData();

            if (ds.Tables[0].Rows.Count != 0)
            {
                DataRow dr = ds.Tables[0].Rows[0];
                try {
                    rsd.Source              = InputSourceData.InputSource.Bloomberg;
                    rsd.Rate                = double.Parse(dr["MaturityRate"].ToString());
                    rsd.CaptureTime         = DateTime.ParseExact(dr["CaptureTime"].ToString(), "dd/MM/yyyy HH:mm:ss", null);
                    rsd.BBData_PreviousTerm = new BBData()
                    {
                        Ticker = dr["PreviousTicker"].ToString(), Field = "PX_YEST_CLOSE", Value = double.Parse(dr["PreviousRate"].ToString())
                    };
                    rsd.BBData_NextTerm = new BBData()
                    {
                        Ticker = dr["NextTicker"].ToString(), Field = "PX_YEST_CLOSE", Value = double.Parse(dr["NextRate"].ToString())
                    };
                } catch {
                    // Problem with data so don't return half a class, return as if nothing was obtained from db
                    rsd = new RateSourceData();
                }
            }
            return(rsd);
        }
        public void Parse_ThrowsRatesWereNotParsed_OnNullRateDetail_Test()
        {
            // Arrange
            var rateSourceData = new RateSourceData();

            // Assert
            Assert.Throws<RatesWereNotParsedException>(() => rateSourceData.Parse(Currency.RUB));
        }
        public void Parse_UnixTime_Test()
        {
            // Arrange
            var rateSourceData = new RateSourceData
            {
                Stamp = 0,
                RatesValues = new RateValuesData()
            };

            // Act
            var rate = rateSourceData.Parse(Currency.RUB);

            // Assert
            Assert.AreEqual(rate.Stamp.Date, new DateTime(1970, 1, 1, 0, 0, 0));
        }
        public double Parse_Currency_Test(Currency currency)
        {
            // Arrange
            var rateSourceData = new RateSourceData
            {
                RatesValues = new RateValuesData
                {
                    EUR = 1,
                    GBP = 2,
                    JPY = 3,
                    RUB = 4,
                    USD = 5,
                }
            };

            // Act
            var rate = rateSourceData.Parse(currency);

            // Assert
            return rate.Value;
        }
Beispiel #5
0
        private RateSourceData GetRate_ManualOverride(int SecurityID, DateTime ValuationDate)
        {
            SqlCommand sqlCom = new SqlCommand("spOTCOptionPrice_GetRiskFreeRate_Default");

            sqlCom.CommandType = CommandType.StoredProcedure;
            sqlCom.Parameters.Add(new SqlParameter("@SecurityID", SecurityID));
            DataSet        ds  = db.FetchData(sqlCom);
            RateSourceData rsd = new RateSourceData();

            if (ds.Tables[0].Rows.Count != 0)
            {
                DataRow dr = ds.Tables[0].Rows[0];

                //if the value is null ignore (i.e. is missing)
                if (dr["DefaultRiskFreeRate"] != DBNull.Value)
                {
                    rsd.Source      = InputSourceData.InputSource.Override;
                    rsd.Rate        = double.Parse(dr["DefaultRiskFreeRate"].ToString());
                    rsd.CaptureTime = DateTime.ParseExact(dr["CaptureTime"].ToString(), "dd/MM/yyyy HH:mm:ss", null);
                }
            }
            return(rsd);
        }