Erros, bugs, perguntas - página 2654
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
Alguém nos pode esclarecer sobre a seguinte questão:
Ter um dll escrito em C# mas compilado:
- para projecto MT5 C# habitual - Net Framework dll - 64 bit
- MT4 - Net Framework dll - 32 bit, mas envolto em chamadas C geridas
As fontes dll são 100% idênticas, excepto o invólucro MT4, claro,
OS Win10-64
Bem, a questão é porque é que o MT4 funciona exactamente 4 vezes mais rápido, os números são aproximadamente 100 000 chamadas dll no MT4 durante 7,5 segundos, MT5 durante 30 segundos
Alguém nos pode esclarecer sobre a seguinte questão:
Ter um dll escrito em C# mas compilado:
- para projecto MT5 C# habitual - Net Framework dll - 64 bit
- MT4 - Net Framework dll - 32 bit, mas envolto em chamadas C geridas
As fontes dll são 100% idênticas, excepto o invólucro MT4, claro,
OS Win10-64
Bem, a questão é porque é que o MT4 funciona exactamente 4 vezes mais rápido, os números são aproximadamente 100 000 chamadas dll no MT4 durante 7,5 segundos, MT5 durante 30 segundos
IMHO. C-runtime num caso e uma máquina virtual no outro.
Uma interface gráfica é implementada no Expert Advisor. Também são implementados eventos de utilizadores (por exemplo, eventos de mudança de GUI). Realizo depuração de dados reais (F5). Assim que coloco um ponto de paragem num evento do utilizador - o depurador pára, mas a subsequente pressão de F5 (continua debugging) não leva a alterações na própria GUI. Pergunta: deveria ser este o caso, ou trata-se de um bug de depuração?
Se eu remover o ponto de paragem (a depuração continua) - as alterações na GUI são normais.
MT5, construir 2340.
IMHO. C-runtime num caso e uma máquina virtual no outro.
há um .Net virtual em ambas as dlls
encontrei a diferença no código, até atirei a classe base de 32 bits num fio separado, porque não tem outra forma de trabalhar
Fiz as mesmas manipulações para o MT5, os resultados são mais ou menos os mesmos (três testes cada):
MT5: ciclo 100000 , tempo 8,482981 seg , ciclo 100000 , tempo 8,638789 seg , ciclo 100000 , tempo 8,390046 seg
MT4: ciclo 100000 , tempo 7,128857 seg , ciclo 100000 , tempo 7,176361 seg , ciclo 100000 , tempo 7,205439 seg
Saudações! Boas Festas a todos os homens !!!!
Não percebo o que é o estranho insecto com a exibição em ziguezague da equidade no testador. Não compreendo o estranho insecto com ziguezague de exibição de equidade no testador. Se eu alterar a opção "Método de liquidação" de "Troca de Stoks" para "Forex", a equidade é exibida normalmente. Tive a mesma experiência há alguns anos, queria tentar ligar o MT5 a um fundo, testá-lo, assustar-me e desistir. Agora tentei novamente e a mesma coisa. É estranho?
O problema é solvível para métodos de classes de recipientes "dactilografados", mas não é solvível para funções normais.
A principal contradição é que para transferir estruturas é necessário utilizar a transferência por referência, e para as variáveis literais e temporárias - transferência por valor.
Como resultado, obtemos um erro de compilação para tipos de valores normais, porque ambas as funções sobrecarregadas são adequadas para a chamada.
Como solução parcial e apenas para tipos "primitivos", é possível construir 12 funções sobrecarregadas:
Mas se uma função deve aceitar dois argumentos "universais", então apenas 144 funções sobrecarregadas são necessárias para a implementar, enquanto que no caso de três desses argumentos, são necessárias todas as funções sobrecarregadas de 1728.
Sugestão:
Finalmente, permitir aos utilizadores passar literais e variáveis temporárias como argumentos da função const ref.
Que seja uma directiva # separada - seja o que for...
Defeitos na função do modelo/na operação de cache da classe:
(não fixado pelo MT5(build 2340)) ** Comportamento indefinido, cria-se várias vezes um objecto complexo embrulhado com tipo interno "C" e acaba por ser um tipo de dados completamente diferente, talvez "B", talvez "int", o que se quiser...
(não fixado pelo MT5(build 2340)) * Compile Error, bug ao passar um ponteiro de função como um argumento de modelo de ref. constante.
(não corrigido pelo MT5(build 2340)) * Compile Error, B<int> object can be created after the B<void*> class object, mas se for feito antes, ocorre um erro de compilação.
Defeitos na função/classe do modelo de trabalho:
(não fixado pelo MT5(build 2340)) ** Erro de compilação, bug dentro da função de modelo, ponteiro passado dentro da operação deconversão de tipo explícito comporta-se como uma classe, caso contrário como um ponteiro.
(não fixado pelo MT5(build 2340)) ** Compile Error, bug com geração de código de classe de modelo enquanto se utiliza a classe interna.
(não fixado pelo MT5(build 2340)) ** Erro de compilação, erro na tentativa de acesso à classe interna para parâmetro de função de modelo de modelo.
(não fixado pelo MT5(build 2340)) ** Erro de compilação, erro na geração do método/classe do modelo, o processo de "auto-substituição" do parâmetro do modelo vai para fora do scop para o código principal do programa.
(não fixado pelo MT5(build 2340)) * Compile Error, o erro com a classe template não gera código automaticamente quando a classe template actua como um valor de retorno para o método template.
(não fixado pelo MT5(build 2340)) * Compile Error, bug na definição de classe interna - não há possibilidade de se referir explicitamente ao espaço de nomes global ao especificar a classe base.
Defeitos em função sobrecarregada chamam a descoordenação de prioridades em MQL em comparação com C++:
(não fixado pelo MT5(build 2340)) *** Erro de compilação quando há herança de classe A <= B <= C <= D e duas funções de sobrecarga são implementadas, por exemplo, uma com o parâmetro A* e outra com o parâmetro B*, passando depois em tal função um objecto C* ou D* em MQL causa um erro de compilação "chamada ambígua para função sobrecarregada".
(não fixado pelo MT5(build 2340)) ** Tempo de execução, Descoordenação prioritária para chamadas de funções de modelo sobrecarregadas.
Sugestões:
link- sobre permitir que as variáveis literais e temporárias sejam passadas como argumentos da função const ref.
link- aomover ficheiros de projectos no separador Projecto, para ficheiros movidos que estão abertos e localizados nos separadores ME, para actualizar automaticamente o seu caminho de localização.
link- para introduzir a funcionalidade de declaração de typedef em MQL.
link- sobre a possibilidade de forçar a geração de construtores de cópias por defeito e operadores de atribuição.
Estou a pedir ajuda, estou completamente fora do circuito.
Na OnChartEvent, ao pressionar `C` cancelo/restauro a tabela de preços.
E tudo estaria bem, mas se a disposição do teclado não for seleccionada em inglês - não funciona.
Como tornar a detecção da pressão de "C" independente da disposição seleccionada?
Estou a pedir ajuda, estou completamente fora do circuito.
Na OnChartEvent, ao pressionar `C` cancelo/restauro a tabela de preços.
E tudo estaria bem, mas se a disposição do teclado não for seleccionada em inglês - não funciona.
Como fazer com que a detecção da pressão 'C' seja independente do layout seleccionado?
Necessidade de verificarlparam
Tanto para layouts de ru e en teclado (tanto em minúsculas como em maiúsculas) lparam será 67: