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.
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];
Não tenho nenhuma informação sobre o cabeçalho. Criei um símbolo personalizado e observei quais bytes foram alterados. Somente a partir dessas ações percebi por que determinados bytes no cabeçalho são responsáveis.
A variável i tem 31 valores.
Claramente, o loop conta a partir de 63, mas ao descrever a matriz, 64 são alocados para o cabeçalho, o que equivale ao loop começar a partir de -1. Não é muito intuitivo, mas a matemática se encaixa.
O MTTester.mqh não compila. Presumo que isso se deva à recente compilação do MT5, em que há várias coisas que, de repente, não são mais compiladas. Há alguma chance de você fornecer uma versão atualizada dessa biblioteca? Ela parece ser uma biblioteca incrível.
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.
E se for cripto?
Por que 30 e não 31? A manchete parece ser para 31 dias.
Os índices de 0 a 30 são 31.
Os índices de 0 a 30 têm 31 unidades.
Exatamente, de 0 a 30, inclusive - um total de 31.
Exatamente, de 0 a 30, inclusive - 31 no total.
Então você entendeu certo?
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.
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.
A variável i assume 31 valores.
Não tenho nenhuma informação sobre o cabeçalho. Criei um símbolo personalizado e observei quais bytes foram alterados. Somente a partir dessas ações percebi por que determinados bytes no cabeçalho são responsáveis.
A variável i tem 31 valores.
Claramente, o loop conta a partir de 63, mas ao descrever a matriz, 64 são alocados para o cabeçalho, o que equivale ao loop começar a partir de -1. Não é muito intuitivo, mas a matemática se encaixa.
Obter o número de ticks em um mês do calendário de uma forma não padrão.
Obter informações sobre os ticks históricos disponíveis por símbolos.
Resultado.
Você pode ver a causa do erro 4004.
O MTTester.mqh não foi compilado.
Versão atualizada somente na página em russo da biblioteca.