Características da linguagem mql5, subtilezas e técnicas - página 232
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
Explicação da definição de DBL_EPSILON:
Essa é uma explicação ruim, porque
Outra maneira de explicar o significado de DBL_EPSILON:
DBL_EPSILON é apenas o tamanho do intervalo entre duplas consecutivas em [1,2).
https://www.exploringbinary.com/the-spacing-of-binary-floating-point-numbers/
https://en.wikipedia.org/wiki/Machine_epsilon
Para entender melhor o DBL_EPSILON, considere o incremento de um contador de ponto flutuante:
Se o valor inicial do contador for 1,0, o tamanho da etapa (epsilon) do contador será 2,220446049250250313e-16 (DBL_EPSILON) ≈ 2 na 16ª casa decimal.
/* 1.0000000000000002 1.0000000000000004 1.0000000000000007 1.0000000000000009 1.000000000000001 1.0000000000000013 1.0000000000000016 1.0000000000000018 1.000000000000002 1.0000000000000022 */
Se o valor inicial do contador for 1024, o tamanho da etapa (epsilon) do contador será 2,2737363675443232321e-13 (1024 * DBL_EPSILON) ≈ 2 na 13ª casa dec imal.
/* 1024.0000000000002 1024.0000000000005 1024.0000000000007 1024.000000000001 1024.0000000000011 1024.0000000000014 1024.0000000000016 1024.0000000000018 1024.000000000002 1024.0000000000023 */
Se o valor inicial do contador for 4503599627370496 (2^52), o tamanho da etapa do contador será 1,0 (2^52 * DBL_EPSILON)= 1. Nesse intervalo, um double se comporta como um contador inteiro, nenhuma fração pode ser representada.
/* 4503599627370497.0 4503599627370498.0 4503599627370499.0 4503599627370500.0 4503599627370501.0 4503599627370502.0 4503599627370503.0 4503599627370504.0 4503599627370505.0 4503599627370506.0 */
Você pode ver que os números menores têm intervalos menores entre eles, e os números maiores têm intervalos maiores entre eles.
Portanto, DBL_EPSILON é a taxa de erro relativa. relativo significa relativo à magnitude do número.
Em 1,0, o erro absoluto = 1 * 2,2204460492503131e-016 (DBL_EPSILON).
em d, o erro absoluto ≈ d * DBL_EPSILON.
(DBL_EPSILON é uma taxa de referência em 1,0, algo como a taxa de juros anual do banco, e é igual a 2^-52).
Uma observação: se você tentar imprimir 1024.0000000000003, ele imprimirá 1024.0000000000002 (arredondando para o número representável mais próximo), pois 1024.0000000000003 não é um número representável (número fp inexistente).
Isso é chamado de erro de representação:
Os números representáveis anteriores/seguintes são alcançados por meio da manipulação de bits (enum como antes: DoubleAdvance(value, -1)) ou usando DBL_EPSILON:
O DBL_EPSILON é usado principalmente para estimar (ou corrigir) erros de arredondamento fp após operações matemáticas em duplas (análise numérica):
|resultado verdadeiro - resultado fp| / resultado verdadeiro <= DBL_EPSILON
A chamada OnTester() é desativada no testador do MT5 quando há um algoritmo de otimização genética e NÃO um critério de otimização personalizado?
Acho que não. Mas eu gostaria de fazê-lo... De preferência, sem análise de configuração.
PS. CARAUL!!! Tudo se foi! Em cada passagem de otimização (deveria/não deveria) - OnTester() é chamado, o que pode aumentar muito o tempo total de otimização!
Quem puder ajudar... )))))
Em minha pesquisa, deparei-me com uma função interessante não documentada
você pode ocultar o comentário de entrada de uma caixa de diálogo
Postagem original aqui
https://www.mql5.com/ru/forum/1271#comment_9019
Em minha pesquisa, encontrei uma função não documentada interessante
você pode ocultar o comentário de entrada de uma caixa de diálogo
postagem original aqui
https://www.mql5.com/ru/forum/1271#comment_9019
No Tester, a tabela de histórico é substituída somente em dois casos.