![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
-Alexey-:
Это было бы логично, но сейчас операция ">" ("<" не проверял) может возвращать результ true для таких чисел "равных в смысле машинного нуля". Обнаружился эффект т.к. результат численного расчета получился больше теоретически возможного в результате такого эффекта, а после использования спец. функций, что выше - стал правильным. Поэтому и предлагаю ввести дополнение в справку.
O meu conhecimento do assunto é superficial, pelo que não posso avaliar o que disse. Escreva para o Service Desk e eles irão analisar o assunto.
Developerc - Obrigado pelo trabalho realizado - mt5 é uma boa ferramenta,
Gostaria de acrescentar mais exemplos de trabalho com funções,
aulas, etc. Claro que para o fazer na ajuda - ideal, mas também aqui
Mas aqui seria bom.
Um agradecimento especial a todos aqueles que escrevem artigos com exemplos. Muito obrigado.
Por agora, tome este ficheiro como exemplo.
A classe CSignalCustomMACD é absolutamente idêntica ao CSignalMACD, excepto pelo facto de se basear na versão "personalizada" do indicador da entrega padrão.
Não se esqueça de acrescentar uma linha no código fonte do Expert Advisor:
caso contrário, não funcionará no testador.
Se a pasta Indicadores\Exemplos não contém o ficheiro MACD.ex5, o indicador deve ser compilado.
Um exemplo será acrescentado à ajuda num futuro próximo.
Isto faria sentido, mas agora a operação ">" ("<" não verificou) pode voltar a ser verdadeiro para tais números "igual no sentido de máquina zero". O efeito foi detectado porque o resultado do cálculo numérico foi maior do que teoricamente possível como resultado deste efeito, mas depois de utilizar as funções especiais acima referidas, tornou-se verdadeiro. É por isso que proponho uma adição à ajuda.
Basta usar DBL_EPSILON em todas as comparações, não é difícil:
Se trabalhar com preços, normalize-os após quaisquer cálculos e utilize o Point/2.0 em vez do DBL_EPSILON:
Por alguma razão, a leitura de um array através da função FileReadArray não funciona , embora o ficheiro esteja aberto, contenha dados, etc:
Por alguma razão, a leitura de um array através da função FileReadArray não funciona , embora o ficheiro esteja aberto, contenha dados, etc:
Escreve primeiro os dados no ficheiro da mesma forma, ver o formato...
E depois leia...
Primeiro escreve-se os dados num ficheiro da mesma forma, ver o formato...
E depois leia...
Escrevo os dados uma linha de cada vez no indicador OnCalculated ou OnInit do Expert Advisor via FileWrite.
Como resultado, o ficheiro é uma lista de números:
10000
10000
9996.85
10005.25
10023.4
10029.7
É claro que também poderíamos escrever a matriz como um todo, mas porque devemos tomar medidas desnecessárias e qual é o erro aqui?
Não consegui encontrar quaisquer restrições sobre isto na documentação.
Escrevo os dados linha a linha para o indicador OnCalculated ou OnInit of Expert Advisor via FileWrite.
Como resultado, o ficheiro é uma lista de números:
10000
10000
9996.85
10005.25
10023.4
10029.7
Claro que também pode escrever a matriz como um todo, mas porque é que preciso de fazer coisas desnecessárias e qual é o erro aqui?
Não encontrei quaisquer limitações sobre este assunto na documentação.
Por alguma razão, a leitura de um array através da função FileReadArray não funciona , embora o ficheiro esteja aberto, contenha dados, etc:
A partir da ajuda:
FileReadArray
Lê arrays de qualquer tipo excepto arrays de cordas (pode ser um conjunto de estruturas sem cordas e arrays dinâmicos) a partir de um ficheiro binário da posição actual do ponteiro do ficheiro.