Errores, fallos, preguntas - página 2120

 
fxsaber:

No parece que tenga un enfoque estrecho. Parece que aún no es de dominio público.

Bien puede ser un producto interno de análisis de su propia publicidad, foro y algo más
 
Комбинатор:
Bien puede ser el producto interno del análisis de su propia publicidad, el foro y algo más

La descripción, de alguna manera, se corresponde mal con el único uso interno.

 

?

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

Resultado: 3 4

¿Cuál es la diferencia?

 
A100:

?

Resultado: 3 4

¿Cuál es la diferencia?

Hay, por supuesto, una diferencia. En el primer caso, primero va ++a, luego +, luego ++a.

La segunda es b+=1, luego b+=1, luego b+b.

 
¿Puedes aconsejar a los novatos? En el pasado, en MQL4, al escribir una condición en un EA, solíamos simplemente escribir Close[0] indicando el precio de cierre, por ejemplo, una vela cerró por encima de la media móvil y se abrió la orden. En MQL5 (para Forts) no funciona, los diferentes indicadores pueden ser comparados a través de asas, pero el simple análisis de velas no funcionará. Tal vez, estos candeleros (alto, bajo, apertura, cierre) tienen que ser declarados en alguna parte? Para MT4, sólo escribí Close[0] en la condición y el sistema entendió que este es el precio de cierre de la barra actual.
 
VadimR:
¿Puedes aconsejar a los novatos? En el pasado, en MQL4, al escribir una condición en un EA, solíamos simplemente escribir Close[0] indicando el precio de cierre, por ejemplo, una vela cerró por encima de la media móvil y se abrió la orden. En MQL5 (para Forts) no funciona, los diferentes indicadores pueden ser comparados a través de asas, pero el simple análisis de velas no funcionará. ¿Quizás los datos de las velas (alto, bajo, apertura, cierre) tienen que ser declarados en algún lugar? Pero para MT4, simplemente escribí Close[0] en la condición y el sistema se dio cuenta de que este es el precio de cierre de la barra actual.

Utilice la función CopyXXXX

 
fxsaber:

Hay, por supuesto, una diferencia.

La segunda es b+=1, luego b+=1, luego b+b.

Si se sigue esta lógica, entonces

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

Primero c+=1, luego c+c y el resultado es 1+1= 2. Y el resultado = 1

 
A100:

Si se sigue esta lógica, entonces

Primero c+=1, luego c+c y el resultado es 1+1= 2. Y el resultado = 1

Sólo funciona incorrectamente en el script, y funciona bien en el EA.

Me refiero al ejemplo anterior.

 
A100:

Si sigues esa lógica, entonces

Primero c+=1, luego c+c y el resultado es 1+1= 2. Y el resultado = 1

Te falta la lógica.

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

No entiendes nada.

Si no entiendo la lógica, entonces ¿por qué el resultado https://www.mql5.com/ru/forum/1111/page2140#comment_6484866 es el mismo en ambos casos en C99\C++?

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