Erros, bugs, perguntas - página 2296
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 há problema... há um erro. Também não percebo porque está a tentar arrancar a explicação da sua cabeça. A impressão por defeito tem a seguinte assinatura:
E também pode colidir com outras funções (se necessário)
A assinatura de impressão está fora do alcance da linguagem MQL5. Se a MQL5 proibir de todo a sobrecarga de impressão, não será um bug.
Espero que este "bug" não o impeça de criar TS e não exija muletas de escrita.
Medi o desempenho do Testador. Para o fazer, abri e fechei uma posição em cada carrapato. Medi o tempo de execução de 100 ticks. Passei-o por 100 000 carraças. Medi um total de 1000 ticks. Tenho este gráfico
Há picos de desaceleração a distâncias quase iguais entre eles. Medi-o no modo Optimização. Se eu ignorar esses picos o desempenho do testador varia 25% em vez do valor constante. Talvez sejam novamente truques de medição de velocidade do Windows.
ZZZ O mesmo código está a correr no MT4
Em média, o MT4 Tester leva 1,5-2 vezes menos tempo a processar um tick do que o MT5.
Possivelmente, surge através da utilização de um algoritmo de optimização genética.
Em média, o MT4-Tester leva 1,5-2 vezes menos tempo a processar um tick do que o MT5.
Possivelmente, surge através da utilização de um algoritmo de optimização genética.
Sem AG. Optimização a partir de dois passes num só Agente.
E isto já é pura manipulação e engano.
O código fonte está em vigor.
Num caso, um aviso, no outro, um erro
Qual é a diferença fundamental? Em C++, por exemplo, há um erro em ambos os casos
Peço a ajuda de pessoas conhecedoras para compreender a questão das indicações para as instâncias das aulas. Não o compreendo.
Aqui está um exemplo do guião:
Ao executá-lo temos, como se esperava:
se uma instância de uma classe for declarada como:
A *a= new A;então na execução que temos:
ou seja, o destruidor nem sequer é iniciado e, portanto, a memória não é libertada.
Mas se uma instância de uma classe for declarada como tal:
A a= new A;o construtor é lançado duas vezes, o destruidor - uma vez, mas a memória não é libertada e temos o tipo de ponteiro de objectosPOINTER_AUTOMÁTICO, embora se destinasse a serPOINTER_DYNAMIC
Como executar sempre o destruidor e executar correctamente apagar
Как добиться всегда выполнения деструктора и правильного выполнения delete.
Ver de C++ o tópico de apontadores inteligentes e adaptar para MQL(https://habr.com/post/140222/).
Talvez haja algo na kodobase...
Ver de C++ o tópico de apontadores inteligentes e adaptar para MQL(https://habr.com/post/140222/).
Talvez haja algo na kodobase...
obrigado, mas não vi aí nenhuma resposta às minhas perguntas.
Não compreendo porque é que o destruidor não é chamado quandoA *a= novo A;
Obrigado, mas não vi aí nenhuma resposta às minhas perguntas.
Não compreendo porque é que o destruidor não é chamado quandoA *a= novo A;
Resultado:
1:POINTER_AUTOMÁTICO
1:POINTER_DYNAMIC
2:POINTER_DYNAMIC
2:POINTER_AUTOMÁTICO
Obrigado, mas não vi aí nenhuma resposta às minhas perguntas.
Não compreendo porque é que o destruidor não é chamado quandoA *a= novo A;
Criar com novo e apagar com apagar