Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 111
![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
Muito obrigado! Eu precisava dele para comparar as características das velas (mais, menos, etc.) Eu o parafusei - ele funciona. Só não consegue entender como compara o tipo de string de dados? ou o dobro para string não traduz número para string? :-D
PS. Não funciona em indicador - apenas em roteiro... Quando chamo Alto[i] - recebo apenas 4 casas decimais nele.
Estou escrevendo:
Alerta ("doubletostr High = ", DoubleToStr(High[1],5));
if (DoubleToStr(High[2],5)>(DoubleToStr(High[3],5))
{
Alerta ("Mais");
}
if (DoubleToStr(High[2],5)<(DoubleToStr(High[3],5))
{
Alerta ("Menor");
}
Trabalha, ele escreve o resultado com cinco dígitos, sobre/subcontagens. O problema é que no indicador o conjunto de cordas não aparece no gráfico. Portanto...
...escrita:
Alerta ("Duplo Alto Normalizado = ", NormalizeDuplo(Alto[1],5));
Não funciona - o resultado é > 1.1234
Eu não entendo os desenvolvedores - por que eles tiveram que complicar tanto as coisas? Por que, se ele mostra tantos dígitos na tabela, não vai riscar a função chamada com cinco dígitos? Talvez haja uma solução simples?
Fica ainda mais interessante:
traduzir
Alerta ("iFractals doubletostr= ", DoubleToStr(iFractals(0,0,MODE_UPPER,2),Dígitos));
Escrito: 1,32169 - OK.
Converter de volta para um valor numérico usando StrToDouble:
Alerta ("iFractals StrToDoubledoubledoubletostr= ", StrToDouble(DoubleToStr(iFractals(0,0,MODE_UPPER,2),Dígitos));
Resultado: 1.3217
Deve haver um memorando com Jackie Chan onde ele não entenda o chip).
E o que o Alert realmente produz?
Diz 0,01, mas na verdade é 0...0100.
Fica ainda mais interessante:
traduzir
Alerta ("iFractals doubletostr= ", DoubleToStr(iFractals(0,0,MODE_UPPER,2),Dígitos));
Escrito: 1,32169 - OK.
Converter de volta para um valor numérico usando StrToDouble:
Alerta ("iFractals StrToDoubledoubledoubletostr= ", StrToDouble(DoubleToStr(iFractals(0,0,MODE_UPPER,2),Dígitos));
Resultado: 1.3217
Deve haver um memorando com Jackie Chan onde ele entendeu mal o chip).
DoubleToStr() é usado para emitir mensagens com a precisão que você deseja. Impressão padrão (), Alerta(), etc., imprimir em 4 dígitos.
Quando você quer ver um número com a precisão desejada, é quando você usa DoubleToStr(), não nos cálculos.
Você não precisa traduzir nada para frente e para trás ... ;)
Diz 0,01 mas o valor real é 0...0100.
Saída então 100 * ponto = 100 * 0,00001 = 0,001pp (se para cinco dígitos)
O valor do lBUY foi alterado acima. Portanto, na minha opinião, a condição:
Não será cumprida. E, portanto, o valor do lBUY permanecerá o mesmo.
A variável j deve ser explicitamente inicializada no início da função com um valor negativo. Experimente. Eu ainda não procurei mais.
Hmm. Até agora a mesma coisa. Aqui nós temos:
DoubleToStr() é usado para emitir mensagens com a precisão que você deseja. Impressão padrão(), Alerta(), etc., imprimirá 4 dígitos.
Quando você quer ver um número com a precisão desejada, é quando você usa DoubleToStr(), não nos cálculos.
Você não precisa traduzir nada para frente e para trás ... ;)
É compreensível... agora...) Mas a questão é que eu preciso de alguma forma desenterrar um quinto dígito para os cálculos(
Se o DoubleToStr() não é bom para ele, então este idioma não tem tal característica? Os desenvolvedores não previram isto?
Hmm. É o mesmo até agora. Aqui estamos nós:
É compreensível... agora...) Mas a questão é que eu preciso de alguma forma desenterrar um quinto dígito para os cálculos(
Se o DoubleToStr() não é bom para ele, então este idioma não tem tal característica? Os desenvolvedores não previram isto?
Cavalheiros programadores! Favor aconselhar como combinar um EA com um indicador?
Por exemplo, peguei um simples bot mo_bidir.mq4 que negocia usando seu próprio algoritmo e quero que ele continue abrindo negócios usando seu próprio algoritmo, mas após o sinal de 3 МА.
Por exemplo, em um sinal - Três Médias em Movimento:
FastEMA>MediumEMA>SlowEMA (tendência acima) - bot compra
FastEMA<MediumEMA<SlowEMA (tendência down) - bot vende
Inp_Signal_ThreeEMA_FastPeriod = 8;
Inp_Signal_ThreeEMA_MediumPeriod = 38;
Inp_Signal_ThreeEMA_SlowPeriod = 48;
O que eu preciso é que o Expert Advisor continue negociando em 5 minutos e que o indicador dê sinais do prazo diário ou de 4 horas, e eu quero ser capaz de mudar os prazos nas configurações do bot.