[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 670
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
Qual é a probabilidade de um novo tick chegar antes de todos os cálculos atuais da EA estarem concluídos? Parece-me que somente neste caso os dados se tornarão antigos e irrelevantes.
eu verifiquei quanto tempo seu código conta - eu também, recentemente tive minhas dúvidas, é velocidade de cálculo MT4 suficiente para minha EA, afinal é suficiente por enquanto, meu código leva cerca de 18 ms, ou seja, em 1 segundo você é verificado 55 vezes, os ticks vêm de 10 a 70 por minuto, se mais de 50 ticks por minuto, isso significa que há uma vela
tente ver como seu código funciona, como este
aqui está o indicador que conta os carrapatos - para a reconciliação
Bem, se você tem um preço de abertura, desculpe-me por não o ter visto.
OpnPrice =iOpen(NULL,PERIOD_M5,0); você só pode mudar em uma barra fechada - o código acima com a condição se (contado != barM1) {
Como alterar o número de dígitos após o ponto decimal do indicador iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0) ao calcular no corpo de especialistas? O resultado é exibido com 4 (ou seja, 0,0001), enquanto que deve ser exibido com 5 (por exemplo, 0,00012) para uma análise precisa. E o terminal MT4 exibe valores de 5 dígitos na janela indicadora no gráfico.
O operador NormalizeDouble() irá resolver seus problemas.
Isto é, NormalizeDuplo(iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0),5) resultará no desejado 0,00012 ?
P.S. Adicionado e testado - nada. A saída é de apenas 0,00010, que é os mesmos 4 bits.
Não, não é bem assim, Roger.
IndicatorDigits() ver Boris. Mas deve ser inserido no próprio indicador, pois ele se referirá a ele e não à EA.
P.S. Outra coisa: esta função é adequada apenas para o indicador para o qual você tem o código. Então, será possível chamá-lo usando iCustom().
E para aqueles que são chamados de "padrão" como o iMACD(), eu não conheço a solução certa.
Portanto, o resultado de NormalizeDouble(iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0),5) será o desejado 0,00000 ?
Sim, é isso mesmo. A frase-chave estava no cálculo no corpo da EA? E aparentemente com o indicador padrão isto é impossível (((
Como alterar o número de dígitos após o ponto decimal do indicador iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0) ao calcular no corpo de especialistas? O resultado é exibido com 4 (ou seja, 0,0001), enquanto que deve ser exibido com 5 (por exemplo, 0,00012) para uma análise precisa. E o terminal MT4 exibe valores de 5 dígitos na janela indicadora no gráfico.
Você não deve alterar nada, a precisão nos indicadores padrão é definida para o máximo (até 8 dígitos), você tirou uma conclusão errada sobre a precisão da saída de dados porque Print() sai até 4 dígitos por padrão, nos cálculos (no intestino dos Expert Advisors por exemplo) a precisão máxima é usada, você precisa sair o dobro através do DoubleToStr() como exemplo:
e obtemos este resultado:
Você não precisa mudar nada, nos indicadores padrão a precisão é definida para o máximo (até 8 dígitos), você fez uma conclusão errada sobre a precisão da saída de dados porque Print() sai até 4 dígitos por padrão, nos cálculos (no intestino dos Expert Advisors, por exemplo) a precisão máxima é usada, para ver isso você precisa sair o dobro via DoubleToStr(), como um exemplo:
e obtemos tal resultado:
Certo, certo, certo! ! ! Anatoly - grande elogio, eu estava ficando pendurado nisso.
A verdade da vida é que "uma cabeça é boa, mas duas é melhor" (citação)
Não há necessidade de alterar nada, os indicadores padrão são definidos com a máxima precisão (até 8 dígitos)
É verdade, eu tinha a mesma suspeita :)