Anomalia em um snippet

3 respostas

Aschab

Assinante, bbp_participante, comunidade, 3 respostas.

Perfil da visita

8 anos atrás #114530

Criei um Equity Control estendido, com uma série de registros para fins de teste:

 

public PF() {
      setName("PF");
      
      addDoubleParameter("StartValue", "Valor inicial de negociação", 2d, 0d, 200d, 0,1d);
      addDoubleParameter("StopValue", "Valor de parada de negociação", 1,5d, 0d, 200d, 0,1d);
      addIntParameter("Period", "Period", 10, 1, Integer.MAX_VALUE, 1);
 
   }
 public void computeNewTradeSizes(Trade[] trades, double[] balanceControlLine) throws Exception {
      double startv = getDoubleParameterValue("StartValue");
      double stopv = getIntParameterValue("StopValue");
      boolean totrade = false;
      logToFile("test", String.valueOf(startv));
      logToFile("test", String.valueOf(stopv));
        for(int i=0; i<trades.length; i++) {
            Se (balanceControlLine[i] >= startv){
               totrade = true;
            }
            Se (balanceControlLine[i] <= stopv){
               totrade = false;
            }
            logToFile("test", String.valueOf("para " + i + " a linha de controle é: " + balanceControlLine[i] + " o valor de to trade é: " + totrade));
            Se (balanceControlLine[i] == VALUE_UNDEFINED || totrade == true) {         
            {} else {
               trades[i].size = 0f;
            }
        }
    }
 
Ao testá-lo em meu computador com a versão de avaliação, ele funciona perfeitamente, mas no computador de meus clientes os parâmetros "StopValue" sempre são registrados como 0. Tivemos que transformá-lo em uma constante dentro do código, mas gostaria de saber o que aconteceu.

 

0

tomas262

Administrador, sq-ultimate, 2 respostas.

Perfil da visita

8 anos atrás #134524

Olá, você usa as mesmas versões do QA em ambos os casos?

0

Aschab

Assinante, bbp_participante, comunidade, 3 respostas.

Perfil da visita

8 anos atrás #134525

Recebi o teste gratuito, isso é um problema?

0

Tamas

Cliente, bbp_participante, comunidade, sq-ultimate, 73 respostas.

Perfil da visita

8 anos atrás #134526

Olá, Aschab, 

 

Acho que o problema é que você define um "StopValue" como um valor duplo

addDoubleParameter("StopValue", "Valor de parada de negociação", 1,5d, 0d, 200d, 0,1d);

 

mas no código abaixo você o obtém como Integer, o que remove a parte decimal do valor

double stopv = getIntParameterValue("StopValue");

 

Com os melhores cumprimentos,

Tomas

0

Visualizando 3 respostas - 1 até 3 (de um total de 3)