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); }
protected decimal CalculateExpectedReturn() { decimal beta = YahooAPICalls.GetStockBeta(Ticker); decimal expectedReturn = MathExpectedReturn(beta); return(expectedReturn); }
private void UpdateDailyReturns1Year() { IEnumerable <HistoricalPrice> priceData = YahooAPICalls .GetStockHistoricalPrices (Ticker, DateTime.UtcNow.AddYears(-1), DateTime.UtcNow); DailyReturns1Year = priceData; }
private static void CheckIfTickerExists(Stock stock, ApplicationDbContext context) { try { YahooAPICalls.GetCurrentStockPrice(stock.Symbol); } catch (Exception ex) { context.Remove(stock); } }
private decimal UpdateCurrentPrice() { return(YahooAPICalls.GetCurrentStockPrice(Ticker)); }