Subversion Repositories Integrator Subversion

Rev

Rev 779 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 779 Rev 782
Line 11... Line 11...
11
import java.time.LocalDateTime;
11
import java.time.LocalDateTime;
12
import java.time.LocalTime;
12
import java.time.LocalTime;
13
import java.time.format.DateTimeFormatter;
13
import java.time.format.DateTimeFormatter;
14
import java.util.ArrayList;
14
import java.util.ArrayList;
15
import java.util.Collections;
15
import java.util.Collections;
-
 
16
import java.util.HashMap;
16
import java.util.List;
17
import java.util.List;
17
import java.util.Locale;
18
import java.util.Locale;
18
import java.util.Map;
19
import java.util.Map;
19
import java.util.stream.Stream;
20
import java.util.stream.Stream;
20
21
Line 271... Line 272...
271
        List<Candle> invertida = new ArrayList<>(candles);
272
        List<Candle> invertida = new ArrayList<>(candles);
272
        Collections.reverse(invertida);
273
        Collections.reverse(invertida);
273
        return invertida;
274
        return invertida;
274
    }
275
    }
275
276
-
 
277
    // Contador separado para cada ativo iniciando pelo primeiro contador encontrado
276
    public static List<Candle> adicionarContadores(List<Candle> candles) {
278
    public static List<Candle> adicionarContadores(List<Candle> candles) {
277
        // Contador separado para cada ativo
-
 
278
        Map<String, Integer> contadorPorAtivo = new java.util.HashMap<>();
-
 
279
-
 
-
 
279
        Map<String, Integer> contadorPorAtivo = new HashMap<>();
280
        List<Candle> comContadores = new ArrayList<>();
280
        List<Candle> comContadores = new ArrayList<>();
281
281
282
        for (Candle candle : candles) {
282
        for (Candle candle : candles) {
283
-
 
284
            // Ajuste aqui o getter conforme estiver na sua classe Candle
-
 
285
            // Ex.: getAtivo(), getAtivoDescricao(), getTicker()...
-
 
286
            String ativo = candle.getNomeAtivo();
283
            String ativo = candle.getNomeAtivo();
287
284
288
            Integer contadorAtual = contadorPorAtivo.get(ativo);
-
 
289
            if (contadorAtual == null) {
-
 
290
                contadorAtual = 0;
-
 
-
 
285
            // Se for o primeiro candle do ativo, usar o contador original dele como ponto de partida
-
 
286
            if (!contadorPorAtivo.containsKey(ativo)) {
-
 
287
                int contadorInicial = candle.getContadorCandle() != null
-
 
288
                        ? candle.getContadorCandle()
-
 
289
                        : 1;  // fallback, se vier nulo
-
 
290
                contadorPorAtivo.put(ativo, contadorInicial);
-
 
291
                candle.setContadorCandle(contadorInicial);
-
 
292
                comContadores.add(candle);
-
 
293
                continue;
291
            }
294
            }
292
295
293
            contadorAtual++;
-
 
294
            contadorPorAtivo.put(ativo, contadorAtual);
-
 
-
 
296
            // Se não é o primeiro candle do ativo, incrementar baseado no último
-
 
297
            int proximoContador = contadorPorAtivo.get(ativo) + 1;
-
 
298
            contadorPorAtivo.put(ativo, proximoContador);
-
 
299
            candle.setContadorCandle(proximoContador);
295
300
296
            candle.setContadorCandle(contadorAtual);
-
 
297
            comContadores.add(candle);
301
            comContadores.add(candle);
298
        }
302
        }
299
303
300
        return comContadores;
304
        return comContadores;
301
    }
305
    }
-
 
306
302
307
303
308
304
    /**
309
    /**
305
     * 1 minuto = 1, 5 minutos = 2, 15 minutos = 3, 1 dia = 4
310
     * 1 minuto = 1, 5 minutos = 2, 15 minutos = 3, 1 dia = 4
306
     */
311
     */