Erros, bugs, perguntas - página 2622

 
Notei este erro no website em mensagens privadas no meu telefone.
Não funciona como uma página refrescante de uma forma padrão.

. Apareceu talvez 1 mês ou 2. Só não estava a prestar atenção.

O telefone está ligado ao andróide 10, se for importante.
Entrar em mensagens privadas e se uma nova mensagem chegou, nem sempre é actualizada automaticamente.

E quando me refresco com o dedo (de cima para baixo) também deixou de ser refrescante.

Tenho de carregar novamente no ícone da mensagem privada.

Bug apenas em mensagens privadas.
Actualização: isto só acontece na samsung internet.
É antes um problema após a actualização.

No cromado, tudo está bem.
 

Porquê na linha 3:

  datetime dt = 0;
  ulong x = 0;
  if(dt < x) x++;

aviso de "desajuste de sinal"?

A data é suposta ser um número sem assinatura (8 bytes como ulong). Dê-me um exemplo de uma data negativa.

 

Diz-me como depurar ex5 bibliotecas?

Existe uma biblioteca que funcionou durante vários anos sem quaisquer problemas. No entanto, após algumas alterações do compilador nas últimas construções, uma chamada de função de ponteiro da biblioteca termina com um erro de "chamada de ponteiro de função inválida". Se a fonte da biblioteca estiver incluída no Expert Advisor directamente através da ligação, não há erro.

Em geral, é necessária alguma forma de comparar tipos de apontadores(protótipos de funções), gerados na biblioteca e no Expert Advisor, que carrega a biblioteca.

O apoio está fechado. Não vou mostrar aqui o código fonte do mercado.

Para referência, com o mesmo código-fonte, a chamada da biblioteca funcionou bem no build 2190.
 
Stanislav Korotky:

Para referência, com o mesmo código-fonte, uma chamada da biblioteca funcionou bem no build 2190.

Em 2170 já não tenho indicadores de funções, aqui está um exemplo que ainda funciona em MQL4, mas que já não funciona em MQL5

https://www.mql5.com/ru/forum/323539/page3#comment_13444791

 
Igor Makanu:

Deixei de trabalhar com indicadores de função em 2170. Aqui está um exemplo que ainda funciona em MQL4, mas que deixou de funcionar em MQL5

https://www.mql5.com/ru/forum/323539/page3#comment_13444791

Já o li. Tenho um caso diferente. Mas esta é provavelmente a consequência do mesmo "aperto dos parafusos". Contudo, as boas práticas neste caso implicam instruções humanas para a migração de desenvolvimentos existentes com exemplos ou disponibilidade de um paquímetro.

 

Matemática bastante divertida

//+------------------------------------------------------------------+
double volume_step = 0.01;
void OnStart()
  {
   int total = 10;
   double aVolume = 0.01;
   
   for(int i=0; i<total; i++)
     {
      aVolume = volume_step * MathFloor(aVolume / volume_step);
      Print(DoubleToString(aVolume,8)+"   "+ DoubleToString(volume_step,2)+"   "+DoubleToString(MathFloor(aVolume / volume_step),2)+"  Next lot = "+(aVolume+0.01));
      aVolume+=0.01;
     }
  }
//+------------------------------------------------------------------+

Resultado

2020.01.05 17:09:28.798 Testador EURUSD,H1: 0,06000000 0,01 6,00 Próximo lote = 0,0699999999999999999
2020.01.05 17:09:28.798 Testador EURUSD,H1: 0,06000000 0,01 6,00 Próximo lote = 0,06999999999999999
2020.01.05 17:09:28.798 Testador EURUSD,H1: 0,06000000 0,01 6,00 Próximo lote = 0,06999999999999999
2020.01.05 17:09:28.798 Testador EURUSD,H1: 0,06000000 0,01 6,00 Próximo lote = 0,06999999999999999
2020.01.05 17:09:28.798 Testador EURUSD,H1: 0,06000000 0,01 6,00 Próximo lote = 0,069999999999999999999Como 0,06000000 + 0,01 torna-se 0,06999999999999999
2020.01.05 17:09:28.798 Testert EURUSD,H1: 0.05000000 0.01 5.00 Próximo lote = 0.06
2020.01.05 17:09:28.798 Testert EURUSD,H1: 0.04000000 0.01 4.00 Próximo lote = 0.05
2020.01.05 17:09:28.798 Testador EURUSD,H1: 0.03000000 0.01 3.00 Próximo lote = 0.04
2020.01.05 17:09:28.798 Testador EURUSD,H1: 0.02000000 0.01 2.00 Próximo lote = 0.03
2020.01.05 17:09:28.798 Testador EURUSD,H1: 0.01000000 0.01 1.00 Próximo lote = 0.02


 
Vladimir Pastushak:

Matemática bastante notável

Como é que 0,06000000 + 0,01 se torna 0,06999999999999999999999

porque 0,0699999999999999999999999 é o número mais próximo de 0,07 que pode ser representado por tipo duplo

 
Vladimir Pastushak:

Uma matemática bastante divertida

Resultado

2020.01.05 17:09:28.798 Testert EURUSD,H1: 0.06000000 0.01 6.00
2020.01.05 17:09:28.798 Testador EURUSD,H1: 0,06000000 0,01 6,00 Próximo lote = 0,06999999999999999
2020.01.05 17:09:28.798 Testador EURUSD,H1: 0,06000000 0,01 6,00 Próximo lote = 0,06999999999999999
2020.01.05 17:09:28.798 Testador EURUSD,H1: 0,06000000 0,01 6,00 Próximo lote = 0,06999999999999999
2020.01.05 17:09:28.798 Testador EURUSD,H1: 0,06000000 0,01 6,00 Próximo lote = 0,069999999999999999999 Como 0,06000000 + 0,01 torna-se 0,06999999999999999
2020.01.05 17:09:28.798 Testert EURUSD,H1: 0.05000000 0.01 5.00 Próximo lote = 0.06
2020.01.05 17:09:28.798 Testert EURUSD,H1: 0.04000000 0.01 4.00 Próximo lote = 0.05
2020.01.05 17:09:28.798 Testador EURUSD,H1: 0.03000000 0.01 3.00 Próximo lote = 0.04
2020.01.05 17:09:28.798 Testador EURUSD,H1: 0.02000000 0.01 2.00 Próximo lote = 0.03
2020.01.05 17:09:28.798 Testador EURUSD,H1: 0.01000000 0.01 1.00 Próximo lote = 0.02


Por favor, leia as docas e ficará feliz.

E sobre o assunto: IEEE 754, - estude-o.

 
Igor Makanu:

porque 0.0699999999999999999999999 é o número mais próximo de 0.07 que pode ser representado por tipo duplo

Vladimir Simakov:

Leia os documentos e ficará feliz.

Sobre o assunto: IEEE 754, - estudo.

O que lhe estás a ensinar... tem 49 produtos publicados no mercado. Ele próprio já sabe tudo....
 
Alexey Viktorov:
O que lhe estás a ensinar... tem 49 produtos publicados no mercado. Ele próprio já sabe tudo....

Então está a sugerir que aqueles que publicam no Mercado devem ser ignorados? Não tenho a certeza de querer fazer isso, houve uma pergunta, houve uma discussão, penso que é uma situação normal

PS:

para além disso .... tentar desimprimir duas vezes via printf(), tenho uma suspeita, haverá muitas "quantas descobertas maravilhosas o espírito da iluminação prepara para nós..."

;)