Erros, bugs, perguntas - página 2120

 
fxsaber:

Não parece estar focado de forma restrita. Parece que ainda não é do domínio público.

Pode muito bem ser um produto interno de análise da sua própria publicidade, fórum e algo mais
 
Комбинатор:
Pode muito bem ser o produto interno da análise da sua própria publicidade, fórum e algo mais

A descrição de alguma forma corresponde mal apenas à utilização interna.

 

?

void OnStart()
{
        int a = 0, b = 0; //Результат:
        Print(( ++a) + ( ++a)); //3
        Print((b+=1) + (b+=1)); //4
}

Resultado: 3 4

Qual é a diferença?

 
A100:

?

Resultado: 3 4

Qual é a diferença?

Há, evidentemente, uma diferença. No primeiro caso, primeiro vai ++a, depois +, depois ++a.

O segundo é b+=1, depois b+=1, depois b+b.

 
Pode aconselhar novatos? No passado, na MQL4, quando escrevíamos uma condição numa EA, escrevíamos simplesmente Close[0] indicando o preço fechado, por exemplo, uma vela fechada acima da média móvel e a ordem era aberta. Em MQL5 (para Forts) não funciona, diferentes indicadores podem ser comparados através de pegas, mas a simples análise de castiçal não funcionará. Talvez, estes castiçais (alto, baixo, aberto, fechado) tenham de ser declarados algures? Para o MT4, acabei de escrever Close[0] no estado e o sistema compreendeu que este é o preço de fecho da barra actual.
 
VadimR:
Pode aconselhar novatos? No passado, na MQL4, quando escrevíamos uma condição numa EA, escrevíamos simplesmente Close[0] indicando o preço fechado, por exemplo, uma vela fechada acima da média móvel e a ordem era aberta. Em MQL5 (para Forts) não funciona, diferentes indicadores podem ser comparados através de pegas, mas a simples análise de castiçal não funcionará. Talvez os dados do castiçal (alto, baixo, aberto, fechado) tenham de ser declarados algures? Mas para o MT4, acabei de escrever Close[0] no estado e o sistema percebeu que este é o preço de fecho da barra actual.

Utilizar a função CopyXXXX

 
fxsaber:

Há, evidentemente, uma diferença.

O segundo é b+=1, depois b+=1, depois b+b.

Se seguir esta lógica então

void OnStart()
{
        int c = 0;    //Результат:
        Print( c     + (c+=1)); //1
}

Primeiro c+=1, depois c+c e o resultado é 1+1= 2. E o resultado = 1

 
A100:

Se seguir esta lógica então

Primeiro c+=1, depois c+c e o resultado é 1+1= 2. E o resultado = 1

Só funciona incorrectamente no guião, e funciona bem na EA.

Refiro-me ao exemplo anterior.

 
A100:

Se seguir essa lógica então

Primeiro c+=1, depois c+c e o resultado é 1+1= 2. E o resultado = 1

Falta-lhe a lógica.

Print((c+=0) + (c+=1)); //2
Print((c+=1) + c); //2
 
fxsaber:

Não estás a perceber a questão.

Se não percebo a lógica, então porque é que o resultado https://www.mql5.com/ru/forum/1111/page2140#comment_6484866 é o mesmo em ambos os casos em C99\C++?

Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2018.02.05
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы