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); }
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); } }
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]); } }
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; }