Erros, bugs, perguntas - página 2646
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
porque o modelo só produz tipos por parâmetro, não por valor de saída.
Isto não é exacto.
Isso não é certo.
Obrigado!
Sim, vai funcionar, ficou confuso na sintaxe
ZS: tudo como se pretende agora funciona:
Serialização em série das estruturas POD base64Isso não é certo.
Não, não é. Notou a definição explícita dos tipos de parâmetros do modelo na função, e eu estava a falar de saída, sobre a definição explícita fxsaber respondeu antes de mim e antes de si
Não, é isso mesmo. Notou a definição explícita dos tipos de parâmetros do modelo na função, e eu estava a falar de saída, sobre a definição explícita fxsaber respondeu antes de mim e antes de si
Não consegui encontrá-lo no fórum ou nos documentos, por isso tenho uma pergunta a fazer:
1. Qual é o tamanho máximo de cordel que a MQL5 pode armazenar?
2. Qual é o tamanho máximo de cordel que a MQL4 pode armazenar?
3. se não houver memória suficiente, este tamanho máximo será reduzido (ou não haverá memória alocada para uma string) ou ocorrerá um erro de tempo de execução ?
Defeitos:
(não corrigido pelo MT5(build 2319)) bug na operação de cache da classe modelo: "Cria-se várias vezes um objecto complexo embrulhado com tipo interno "C", e acaba por ser um tipo de dados bastante diferente, talvez "B", talvez "int", o que se quiser...".
(não corrigido pelo MT5(build 2319)) bug com geração de código de classe modelo quando se usa a classe interna.
(não corrigido MT5(build 2319)) bug ao definir a classe interna - sem capacidade de referenciar explicitamente o espaço de nomes global ao especificar uma classe base.
Sugestões:
ref - sobre a necessidade de introduzir a funcionalidade de declaração de typedef na MQL.
Referência- para permitir a geração forçada de construtores de cópias por defeito e operadores de cessão.
Defeitos:
É bom para si por manter um registo dos seus relatórios de erros. Não o fiz, foi por isso que tudo se perdeu irremediavelmente no fórum.
Talvez devesse adicionar algum do mesmo registo de hash às suas mensagens de relatório de bugs, para que possa procurá-los todos de uma só vez.
Não consegui encontrá-lo no fórum ou nas docas, por isso tenho uma pergunta a fazer:
1. Qual é o tamanho máximo de cordel que a MQL5 pode armazenar?
2. Qual é o tamanho máximo de cordel que a MQL4 pode armazenar?
3. se não houver memória suficiente, este tamanho máximo será reduzido (ou não haverá memória alocada para string) ou haverá um erro de tempo de execução ?
tentou testar uma corda no MT4
A memória vaza lentamente (5,1 de 11,9), em MT4 no diário de bordo:
StringLen = 221696000 , m_physical = 12157, m_total = 4095, m_disponível = 3365, m_utilizado = 729
em geral, para tarefas sensatas, pode usar uma grande cadeia, talvez mais tarde eu copie o ficheiro através de uma cadeia para verificar
UPD: substituiuuchar u_arr[102400]; por uchar u_arr[524224]; para acelerar o processo
Conclusão: em MT4, o máximo aproximado que pode ser posto em cordel é:
2020.02.13 21:11:24.177 tst_string EURUSD,H1: fora de memória
2020.02.13 21:11:24.024 tst_string EURUSD,H1: StringLen = 640601728 , m_physical = 12157, m_total = 4095, m_disponível = 2556, m_utilizado = 1539
ou seja, cerca de 640 MB
SZZ: MT5
2020.02.13 21:56:12.964 tst_string (EURUSD,H1) StringLen = 1073610752 , m_physical = 12157, m_total = 24314, m_disponível = 21975, m_utilizado = 2339
2020.02.13 21:56:13.140 tst_string (EURUSD,H1) fora de memória em 'tst_string.mq5' (41,12)
tentou testar cadeia no MT4
A memória está a vazar um pouco em Win Manager (5,1 de 11,9), em MT4 no diário de bordo:
StringLen = 221696000 , m_physical = 12157, m_total = 4095, m_disponível = 3365, m_utilizado = 729
em geral, para tarefas sensatas, pode usar uma grande cadeia, talvez mais tarde eu copie o ficheiro através de uma cadeia para verificar
UPD: substituiu uchar u_arr[ 102400 ]; por uchar u_arr[524224]; para acelerar o processo
Resumindo: em MT4 o máximo aproximado que pode ser posto em cordel é:
2020.02.13 21:11:24.177 tst_string EURUSD,H1: fora de memória
2020.02.13 21:11:24.024 tst_string EURUSD,H1: StringLen = 640601728 , m_physical = 12157, m_total = 4095, m_disponível = 2556, m_utilizado = 1539
ou seja, cerca de 640 MB
SZZ: MT5
2020.02.13 21:56:12.964 tst_string (EURUSD,H1) StringLen = 1073610752 , m_physical = 12157, m_total = 24314, m_disponível = 21975, m_utilizado = 2339
2020.02.13 21:56:13.140 tst_string (EURUSD,H1) fora de memória em 'tst_string.mq5' (41,12)
Este é o comprimento de corda para Unicode, por isso em MB é pelo menos o dobro. 1,3 GB para MT4, o que faz sentido uma vez que é necessário um buffer de memória contínuo e MT4 é uma aplicação de 32 bits. Assim, a limitação mql4 não é uma limitação em si mesma, mas é apenas limitada pela memória disponível.
Estou um pouco surpreendido que o MT5 não permita mais, pois parece que tem muita memória disponível. Vou tentar o meu melhor do meu lado.
Este é o comprimento de corda para Unicode, por isso em MB é pelo menos o dobro. 1,3 GB para MT4, o que faz sentido uma vez que é necessário um buffer de memória contínuo e MT4 é uma aplicação de 32 bits. Assim, a limitação do mql4 em si não é uma limitação, é apenas limitada pela memória disponível.
Estou um pouco surpreendido que o MT5 não permita mais, pois parece que tem muita memória disponível. Vou tentar o meu melhor do meu lado.
tenho 12gb de memória, Windows 10 , memória livre cerca de 8gb
precisava deste teste para descobrir o comprimento máximo de linha permitido em terminais mt4/ mt5
Quero agora trocar entre terminais através da base de dados Redis
Redis é uma base de dados muito simples e funciona apenas com cordas (chave - valor --> corda - corda)
Ontem, eu serializei as estruturas POD na Base64 e aumenta o tamanho dos dados em cerca de 1/3
Penso que mesmo neste caso tenho a possibilidade de trocar estruturas com um tamanho de 400 Mb por transacção - isso é mais do que suficiente para qualquer propósito! ;)