Erros, bugs, perguntas - página 1509
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
Não consigo aceder à plataforma, o website diz que o terminal web não é suportado por este MetaTrader Server. Por favor contacte o seu corretor para actualizar o servidor, a plataforma diz que não há ligação?
Caros programadores, qual é a ordem da operação da função OnDeinit - a ordem de eliminação de objectos e outras variáveis, limpeza de memória, etc.?
OnDeinit é uma função comum em MQL4/5 que é chamada em certas situações. É assim que se programa, e assim será.
Por favor, seja mais específico na sua pergunta. Em que está exactamente interessado?
OnDeinit é uma função comum em MQL4/5 que é chamada em certas situações. É assim que se programa, e assim será.
Por favor, seja mais específico na sua pergunta. Em que está exactamente interessado?
Com objectos que são explicitamente apagados (criados na memória atribuída), tudo é claro. O que me interessa é o processo de libertar a memória e apagar objectos criados em memória desacompanhada.
Isto é, existem, por exemplo, dois objectos e uma variável de um tipo fundamental:
Estou interessado em saber qual será a ordem de libertação e eliminação de todos os objectos, quando o programa for eliminado.
...
Quando pode o terminal congelar? - Parece haver situações normais em que o terminal é suposto ser pendurado.
Pelo que vi, fica sempre pendurado (pendurado por um período de tempo indefinido) quando:
1. Ligação a um servidor.
2. P1. ao mudar entre contas.
3. Enquanto se inicia o terminal.
A última vez que o fiz, o terminal desligou no arranque. Olhei para o gestor de tarefas, o terminal comeu byte de memória byte, após alguns minutos comeu toda a memória de 8Gb e o sistema operativo pendurado juntamente com o terminal. Tive de premir o botão "reset" na unidade do sistema.
Depois de reiniciar o computador, iniciei o terminal e o histórico com repetições de pendências, o sistema deixou de responder às minhas frenéticas tentativas de o acordar juntamente com o terminal.
Depois de reiniciar o computador, apaguei todos os ficheiros de configuração do terminal, lancei-o - histórico com pendências de novo.
Após reiniciar o computador, apaguei todos os ficheiros de histórico do servidor comercial e só depois é que o computador móvel começou a funcionar normalmente, e só depois de alguma reflexão durante cerca de 3 minutos.
O terminal fica pendurado de edifício em edifício. Win10x64.
Quando é que o terminal pode desligar? - Parece haver situações normais em que o terminal é suposto ser pendurado.
De acordo com as minhas observações, o terminal fica sempre suspenso (suspenso por um período de tempo indefinido) quando:
1. Ligação a um servidor.
2. P1. ao mudar entre contas.
3. Enquanto se inicia o terminal.
Da última vez, o terminal desligou durante o arranque. Olhei para o gestor de tarefas, o terminal comeu byte de memória byte, após alguns minutos comeu toda a memória de 8Gb e o sistema operativo pendurado juntamente com o terminal. Tive de premir o botão "reset" na unidade do sistema.
Depois de reiniciar o computador iniciei o terminal - o histórico com o congelamento repetido, o sistema deixou de responder às minhas frenéticas tentativas de o acordar juntamente com o terminal.
Depois de reiniciar o computador, apaguei todos os ficheiros de configuração do terminal, lancei-o - histórico com pendências de novo.
Após reiniciar o computador, apaguei todos os ficheiros de histórico do servidor comercial e só depois é que o computador móvel começou a funcionar normalmente, e só depois de alguma reflexão durante cerca de 3 minutos.
O terminal fica pendurado de edifício em edifício. Win10x64.
Esta é a primeira vez que me deparo com este tipo de código, por isso pergunto a especialistas experientes como dividir o código em partes e incluir correctamente os ficheiros
Aqui está um exemplo
Isto é, uma classe herda de outra classe e tem uma estrutura; a estrutura no exemplo, abreviei-a, e depois há métodos de trabalhar com uma variedade da estrutura
Tenho 40-50 ou talvez mais destes métodos.
Gostaria de mover cada método para o ficheiro de inclusão ou organizar a estrutura de código de outra forma, de modo a não criar 10 000-20 000 linhas de código no próprio Expert Advisor que será difícil de pesquisar mais tarde.
A única coisa que posso ver actualmente é o envio de um conjunto da estrutura por referência
como
Parece-me que esta não é uma boa escolha.
O que podemos fazer?
Compreendo o processo de eliminação de objectos explicitamente eliminados (criados na memória atribuída). Estou interessado no processo de libertar a memória e apagar objectos criados na memória automática.
Por exemplo, existem dois objectos e uma variável de um tipo fundamental:
Gostaria de saber que ordem de desalocação de memória e eliminação de todos os objectos será seguida ao eliminar o programa.
OnDeinit não tem nada a ver com isto.
Já leu a documentação?
O terminal é executado apenas a partir de admin, e todos os ficheiros de meta-editores são também de admin, sem problemas.
Esta é a primeira vez que me deparo com este tipo de código, por isso pergunto a especialistas experientes como dividir o código em partes e incluir correctamente os ficheiros
Aqui está um exemplo
Isto é, uma classe herda de outra classe e tem uma estrutura; a estrutura no exemplo, abreviei-a, e depois há métodos de trabalhar com uma variedade da estrutura
Tenho 40-50 ou talvez mais destes métodos.
Gostaria de mover cada método para o ficheiro de inclusão ou organizar a estrutura de código de outra forma, de modo a não criar 10 000-20 000 linhas de código no próprio Expert Advisor que será difícil de pesquisar mais tarde.
A única coisa que posso ver neste momento é o envio de um conjunto de estruturas por referência
como
Não me parece que esta seja a melhor escolha.
O que é que posso fazer ?
Se as classes forem capacitivas, é melhor criar uma listagem separada para cada classe e no código onde os objectos desta classe são utilizados, incluir a listagem da classe através de #include. O mesmo se aplica às estruturas e bibliotecas de funções. Se as classes e estruturas não forem capacitivas, pode incluí-las numa única listagem. Pode também criar uma listagem de definições e macros comuns.
E não tenha medo de ter uma família inteira de listagens relacionadas com um programa, é comum, tenho nos meus sistemas de negociação utilizado 15-20 listagens, mais directórios com .bmp e .gif para a interface. Distribuo todas as listagens em directórios separados. É mais fácil de navegar quando se apanha erros e se actualiza.