コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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));
            }
        }