예제 #1
0
        public void TestInicial()
        {
            string ativoName = "ABCD";
            Ativo  ativo     = new Ativo(facade, ativoName, 100);

            facade.AddAtivo(ativo);
            Ativo ativoGet = facade.GetAtivo(ativoName);

            Assert.IsNotNull(ativoGet);
            Assert.IsTrue(ativoGet == ativo);
            Assert.IsTrue(ativo.loteMin == 100);
            Assert.IsTrue(ativo.name == ativoName);

            Periodo periodo1 = new Periodo("2015-06-05 00:00");
            Periodo periodo2 = new Periodo("2015-06-06 00:00");

            float open  = 2;
            float close = 3;
            float high  = 3.5f;
            float low   = 1.5f;
            float vol   = 100;

            Candle candle = new Candle(periodo1, ativo);

            ativo.AddCandle(candle);
            candle.SetValor(FormulaManager.CLOSE, close);
            candle.SetValor(FormulaManager.OPEN, open);
            candle.SetValor(FormulaManager.HIGH, high);
            candle.SetValor(FormulaManager.LOW, low);
            candle.SetValor(FormulaManager.VOL, vol);


            Candle candleDefinido = new Candle(periodo2, ativo, open, close, high, low, vol);

            ativo.AddCandle(candleDefinido);

            Assert.IsTrue(candleDefinido.GetValor(FormulaManager.CLOSE) == candle.GetValor(FormulaManager.CLOSE) && candle.GetValor(FormulaManager.CLOSE) == close);
            Assert.IsTrue(candleDefinido.GetValor(FormulaManager.OPEN) == candle.GetValor(FormulaManager.OPEN) && candle.GetValor(FormulaManager.OPEN) == open);
            Assert.IsTrue(candleDefinido.GetValor(FormulaManager.HIGH) == candle.GetValor(FormulaManager.HIGH) && candle.GetValor(FormulaManager.HIGH) == high);
            Assert.IsTrue(candleDefinido.GetValor(FormulaManager.LOW) == candle.GetValor(FormulaManager.LOW) && candle.GetValor(FormulaManager.LOW) == low);
            Assert.IsTrue(candleDefinido.GetValor(FormulaManager.VOL) == candle.GetValor(FormulaManager.VOL) && candle.GetValor(FormulaManager.VOL) == vol);

            Assert.IsTrue(ativo.GetCandle(periodo2) == candleDefinido);
            Assert.IsTrue(ativo.GetCandle(periodo1) == candle);
        }
예제 #2
0
        private void ProcessaPeriodoDiario(Ativo ativo, CargaADVFN item, ref Candle candleAnterior, ref Periodo periodoAnterior, int i, DateTime data)
        {
            Periodo periodo = facade.GetPeriodo(data);

            if (ativo.GetCandle(periodo) == null)
            {
                Candle candle = new Candle(periodo, ativo, item.o[i], item.c[i], item.h[i], item.l[i], item.v[i]);
                ProcessaCandle(ativo, ref candleAnterior, ref periodoAnterior, candle);
            }
        }
예제 #3
0
        private void ProcessaPeriodoSemanal(Ativo ativo, CargaADVFN item, ref Candle candleAnterior, ref Periodo periodoAnterior, int i, DateTime data)
        {
            Periodo periodo = facade.GetPeriodo(data, Consts.PERIODO_ACAO.SEMANAL);
            Candle  candle  = ativo.GetCandle(periodo);

            if (candle == null)
            {
                candle = new Candle(periodo, ativo, item.o[i], item.c[i], item.h[i], item.l[i], item.v[i]);
                ProcessaCandle(ativo, ref candleAnterior, ref periodoAnterior, candle);
            }
            else
            {
                candle.AddData(item.o[i], item.c[i], item.h[i], item.l[i], item.v[i]);
            }
        }
예제 #4
0
        public void BackTestePeriodo(ICaller caller, MonteCarlo mc, ref Periodo periodo, ref string mesA, int[] rd)
        {
            caller.SimpleUpdate();
            //System.out.println("Periodo:"+periodo.getPeriodo());
            carteira.EndTurn(periodo, !mesA.Equals(periodo.GetMes()));
            mc.AnalizaPeriodo(carteira);
            if (!mesA.Equals(periodo.GetMes()))
            {
                mesA = periodo.GetMes() + "";
            }

            for (int i = 0; i < rd.Length; i++)
            {
                Ativo  ativo  = ativos[rd[i]];
                Candle candle = ativo.GetCandle(periodo);

                if (candle != null)
                {
                    BackTestCandle(periodo, ativo, candle);
                }
            }

            periodo = periodo.proximoPeriodo;
        }