Пример #1
0
        private decimal CalculateVariance()
        {
            decimal        sumSquared      = 0;
            int            yearSearchLimit = 2006;
            List <decimal> annualReturns   = new List <decimal>();

            for (int i = yearSearchLimit; i < DateTime.UtcNow.Year; i++)
            {
                IEnumerable <HistoricalPrice> prices = YahooAPICalls.GetStockHistoricalPrices(Ticker, new DateTime(i, 1, 1), new DateTime(i, 12, 31));
                if (prices == null)
                {
                    yearSearchLimit += 1;
                    continue;
                }
                decimal yearStart = prices
                                    .Single(p => p.Date == prices
                                            .Select(pp => pp.Date).Min()).Price;
                decimal yearEnd = prices
                                  .Single(p => p.Date == prices
                                          .Select(pp => pp.Date).Max()).Price;
                decimal annualReturn = (yearEnd - yearStart) / yearStart;
                annualReturns.Add(annualReturn);
            }
            int     numYears = DateTime.Now.Year - yearSearchLimit;
            decimal prob     = numYears / 100m;

            foreach (decimal annualReturn in annualReturns)
            {
                decimal squared = Convert.ToDecimal(Math.Pow(Convert.ToDouble(ExpectedReturn - annualReturn), 2)) * prob;
                sumSquared += squared;
            }
            return(sumSquared / numYears);
        }
Пример #2
0
        protected decimal CalculateExpectedReturn()
        {
            decimal beta           = YahooAPICalls.GetStockBeta(Ticker);
            decimal expectedReturn = MathExpectedReturn(beta);

            return(expectedReturn);
        }
Пример #3
0
        private void UpdateDailyReturns1Year()
        {
            IEnumerable <HistoricalPrice> priceData = YahooAPICalls
                                                      .GetStockHistoricalPrices
                                                          (Ticker, DateTime.UtcNow.AddYears(-1), DateTime.UtcNow);

            DailyReturns1Year = priceData;
        }
Пример #4
0
 private static void CheckIfTickerExists(Stock stock, ApplicationDbContext context)
 {
     try
     {
         YahooAPICalls.GetCurrentStockPrice(stock.Symbol);
     }
     catch (Exception ex)
     {
         context.Remove(stock);
     }
 }
Пример #5
0
 private decimal UpdateCurrentPrice()
 {
     return(YahooAPICalls.GetCurrentStockPrice(Ticker));
 }