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 | } |