[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. No puedo ir a ningún sitio sin ti - 4. - página 254

 
Hola a todos)) Soy un novato y no me gusta leer ni mirar cosas, me gusta sobre todo confiar en la gente, ¿hay alguien que me pueda ayudar en mi búsqueda?
 
lx-7:
Hola a todos)) Soy un novato y no me gusta leer ni mirar cosas, me gusta sobre todo confiar en la gente, ¿hay alguien que me pueda ayudar en mi búsqueda?


Bueno, para empezar, no estaría mal decir, ¿cuáles son exactamente sus esfuerzos? ¿En qué necesita ayuda?

 
  
bool up=true;
   for(i=limit-1; i>=0; i--)
     {
      current=ExtBuffer0[i];
      prev=ExtBuffer0[i+1];
      if(current>prev) up=true;
      if(current<prev) up=false;
      if(!up)
        {
         ExtBuffer2[i]=current;
         ExtBuffer1[i]=0.0;
        }
      else
        {
         ExtBuffer1[i]=current;
         ExtBuffer2[i]=0.0;
        }
     }
Por favor, explique el significado de la operación lógica if(!up). ¡! - significa NO, pero su esencia en este código no la puedo entender.
 
silhouette:
Por favor, explique el significado de la operación lógica if(!up). ¡! - significa NO, pero su esencia en este código no la puedo entender.


¿Esto es más comprensible?

bool up=true;
   for(i=limit-1; i>=0; i--)
     {
      current=ExtBuffer0[i];
      prev=ExtBuffer0[i+1];
      if(current>prev) up=true;
      if(current<prev) up=false;
      if(up)
        {
         ExtBuffer2[i]=0.0;
         ExtBuffer1[i]=current;
        }
      else
        {
         ExtBuffer1[i]=0.0;
         ExtBuffer2[i]=current;
        }
     }
 

Aunque yo habría hecho las cosas de otra manera

   for(i=limit-1; i>=0; i--)
     {
      current=ExtBuffer0[i];
      prev=ExtBuffer0[i+1];
      if(current>prev)
        {
         ExtBuffer2[i]=0.0;
         ExtBuffer1[i]=current;
        }
      else if(current<prev) 
        {
         ExtBuffer1[i]=0.0;
         ExtBuffer2[i]=current;
        }
     }
 
silhouette:
Por favor, explique el significado de la operación lógica if(!up). ¡! - significa NO, pero su esencia en este código no la puedo entender.


if es un operador de salto condicional. Si los corchetes de este operador son verdaderos, se ejecuta el comando/lista de comandos que le sigue. De lo contrario, el código salta a...

en otras palabras:

if(up==false){// если высказывание (up==false) истинно, то
  ExtBuffer2[i]=current;
  ExtBuffer1[i]=0.0;
}
else{// иначе
  ExtBuffer1[i]=current;
  ExtBuffer2[i]=0.0;
}
 
Vinin:

Aunque yo habría hecho las cosas de otra manera


No lo hizo. Dijo que no entendía el diseño. Así que no pudo hacerlo. Es el código de otra persona.
 

Vinin, drknn gracias por las respuestas. Lo suponía, es que nunca he utilizado este diseño y no estaba seguro de entenderlo correctamente.

PS El código no es mío, por supuesto. Es un fragmento del indicador personalizado Awesome que viene de serie con el programa.

 
silhouette:

Vinin, drknn gracias por las respuestas. Lo suponía, sólo que nunca he utilizado esa construcción y no estaba seguro de haberla entendido bien.

PS El código no es mío, por supuesto. Es un fragmento del indicador personalizado Awesome que viene de serie con el programa.

 
FAQ:

Vadim, nadie duda de tu genialidad, me refería a que todo esto se puede hacer con herramientas más sencillas de la API, que es con lo que empezó el preguntante, pero en vez de explicar y ayudar, llevaste la conversación a tu propio tema como siempre. Y las consecuencias no tardan en llegar.

En cuanto a mí - todo cambia, funciona, siempre, y como debería:

El más genial - Dima :-))

Bueno, yo tengo todo hecho por el medio más simple de WinAPI. ¿No te has dado cuenta? Te mostré todas mis variantes.

¿Cuáles son las consecuencias? ¿Que no sé escribir en MQL4? Hace tiempo que no escribo en él. He olvidado las peculiaridades.

Lo has entendido todo mal.