Bibliotecas: MultiTester - página 50

 

Minha postagem foi criada no tópico errado, ela deveria estar aqui:

Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação

Nova versão do MetaTrader 5 build 5200: extensão OpenBLAS e maior controle em MQL5

Stanislav Korotky, 2025.09.05 11:13 AM

Por que 30 e não 31? O título parece ter sido projetado para 31 dias.

uint Buffer[64 + 12 * 30];

E se for cripto?

 
Stanislav Korotky #:

Por que 30 e não 31? A manchete parece ser para 31 dias.

Os índices de 0 a 30 são 31.

 
fxsaber #:

Os índices de 0 a 30 têm 31 unidades.

Exatamente, de 0 a 30, inclusive - um total de 31.

 
Stanislav Korotky #:

Exatamente, de 0 a 30, inclusive - 31 no total.

Então você entendeu certo?

 
fxsaber #:

Então você acertou?

Não. No cabeçalho do arquivo, até onde posso ver, a matriz para 31 dias está reservada, o que é lógico. Portanto, deveria ser 12*31 no código. Onde estou errando?

Ou forneça um link para a descrição do formato tkc, onde se diz que deve haver (no máximo) 30 dias em um mês.

 
Stanislav Korotky #:

Não. O cabeçalho do arquivo, até onde posso ver, reserva uma matriz para 31 dias, o que faz sentido.

Não tenho nenhuma informação sobre o cabeçalho. Estava fazendo um caractere personalizado e observando quais bytes estavam sendo alterados. Somente a partir dessas ações é que percebi por que determinados bytes no cabeçalho são responsáveis.

Portanto, deveria ser 12*31 no código. Onde estou errando?

Ou forneça um link para a descrição do formato tkc onde se diz que deve haver (no máximo) 30 dias em um mês.

      uint Buffer[64 + 12 * 30];
      uint Read;

      kernel32::ReadFile(handle, Buffer, sizeof(Buffer), Read, 0);

      if (Read == sizeof(Buffer))
        for (int i = 63; i < (sizeof(Buffer) >> 2); i += 12)
          Res += (int)Buffer[i];

A variável i assume 31 valores.