private void Test() { var secs = FileReaders.ReadSecurities(@"C:\A\Experiments\Exp\securities.csv"); var covs = FileReaders.ReadCorrelations(@"C:\A\Experiments\Exp\correlations.csv", secs); var matrix = Portfolios.ComputeCovariances(covs); using (new ReportTime()) { Dictionary <Security, double> weights; var variance = Portfolios.ComputePortfolioMinimumVariance(matrix, 9d, out weights, true); Console.WriteLine(weights.Aggregate("Weights:" + Environment.NewLine, (str, pair) => str + (Environment.NewLine + pair.Key.Symbol + "," + pair.Value))); Console.WriteLine("Variance: " + variance); } }
public void TestVarianceMatrix() { var secs = FileReaders.ReadSecurities(@"securities.csv"); var covs = FileReaders.ReadCorrelations(@"correlations.csv", secs); using (ReportTime.Start()) { Dictionary <Security, double> weights; var expectedReturn = 9d; var matrix = Portfolios.ComputeCovariances(covs); var variance = Portfolios.ComputePortfolioMinimumVariance(matrix, expectedReturn, out weights); Console.WriteLine(weights.Aggregate("Weights:" + Environment.NewLine, (str, pair) => str + (Environment.NewLine + pair.Key.Symbol + "," + pair.Value))); Console.WriteLine("ExpectedReturn: " + expectedReturn); Console.WriteLine("Variance: " + variance); Console.WriteLine("Sharpe: " + expectedReturn / Math.Sqrt(variance)); } }