Subversion Repositories Integrator Subversion

Rev

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

package br.com.kronus.core;

import java.math.BigDecimal;

import br.com.sl.domain.dto.robo.SinalTradeGatilho3;

/**
 * Resultado da avaliação de um SinalTradeGatilho3 no histórico.
 */

public class ResultadoSinalGatilho3 {

    public enum Status {
        NAO_ACIONADO, // preço nunca tocou o nível de entrada
        ABERTO,       // entrada acionada, mas nem alvo nem stop foram atingidos no período analisado
        ALVO1,        // primeiro alvo atingido
        ALVO2,        // segundo alvo atingido
        STOP,         // stop atingido
        DESCARTADO    // alvo1 foi atingido ANTES da entrada -> operação cancelada
    }

    private final SinalTradeGatilho3 sinal;
    private final Status status;
    private final boolean tradeVencedor;

    private final int indiceEntrada;      // índice do candle onde a entrada foi acionada (-1 se não houve)
    private final int indiceSaida;        // índice do candle onde o alvo/stop/desc descarte ocorreu

    private final BigDecimal precoEntradaEfetivo; // preço onde efetivamente “entrou”
    private final BigDecimal precoSaidaEfetivo;   // preço do alvo/stop/desc descarte

    public ResultadoSinalGatilho3(
            SinalTradeGatilho3 sinal,
            Status status,
            boolean tradeVencedor,
            int indiceEntrada,
            int indiceSaida,
            BigDecimal precoEntradaEfetivo,
            BigDecimal precoSaidaEfetivo) {

        this.sinal = sinal;
        this.status = status;
        this.tradeVencedor = tradeVencedor;
        this.indiceEntrada = indiceEntrada;
        this.indiceSaida = indiceSaida;
        this.precoEntradaEfetivo = precoEntradaEfetivo;
        this.precoSaidaEfetivo = precoSaidaEfetivo;
    }

    public SinalTradeGatilho3 getSinal() {
        return sinal;
    }

    public Status getStatus() {
        return status;
    }

    public boolean isTradeVencedor() {
        return tradeVencedor;
    }

    public int getIndiceEntrada() {
        return indiceEntrada;
    }

    public int getIndiceSaida() {
        return indiceSaida;
    }

    public BigDecimal getPrecoEntradaEfetivo() {
        return precoEntradaEfetivo;
    }

    public BigDecimal getPrecoSaidaEfetivo() {
        return precoSaidaEfetivo;
    }
}