public void EvaluateTest()
        {
            var originalHours = CurrentHours(_config);

            OptimizerAppDomainManager.GetResults(AppDomain.CurrentDomain).Add("key", new Dictionary <string, decimal>()
            {
                { "SharpeRatio", 123m }
            });

            //will not adapt on first result
            Assert.AreEqual(originalHours, CurrentHours(_config));
            _unit.Evaluate(Mock.Of <IChromosome>());
            Assert.AreEqual(originalHours, CurrentHours(_config));

            var fitness = _unit.Evaluate(Mock.Of <IChromosome>());

            var actualHours = CurrentHours(_config);

            //sharpe improved by 50%, period window should increase by 24 hours

            Assert.AreEqual(72, Math.Round(actualHours));

            actualHours = CurrentHours(_config);
            fitness     = _unit.Evaluate(Mock.Of <IChromosome>());
            actualHours = CurrentHours(_config);

            //50% again

            Assert.AreEqual(108, Math.Round(actualHours));
        }
        public void SetUp()
        {
            _config = new OptimizerConfiguration
            {
                StartDate = new DateTime(2001, 1, 2),

                EndDate = new DateTime(2001, 1, 3)
            };
            _unit = new Wrapper(_config, Mock.Of <IFitnessFilter>());
            OptimizerAppDomainManager.Initialize();
        }
예제 #3
0
 private Dictionary<string, Dictionary<string, decimal>> GetResults()
 {
     if (ScenarioContext.Current.Get<OptimizerConfiguration>().UseSharedAppDomain)
     {
         return SingleAppDomainManager.GetResults();
     }
     else
     {
         return OptimizerAppDomainManager.GetResults();
     }
 }
예제 #4
0
        public void WhenIOptimize()
        {
            if (!File.Exists(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "..\\..\\Optimization.Example.dll")))
            {
                File.Copy(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Optimization.Example.dll"), Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "..\\..\\Optimization.Example.dll"));
            }

            SpinWait.SpinUntil(() =>
            {
                try
                {
                    File.Create(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "trace.txt"));
                    return(true);
                }
                catch (Exception)
                {
                    return(false);
                }
            },
                               TimeSpan.FromSeconds(1));



            Config.Set("algorithm-location", "../Optimization.Example/bin/debug/Optimization.Example.dll");

            var config = ScenarioContext.Current.Get <OptimizerConfiguration>();

            if (config.UseSharedAppDomain)
            {
                SingleAppDomainManager.Initialize();
                config.AlgorithmTypeName = "ParameterizedSharedAppDomainAlgorithm";
            }
            else
            {
                OptimizerAppDomainManager.Initialize();
            }

            var manager = new MaximizerManager();

            manager.Initialize(config, new SharpeMaximizer(config, new FitnessFilter()));
            manager.Start();
        }