private void Calculate_Click(object sender, RoutedEventArgs e) { try { var repository = GetDataProvider(); var maintable = repository.GetMainTable(); var values = new Dictionary <string, double[]>(); foreach (var item in maintable) { var stockValues = repository.Get(item.Symbol, dtFirst.GetSelectedValue(), dtLast.GetSelectedValue()); values.Add(item.Symbol, stockValues.Select(i => (double)i.Price).ToArray()); } var rc = new RiskCalculation(values, index.Text, tradeVolume.GetDouble(), risk.GetDouble(), commission.GetDouble()); rc.Initialize(); FillDataGrid(rc.RiskParameters); } catch (Exception ex) { this.Display(ex.Message); } }
public void InitializeTest() { var historicalPrices = CsvUtils.ReadAllDataFrom(HISTORICAL_PRICES_PATH, 4, false); string indexSymbol = "SP500"; Assert.AreEqual(true, historicalPrices.ContainsKey(indexSymbol)); RiskCalculation rc = new RiskCalculation(historicalPrices, indexSymbol, 100000.00, 0.5, 0.15); rc.Initialize(0); Assert.AreEqual(21, rc.RiskParameters.Count); RiskParameters jpm = rc.RiskParameters["JPM"]; Assert.AreEqual(70.8198, jpm.Regression.Beta, 0.0001); Assert.AreEqual(0.8506, jpm.Regression.R, 0.0001); Assert.AreEqual(0.0094, jpm.Weight, 0.0001); }