private void BtnCalcRiskClick(object sender, EventArgs e) { if (tickerSigmas == null || tickerSigmas.Count == 0) return; // считать таблицу корреляций var lines = rtbCorr.Text.Split( new[] {Environment.NewLine, "\n"}, StringSplitOptions.RemoveEmptyEntries); if (lines.Length < (portfolio.Count + 1)) return; var tickers = lines[0].Split( new[] { (char)9, ' ' }, StringSplitOptions.RemoveEmptyEntries); if (tickers.Length != portfolio.Count) return; var curM = new double[tickers.Length][]; for (var i = 1; i < lines.Length; i++) { var values = lines[i].ToDoubleArrayUniform(); if (values.Length != tickers.Length) return; curM[i - 1] = values; } // моделировать var dlg = new RiskCalculationPopupForm(portfolio, curM, testSettings, tickerSigmas); if (dlg.ShowDialog() != DialogResult.OK) return; calculatedPercentiles = dlg.riskPercentiles; if (calculatedPercentiles == null || calculatedPercentiles.Length == 0) return; // заполнить список перцентилей cbPercentiles.Items.Clear(); foreach (var p in testSettings.percentiles) { cbPercentiles.Items.Add(p.ToString("f1", CultureProvider.Common)); } for (var i = 0; i < testSettings.percentiles.Count; i++) cbPercentiles[i] = true; // перейти на страницу графика tabControl.SelectedTab = tabPageChart; btnDrawChart.Focus(); }
private void BtnCalcRiskClick(object sender, EventArgs e) { if (tickerSigmas == null || tickerSigmas.Count == 0) { return; } // считать таблицу корреляций var lines = rtbCorr.Text.Split( new[] { Environment.NewLine, "\n" }, StringSplitOptions.RemoveEmptyEntries); if (lines.Length < (portfolio.Count + 1)) { return; } var tickers = lines[0].Split( new[] { (char)9, ' ' }, StringSplitOptions.RemoveEmptyEntries); if (tickers.Length != portfolio.Count) { return; } var curM = new double[tickers.Length][]; for (var i = 1; i < lines.Length; i++) { var values = lines[i].ToDoubleArrayUniform(); if (values.Length != tickers.Length) { return; } curM[i - 1] = values; } // моделировать var dlg = new RiskCalculationPopupForm(portfolio, curM, testSettings, tickerSigmas); if (dlg.ShowDialog() != DialogResult.OK) { return; } calculatedPercentiles = dlg.riskPercentiles; if (calculatedPercentiles == null || calculatedPercentiles.Length == 0) { return; } // заполнить список перцентилей cbPercentiles.Items.Clear(); foreach (var p in testSettings.percentiles) { cbPercentiles.Items.Add(p.ToString("f1", CultureProvider.Common)); } for (var i = 0; i < testSettings.percentiles.Count; i++) { cbPercentiles[i] = true; } // перейти на страницу графика tabControl.SelectedTab = tabPageChart; btnDrawChart.Focus(); }