示例#1
0
        private static void Execute(Options options)
        {
            var model  = new BinomialTree(options.S0, options.NbTimes, options.T, options.Sigma, options.R, options.NbSimus);
            var QSpace = options.CreateQSpace();

            var distrCalc = new DistributionCalculator(model, QSpace, options.Q0, -0.15, +0.15, 5, 0.05, 0.5, 5);

            distrCalc.Calculate();

            //Func<double, double> drift = t => 0.05 - .02 * t + .03 * Math.Sin(4.0 * Math.PI * t);
            //var model = new BinomialTreeWithDrift(options.S0, options.NbTimes, options.T,
            //options.Sigma, options.R, options.NbSimus, drift);

            //Func<double, double> deterministicPath = t => 2.0 - .5 * t + .25 * Math.Sin(4.0 * Math.PI * t);
            //var model = new DeterministicPath(deterministicPath, 100, 1.0);

            /*
             * model.Simulate();
             *
             * var QSpace = options.CreateQSpace();
             *
             * var optimalController = new OptimalController(model, QSpace);
             * optimalController.Control();
             *
             * var qSteps = optimalController.RollOut(0, options.Q0);
             *
             * FileWriter.WriteToFile(qSteps, "q_Steps.csv");
             */
        }
示例#2
0
        public void calculateDistribution_NumberOfSeriesMatchesTheFibonacciSequence_NoDummyRecordsShouldBeRequired()
        {
            var distributionCalculator = new DistributionCalculator(8, 2);
            var expectedDistribution   = new OptimalDistribution(new [] { 5, 3 }, new [] { 0, 0 });

            var actualDistribution = distributionCalculator.GetOptimalDistribution();

            CollectionAssert.AreEqual(expectedDistribution.RecordDistribution, actualDistribution.RecordDistribution);
            CollectionAssert.AreEqual(expectedDistribution.DummyRecordDistribution, actualDistribution.DummyRecordDistribution);
        }
示例#3
0
        public void calculateDistribution_NumberOfSeriesDoesntMatchFibonacciSequence_DummyRecordsShouldBeRequired()
        {
            var distributionCalculator = new DistributionCalculator(10, 2);
            var expectedDistribution   = new OptimalDistribution(new [] { 6, 4 }, new [] { 2, 1 });

            var actualDistribution = distributionCalculator.GetOptimalDistribution();

            CollectionAssert.AreEqual(expectedDistribution.RecordDistribution, actualDistribution.RecordDistribution);
            CollectionAssert.AreEqual(expectedDistribution.DummyRecordDistribution, actualDistribution.DummyRecordDistribution);
        }