Desvio padrão retornando infinito

 

Boa tarde pessoal,

Estou desenvolvendo um robô onde a entrada da compra ou da vende acontece quando a agressão de compra ou venda for maior do que um desvio padrão da ordem de compra ou venda que está no book.

O problema está acontecendo quando calculo o desvio padrão das ofertas de venda do book. Ele está retornando inf, como mostrado na imagem em anexo. O curioso, é que o código do desvio padrão das ofertas de compra, é exatamente a mesma coisa do de venda, diferindo apenas no book.type (um é TYPE_SELL e o outro é TYPE_BUY) porém, no desvio padrão de compra ele retorna o valor correto, também mostrado na imagem anexo.

Abaixo eu deixo o código para vocês darem uma olhada. Como está retornando inf, meu robô não está dando a entra. Alguém teria uma explicação para o que está ocorrendo?

// Função que retorna o desvio padrão das ofertas de venda do book
double DesvpadOfertaVenda()
  {
    int size = ArraySize(bookArray); // Variável que recebe o tamanho do bookArray
    double volumeAsk[];
    ArrayResize(volumeAsk,size); // Redefinição do tamanho do array: volumeAsk para o tamanho do bookArray
    for(int i=0;i<size;i++)
      {
        if((bookArray[i].type == BOOK_TYPE_SELL) || (bookArray[i].type == BOOK_TYPE_SELL_MARKET))
          {
            volumeAsk[i] = bookArray[i].volume_real;
          }
      }
    return NormalizeDouble((MathMean(volumeAsk) + (MathStandardDeviation(volumeAsk) * desvoad)),0); // desvoad = 1
  }
Arquivos anexados:
print1.jpg  80 kb
 
Najivas Animaniacus:

Boa tarde pessoal,

Estou desenvolvendo um robô onde a entrada da compra ou da vende acontece quando a agressão de compra ou venda for maior do que um desvio padrão da ordem de compra ou venda que está no book.

O problema está acontecendo quando calculo o desvio padrão das ofertas de venda do book. Ele está retornando inf, como mostrado na imagem em anexo. O curioso, é que o código do desvio padrão das ofertas de compra, é exatamente a mesma coisa do de venda, diferindo apenas no book.type (um é TYPE_SELL e o outro é TYPE_BUY) porém, no desvio padrão de compra ele retorna o valor correto, também mostrado na imagem anexo.

Abaixo eu deixo o código para vocês darem uma olhada. Como está retornando inf, meu robô não está dando a entra. Alguém teria uma explicação para o que está ocorrendo?

Dê um Print() em todos os valores separados pra identificar o culpado...
 
Flavio Jarabeck:
Dê um Print() em todos os valores separados pra identificar o culpado...

Eu fiz isso e o pior é que não apareceu nada de estranho rsrsrsrs. Os números retornados batiam com o que estavam no book, mas sempre que usava o desvio padrão aparecia esse erro.

Mas, resolvi usar o plano B. No lugar de calcular o desvio padrão dos bid e ask separadamente, resolvi usar o desvio padrão do book todo, desta forma, não está mais aparecendo o inf. Não era o que eu queria, mas está quebrando o galho por enquando, até eu descobrir o que de fato está causando o problema.

Mas, de toda a forma, muito obrigato pela força. Valeu!!!

Razão: