Subversion Repositories Integrator Subversion

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
783 blopes 1
package br.com.sl.domain.dto;
2
 
3
import java.util.ArrayList;
4
import java.util.Collections;
5
import java.util.List;
6
import java.util.stream.Collectors;
7
 
8
import br.com.ec.core.util.VerificadorUtil;
9
import br.com.kronus.core.PadraoGatilho;
10
import br.com.kronus.core.PadraoGatilho.TipoPadrao;
11
import br.com.kronus.strategy.ResultadoEstrategiaGatilho3;
12
import br.com.sl.domain.dto.robo.SinalTradeGatilho3;
13
import br.com.sl.domain.model.Ativo;
14
import br.com.sl.domain.model.Candle;
15
import br.com.sl.domain.model.tipos.TipoFonteDadosProfit;
16
 
17
public class SinaisResultadoDTO {
18
 
19
        private TipoFonteDadosProfit tipoFonteSelecionada;
20
 
21
        private List<String> logs;
22
        private List<Ativo> ativosAnalisados;
23
        private List<Candle> candlesAnalisados;
24
 
25
        private List<PadraoGatilho> padroes;
26
        private List<PadraoGatilho> padroesAteG2;
27
        private List<PadraoGatilho> padroesComG3;
28
        private List<SinalTradeGatilho3> sinaisTradeGatilho3;
29
        private List<ResultadoEstrategiaGatilho3> resultados;
30
 
31
        private String observacoes;
32
 
33
        public SinaisResultadoDTO() {
34
                this.ativosAnalisados = new ArrayList<Ativo>();
35
                this.candlesAnalisados = new ArrayList<Candle>();
36
                this.padroes = new ArrayList<PadraoGatilho>();
37
                this.sinaisTradeGatilho3 = new ArrayList<SinalTradeGatilho3>();
38
                this.resultados = new ArrayList<ResultadoEstrategiaGatilho3>();
39
                this.logs = new ArrayList<String>();
40
                this.tipoFonteSelecionada = TipoFonteDadosProfit.ARQUIVOS_CSV;
41
        }
42
 
43
        public TipoFonteDadosProfit getTipoFonteSelecionada() {
44
                return tipoFonteSelecionada;
45
        }
46
        public void setTipoFonteSelecionada(TipoFonteDadosProfit tipoFonteSelecionada) {
47
                this.tipoFonteSelecionada = tipoFonteSelecionada;
48
        }
49
 
50
        public List<String> getLogs() {
51
                return logs;
52
        }
53
        public void setLogs(List<String> logs) {
54
                this.logs = logs;
55
        }
56
        public String getLogsBacktestAsText() {
57
            if (logs == null || logs.isEmpty()) return "";
58
            return String.join("\n", logs);
59
        }
60
 
61
        public List<Ativo> getAtivosAnalisados() {
62
                return ativosAnalisados;
63
        }
64
        public void setAtivosAnalisados(List<Ativo> ativosAnalisados) {
65
                this.ativosAnalisados = ativosAnalisados;
66
        }
67
 
68
        public List<Candle> getCandlesAnalisados() {
69
                return candlesAnalisados;
70
        }
71
        public void setCandlesAnalisados(List<Candle> candlesAnalisados) {
72
                this.candlesAnalisados = candlesAnalisados;
73
        }
74
 
75
        public void adicionarAtivoNaLista(Ativo ativo) {
76
                if (VerificadorUtil.naoEstaNulo(ativo)) {
77
                        if (getAtivosAnalisados().indexOf(ativo) <= 0) {
78
                                getAtivosAnalisados().add(ativo);
79
                        }
80
                }
81
        }
82
 
83
        public List<PadraoGatilho> getPadroes() {
84
                return padroes;
85
        }
86
        public void setPadroes(List<PadraoGatilho> padroes) {
87
                this.padroes = padroes;
88
        }
89
 
90
        public List<PadraoGatilho> getPadroesAteG2() {
91
                return padroesAteG2;
92
        }
93
        public void setPadroesAteG2(List<PadraoGatilho> padroesAteG2) {
94
                this.padroesAteG2 = padroesAteG2;
95
        }
96
 
97
        public List<PadraoGatilho> getPadroesComG3() {
98
                return padroesComG3;
99
        }
100
        public void setPadroesComG3(List<PadraoGatilho> padroesComG3) {
101
                this.padroesComG3 = padroesComG3;
102
        }
103
 
104
        public List<SinalTradeGatilho3> getSinaisTradeGatilho3() {
105
                return sinaisTradeGatilho3;
106
        }
107
        public void setSinaisTradeGatilho3(List<SinalTradeGatilho3> sinaisTradeGatilho3) {
108
                this.sinaisTradeGatilho3 = sinaisTradeGatilho3;
109
        }
110
 
111
        public List<ResultadoEstrategiaGatilho3> getResultados() {
112
                return resultados;
113
        }
114
        public void setResultados(List<ResultadoEstrategiaGatilho3> resultados) {
115
                this.resultados = resultados;
116
        }
117
 
118
        public String getObservacoes() {
119
                return observacoes;
120
        }
121
        public void setObservacoes(String observacoes) {
122
                this.observacoes = observacoes;
123
        }
124
 
125
        public Boolean verificarSeAtivoConstaNaLista(String nomeAtivo) {
126
                for (Ativo ativo: getAtivosAnalisados()) {
127
                        if (ativo.getNome().equals(nomeAtivo)) {
128
                                return true;
129
                        }
130
                }
131
                return false;
132
        }
133
 
134
        public void adicionarCandleNaLista(Candle candle) {
135
                getCandlesAnalisados().add(candle);
136
        }
137
 
138
        public void preencherOutrosPadroes() {
139
        padroesComG3 = padroes.stream()
140
                .filter(p -> p.getTipoPadrao() == TipoPadrao.COMPLETO_G3)
141
                .collect(Collectors.toList());
142
        padroesComG3 = inverterLista(padroesComG3);
143
 
144
        padroesAteG2 = padroes.stream()
145
                        .filter(p -> p.getTipoPadrao() == TipoPadrao.PARCIAL_G2)
146
                .collect(Collectors.toList());
147
        padroesAteG2 = inverterLista(padroesAteG2);
148
        }
149
 
150
        public static List<PadraoGatilho> inverterLista(List<PadraoGatilho> candles) {
151
        List<PadraoGatilho> invertida = new ArrayList<>(candles);
152
        Collections.reverse(invertida);
153
        return invertida;
154
    }
155
 
156
}