Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 147
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
Por favor, ajude - Não consigo entender porque recebo zero ao calcular a matriz VesMass em valores i>0 ?
Acontece que você deve escrever não 4 e 5, mas 4.0 e 5.0 - qual é a lógica - não está claro para mim...
Leia a documentação e ela se tornará clara. É bom que você mesmo o tenha feito.
Já li sobre algo assim antes - então decidi tentar, mas não está claro onde está a lógica por trás disso... E, a propósito, não consegui encontrar a resposta na documentação.
Você pode escrever 4,0/5 ou (duplo)4/5 - então o resultado é um número real.Esta é uma característica não apenas no MCL, em C++ e em outras linguagens de programação também - a divisão de dois inteiros ou variáveis do tipo (int) dará um resultado truncado ao inteiro. No seu caso 4/5=0.
Você pode escrever 4,0/5 ou (duplo)4/5 - então o resultado é um número real.Esta não é apenas uma característica da ICL, em C++ e outras linguagens de programação é a mesma - dividir dois inteiros ou variáveis de tipo (int) dará um resultado truncado a um inteiro. No seu caso 4/5=0.
Entendo isso, mas não entendo a lógica da solução - ou seja, a necessidade.
Eu entendo isso, mas não entendo a lógica por trás da solução - ou seja, a necessidade.
Bem, você não argumenta "por que 2*2=4 em aritmética, qual é a lógica da solução"? Basta tomá-lo como um axioma e usá-lo. É assim com a divisão de dois números inteiros.
Bem, você não argumenta "por que 2*2=4 em aritmética, qual é a lógica por trás da solução"? Basta tomá-lo como um axioma e usá-lo. É o mesmo com a divisão de dois números inteiros.
Vou verificar com adição...
A linha é uma linha de tendência. Eu mudei as propriedades para um raio. Isso não ajudou. Se eu quisesse que ele produzisse o preço independentemente da posição da barra zero (acima, abaixo).
Este código também não funciona.
int start() {
double pr=ObjectGetValueByShift("line",0);
Se (Bid==pr){
Alerta (pr);}
retorno(0);}
O nome da linha está escrito corretamente?
Experimente este roteiro e mostre o que ele diz nos registros.
}
O roteiro detecta o objeto, escreve o nome corretamente. Mas o preço é absolutamente canhoto. É marcado na foto com uma linha horizontal. Ele dá esses preços independentemente de as barras terem cruzado a linha ou não.
A linha é de tendência. Alterou as propriedades para vigiar. Isso não ajudou. Idealmente, o preço deve ser exibido independentemente da posição da barra zero (superior, inferior).
Este código também não funciona.
int start() {
double pr=ObjectGetValueByShift("line",0);
Se (Bid==pr){
Alerta (pr);}
retorno(0);}
A licitação pode facilmente saltar sua linha, não é obrigada a parar em cada ponto (ou seja, você não terá a igualdade exata).
mudar a condição para, por exemplo, se ((MathMin(Close[1],Open[0])<=pr && Bid>=pr) ||| (MathMax(Close[1],Open[0])>=pr && Bid<=pr)) ou similar...
A licitação pode facilmente saltar sua linha, não é obrigada a parar em todos os pontos (ou seja, a igualdade exata não acontecerá)
mudar a condição para, por exemplo, se ((MathMin(Close[1],Open[0])<=pr && Bid>=pr) ||| (MathMax(Close[1],Open[0])>=pr && Bid<=pr)) ou similar...
Obrigado!
E se a situação for diferente? Há linhas horizontais com nomes diferentes na tabela. Você precisa do roteiro para calcular qual linha corresponde a qual preço.