Erros, bugs, perguntas - página 1593
![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
O guião mágico inverte o tempo ;-)
O smartphone recebe uma mensagem sobre uma revisão do produto, mas não no LC ou no topo do sítio web do mcl.
Não é um insecto, mas não pode deixar de partilhar
Escrevendo
O compilador emite um aviso
data inválida .mq4 115 46
Também verifica as datas válidas das cordas, estou chocado ) (30 de Junho de 30 dias)
Aparentemente ninguém se preocupa com isto, mas eu vou escrever novamente.
A verdadeira tarefa é criar matrizes com um tamanho total de cerca de 100% de memória livre, preenchê-las rapidamente com números, realizar cálculos e libertá-las.
Tento obter tamanho de memória livre com
resultado : 23987 MB, a minha memória física é de 12141 MB, ou seja, metade do valor.
Compreendo que esta figura é para marcianos, mas ainda acredito nela e escrevo um guião para a testar:
Obtenho um resultado lógico - é impossível atribuir array3 porque a memória se esgotou.
Depois descomento a linha, onde especifico quanta memória está disponível agora:
Depois disso, o guião é executado com sucesso.
Não quero ser um incómodo para os criadores, mas é importante saber quanta memória está disponível.
Por favor, torne possível conhecê-lo através do TerminalInfoInteger.
Está ciente de que na maioria dos casos não será capaz de recuperar toda a memória disponível?
Existe algo como a fragmentação da memória. Decidiu dividir toda a memória em 5 fragmentos - e o sistema não tem um único fragmento ininterrupto de memória do tamanho que necessita.
Está ciente de que na maioria dos casos não será capaz de recuperar toda a memória disponível?
Existe tal noção - fragmentação da memória. Decidiu dividir toda a memória em 5 fragmentos - mas o sistema não tem uma única peça de memória contínua do tamanho que necessita.
1. Pode descobrir primeiro o que significa fisicamente o parâmetro TERMINAL_MEMORY_AVAILABLE?
2. Em relação aos fragmentos, penso que isto deveria ser tratado pelo gestor da memória do Windows, e não pelo programador.
Preciso de saber quanto posso usar num dado momento, por exemplo, quero usar 50% da memória disponível.
Outra verdadeira tarefa é o pedido do CopyTicks. Se solicitar mais carraças do que a memória disponível, obtém-se 'fora da memória'.
Outro verdadeiro desafio é o pedido do CopyTicks. Se solicitar mais carraças do que a memória disponível, obtém-se 'fora da memória'.
Em alternativa, carregue os dados para um ficheiro e retire daí os segmentos necessários
Isso é lento para mim. Quero fazer tudo através da memória. Na verdade, está a ser feito agora, mas tenho de ligar à GlobalMemoryStatusEx para saber o tamanho da memória disponível.
Este problema é especialmente agudo quando se optimiza em agentes de nuvens, cujas capacidades nada sabe desde o início. É impossível determinar a quantidade real de memória disponível, nem através de MQL, nem através de WinApi (porque as chamadas dll são proibidas).
Não está realmente claro qual o sentido prático que TERMINAL_MEMORY_AVAILABLE tem então? Porque o introduziríamos se não nos faz nem felizes nem infelizes?