Subversion Repositories Integrator Subversion

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
778 blopes 1
package br.com.robo.sim;
2
 
3
import br.com.robo.model.Candle;
4
 
5
import java.time.LocalDateTime;
6
import java.util.ArrayList;
7
import java.util.List;
8
import java.util.Random;
9
 
10
public class CandleGenerator {
11
 
12
    public static List<Candle> gerarSerieSimulada(int quantidade, double precoInicial) {
13
        List<Candle> candles = new ArrayList<>();
14
        Random random = new Random();
15
        LocalDateTime time = LocalDateTime.now().minusMinutes(quantidade);
16
 
17
        double lastClose = precoInicial;
18
 
19
        for (int i = 0; i < quantidade; i++) {
20
            // tendĂȘncia leve de alta + ruĂ­do
21
            double drift = 0.01;
22
            double ruido = (random.nextDouble() - 0.5) * 0.5; // -0.25 a +0.25
23
            double close = Math.max(1.0, lastClose + drift + ruido);
24
 
25
            double open = lastClose;
26
            double high = Math.max(open, close) + random.nextDouble();
27
            double low = Math.min(open, close) - random.nextDouble();
28
            double volume = 100 + random.nextInt(900); // 100 a 1000
29
 
30
            candles.add(new Candle(time, open, high, low, close, volume));
31
 
32
            lastClose = close;
33
            time = time.plusMinutes(1);
34
        }
35
 
36
        return candles;
37
    }
38
}