public List<Candle> constroiCandles(List<Negociacao> todasNegociacoes) {
    List<Candle> candles = new ArrayList<Candle>();

    List<Negociacao> negociacaoDoDia = new ArrayList<Negociacao>();

    Calendar dataAtual = todasNegociacoes.get(0).getData();

    for (Negociacao negociacao : todasNegociacoes) {

      if (!negociacao.isMesmoDia(dataAtual)) {
        Candle candleDoDia = constroiCandleParaData(dataAtual, negociacaoDoDia);

        candles.add(candleDoDia);
        negociacaoDoDia = new ArrayList<Negociacao>();
        dataAtual = negociacao.getData();
      }

      negociacaoDoDia.add(negociacao);
    }

    Candle candleDoDia = constroiCandleParaData(dataAtual, negociacaoDoDia);
    candles.add(candleDoDia);

    return candles;
  }
  @Test
  public void mesmoDiaEMesMasAnosDiferentesNaoSaoDoMesmoDia() {

    Calendar maio2011 = new GregorianCalendar(2011, 4, 20);
    Calendar maio2012 = new GregorianCalendar(2012, 4, 20);

    Negociacao negociacao = new Negociacao(40.0, 100, maio2011);
    Assert.assertFalse(negociacao.isMesmoDia(maio2012));
  }
  @Test
  public void mesmoDiaMasMesesDiferentesNaoSaoDoMesmoDia() {

    Calendar junho = new GregorianCalendar(2011, 5, 20);
    Calendar setembro = new GregorianCalendar(2011, 8, 20);

    Negociacao negociacao = new Negociacao(40.0, 100, junho);
    Assert.assertFalse(negociacao.isMesmoDia(setembro));
  }
  @Test
  public void mesmoMilissegundoEhDoMesmoDia() {

    Calendar agora = Calendar.getInstance();
    Calendar mesmoMomento = (Calendar) agora.clone();

    Negociacao negociacao = new Negociacao(40.0, 100, agora);
    Assert.assertTrue(negociacao.isMesmoDia(mesmoMomento));
  }
  @Test
  public void comHorariosDiferentesEhNoMesmoDia() {

    // usando GregorianCalendar(ano, mes, dia, hora, minuto)
    Calendar manha = new GregorianCalendar(2011, 10, 20, 8, 30);
    Calendar tarde = new GregorianCalendar(2011, 10, 20, 15, 30);

    Negociacao negociacao = new Negociacao(40.0, 100, manha);
    Assert.assertTrue(negociacao.isMesmoDia(tarde));
  }
  @Test
  public void dataDaNegociacaoEhImutavel() {

    Calendar data = Calendar.getInstance();
    data.set(Calendar.DAY_OF_MONTH, 15);
    Negociacao negociacao = new Negociacao(10, 5, data);

    negociacao.getData().set(Calendar.DAY_OF_MONTH, 20);

    Assert.assertEquals(15, negociacao.getData().get(Calendar.DAY_OF_MONTH));
  }
Пример #7
0
  public List<Candle> constroiCandles(List<Negociacao> todasNegociacoes) {
    List<Candle> candles = new ArrayList<Candle>();

    List<Negociacao> negociacoesDoDia = new ArrayList<Negociacao>();
    Calendar dataAtual = todasNegociacoes.get(0).getData();

    for (Negociacao negociacao : todasNegociacoes) {
      if (!negociacao.isMesmoDia(dataAtual)) {
        criaEGuardaCandle(candles, negociacoesDoDia, dataAtual);
        negociacoesDoDia = new ArrayList<Negociacao>();
        dataAtual = negociacao.getData();
      }
      negociacoesDoDia.add(negociacao);
    }
    criaEGuardaCandle(candles, negociacoesDoDia, dataAtual);

    return candles;
  }
  public List<Candle> constroiCandles(List<Negociacao> todasNegociacoes) {
    List<Candle> candles = new ArrayList<Candle>();

    List<Negociacao> negociacoesDoDia = new ArrayList<Negociacao>();
    Calendar dataAtual = todasNegociacoes.get(0).getData();

    for (Negociacao negociacao : todasNegociacoes) {
      // se não for mesmo dia, fecha candle e reinicia variáveis
      if (!negociacao.isMesmoDia(dataAtual)) {
        criaEGuardaCandle(candles, negociacoesDoDia, dataAtual);
        negociacoesDoDia = new ArrayList<Negociacao>();
        dataAtual = negociacao.getData();
      }
      negociacoesDoDia.add(negociacao);
    }
    // adiciona último candle
    criaEGuardaCandle(candles, negociacoesDoDia, dataAtual);

    return candles;
  }
Пример #9
0
  public Candlestick constroiCandleParaData(Calendar data, List<Negociacao> negociacoes) {

    double maximo = negociacoes.get(0).getPreco();
    double minimo = negociacoes.get(0).getPreco();
    double volume = 0;

    for (Negociacao negociacao : negociacoes) {

      volume += negociacao.getVolume();
      if (negociacao.getPreco() > maximo) {
        maximo = negociacao.getPreco();
      } else if (negociacao.getPreco() < minimo) {
        minimo = negociacao.getPreco();
      }
    }

    double abertura = negociacoes.get(0).getPreco();
    double fechamento = negociacoes.get(negociacoes.size() - 1).getPreco();
    return new Candlestick(abertura, fechamento, minimo, maximo, volume, data);
  }
  public Candle constroiCandleParaData(Calendar data, List<Negociacao> negocios) {

    double maximo = Double.MIN_VALUE;
    double minimo = Double.MAX_VALUE;
    double volume = 0;

    for (Negociacao negocio : negocios) {
      volume += negocio.getVolume();

      double preco = negocio.getPreco();
      if (preco > maximo) {
        maximo = preco;
      }
      if (preco < minimo) {
        minimo = preco;
      }
    }

    double abertura = negocios.isEmpty() ? 0 : negocios.get(0).getPreco();
    double fechamento = negocios.isEmpty() ? 0 : negocios.get(negocios.size() - 1).getPreco();

    return new Candle(abertura, fechamento, minimo, maximo, volume, data);
  }