Subversion Repositories Integrator Subversion

Rev

Blame | Last modification | View Log | Download | RSS feed

package br.com.robo.sim;

import br.com.robo.model.Candle;

import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class CandleGenerator {

    public static List<Candle> gerarSerieSimulada(int quantidade, double precoInicial) {
        List<Candle> candles = new ArrayList<>();
        Random random = new Random();
        LocalDateTime time = LocalDateTime.now().minusMinutes(quantidade);

        double lastClose = precoInicial;

        for (int i = 0; i < quantidade; i++) {
            // tendĂȘncia leve de alta + ruĂ­do
            double drift = 0.01;
            double ruido = (random.nextDouble() - 0.5) * 0.5; // -0.25 a +0.25
            double close = Math.max(1.0, lastClose + drift + ruido);

            double open = lastClose;
            double high = Math.max(open, close) + random.nextDouble();
            double low = Math.min(open, close) - random.nextDouble();
            double volume = 100 + random.nextInt(900); // 100 a 1000

            candles.add(new Candle(time, open, high, low, close, volume));

            lastClose = close;
            time = time.plusMinutes(1);
        }

        return candles;
    }
}