ArraySize, ArrayResize - Array out of range

 

Olá pessoal,

Estou fazendo um código pra contar quantas compras/vendas foram feitas em sequencia pelo EA. Porém estou recebendo o retorno de um erro que não consigo encontrar.

O erro é Array Out of Range nas linhas destacadas do código abaixo.

double OnTester()
       {
       ENUM_POSITION_TYPE tipo_anterior = NULL;
       
       
       int sequencia_compradora[];
       int sequencia_vendedora[];
       
       HistorySelect(0,TimeTradeServer());
       for(int i=HistoryDealsTotal();i>0;i--)
       {
         ENUM_POSITION_TYPE tipo_atual=HistoryDealGetInteger(HistoryDealGetTicket(i),DEAL_TYPE);
         
         
         if(tipo_atual==tipo_anterior==POSITION_TYPE_BUY){
            sequencia += 1;
         }
         if(tipo_atual!=tipo_anterior && tipo_atual==POSITION_TYPE_BUY){
            ArrayResize(sequencia_vendedora,ArraySize(sequencia_vendedora)+1,ArraySize(sequencia_vendedora)+1);
            
sequencia_vendedora[ArraySize(sequencia_vendedora)]=sequencia;
            sequencia=1;
         }
       
        if(tipo_atual==tipo_anterior==POSITION_TYPE_SELL){
            sequencia += 1;
         }
         if(tipo_atual!=tipo_anterior && tipo_atual==POSITION_TYPE_SELL){
            ArrayResize(sequencia_compradora,ArraySize(sequencia_compradora)+1,ArraySize(sequencia_compradora)+1);
            
sequencia_compradora[ArraySize(sequencia_compradora)]=sequencia;
            sequencia=1;
         }
       
       
       }
       
       
       for(int i=ArraySize(sequencia_compradora);i>0;i--){
         
         string output = "\nSequência compradora "+IntegerToString(i,0)+": "+DoubleToString(sequencia_compradora[i],0)+"\n";
         Print(output);
       }

       return(0);
       
 
Sidnei Da Silva Santos Junior:

Olá pessoal,

Estou fazendo um código pra contar quantas compras/vendas foram feitas em sequencia pelo EA. Porém estou recebendo o retorno de um erro que não consigo encontrar.

O erro é Array Out of Range nas linhas destacadas do código abaixo.

Reveja suas aulas de C++.

Vetores começam com índice ZERO!

Pergunte-se: O quê ArraySize() retorna?

 
Flavio Jarabeck:

Reveja suas aulas de C++.

Vetores começam com índice ZERO!

Pergunte-se: O quê ArraySize() retorna?

Consegui, muito obrigado! Na verdade encontrei outro modo de fazer o trabalho através das funções de arquivo e o resto fiz umas macros no excel.

Razão: