Exemple #1
0
        public Carteira SingleRunValidaSolution(string name = "Single Run Validate")
        {
            //gpRunner.SingleRun();
            TradeSystem ts       = solutionToTest.tradeSystem;
            int         loops    = configController.config.CountValidationLoops;
            Carteira    carteira = null;
            Estatistica stat     = null;

            for (int i = 0; i < loops; i++)
            {
                carteira = configController.RunSingle(loopCount, ts, name, backend.Consts.TIPO_CARGA_ATIVOS.VALIDA_CANDIDATO);
                if (stat != null)
                {
                    stat.MergeWith(carteira.estatistica);
                }
                else
                {
                    stat = carteira.estatistica;
                }
                loopCount++;
            }
            CandidatoManager cm = CandidatoManager.LoadSaved(configController.config.tipoPeriodo);

            cm.AddTradeSystem(ts, stat, configController.config.tipoPeriodo);
            return(carteira);
        }
Exemple #2
0
        private void LoadCandidatos()
        {
            string path = System.AppDomain.CurrentDomain.BaseDirectory;

            path             = path.Replace("FrontTester.frontend", "Backtester");
            candidatoManager = CandidatoManager.LoadSaved(configController.config.tipoPeriodo, path);
            for (int i = 0; i < candidatoManager.ranking.Count; i++)
            {
                CandidatoData data = candidatoManager.ranking[i];
                frmFront.AddItem("cbTradeSystem", data);
                frmFront.AddItem("cbTradeSystemEmUso", data);
            }
        }
Exemple #3
0
        public void TestValidaCandidato()
        {
            MockReferView    rv = new MockReferView();
            ConfigController configController = new ConfigController(rv);

            GeneticProgrammingController gpc = new GeneticProgrammingController(rv, configController);

            gpc.gpRunner.gpConfig.poolSize = 2;
            gpc.InitPool();

            gpc.solutionToTest             = new GPSolutionProxy();
            gpc.solutionToTest.tradeSystem = new TradeSystem(configController.config);
            Assert.IsNotNull(gpc.solutionToTest.tradeSystem);
            Carteira carteira = gpc.SingleRunValidaSolution("teste Validation");

            Assert.IsTrue(carteira.estatistica.capitalFinal != carteira.estatistica.capitalInicial);

            Assert.IsNotNull(carteira);
            Assert.IsTrue(carteira.posicoesAbertas.Count == 0);
            Assert.IsTrue(carteira.posicoesFechadas.Count > 0);

            Assert.IsTrue(configController.facadeValidation.dh.ativos.Count > 0);

            //adicionar o resultado da carteira em algum objeto persistido, ordenando pelo resultado final
            CandidatoManager cm  = CandidatoManager.LoadSaved(configController.config.tipoPeriodo);
            CandidatoManager cm2 = CandidatoManager.LoadSaved(configController.config.tipoPeriodo);

            Assert.IsTrue(cm == cm2);

            Estatistica stat = new Estatistica(10000);

            CandidatoManager cmTest = new CandidatoManager();
            TradeSystem      ts1    = new TradeSystem(configController.config);
            TradeSystem      ts2    = new TradeSystem(configController.config);
            TradeSystem      ts3    = new TradeSystem(configController.config);

            stat.capitalFinal = 1000;
            cmTest.AddTradeSystem(ts1, stat, configController.config.tipoPeriodo);
            Assert.IsTrue(cmTest.GetRanking(ts1) == 0);
            stat.capitalFinal = 2000;
            cmTest.AddTradeSystem(ts2, stat, configController.config.tipoPeriodo);
            Assert.IsTrue(cmTest.GetRanking(ts1) == 1);
            Assert.IsTrue(cmTest.GetRanking(ts2) == 0);
            stat.capitalFinal = 3000;
            cmTest.AddTradeSystem(ts3, stat, configController.config.tipoPeriodo);
            Assert.IsTrue(cmTest.GetRanking(ts1) == 2);
            Assert.IsTrue(cmTest.GetRanking(ts2) == 1);
            Assert.IsTrue(cmTest.GetRanking(ts3) == 0);
        }