Lógica de aprendizaje - página 3

 

Me gustaría añadir sobre la sección criticada por gip:

bool showEUR, showUSD, showGBP, showCHF, showJPY, showRAVI;
   if ( StringFind(Symbol(), "EUR", 0) != -1) showEUR = TRUE;
   if ( StringFind(Symbol(), "USD", 0) != -1) showUSD = TRUE;
   if ( StringFind(Symbol(), "GBP", 0) != -1) showGBP = TRUE;
   if ( StringFind(Symbol(), "CHF", 0) != -1) showCHF = TRUE;
   if ( StringFind(Symbol(), "JPY", 0) != -1) showJPY = TRUE;

Básicamente, para optimizar los cálculos sería más lógico terminar cada bloque if() con una comprobación de ruptura - de lo contrario resulta que los cinco operadores if() serán pasados independientemente de los resultados de la comprobación.

Dado que el operador de ruptura no se puede utilizar aquí directamente, este bloque se puede incorporar fácilmente en algún bucle. Aquí tenemos, por ejemplo, una variante de "bucle":

bool showEUR, showUSD, showGBP, showCHF, showJPY, showRAVI;
   while( true )
   {
      if (  StringFind(Symbol(), "EUR", 0) != -1) ) 
      {  
         showEUR = TRUE;         break; 
      }   
      if (  StringFind(Symbol(), "USD", 0) != -1) )
      {
         showUSD = TRUE;         break;
      }   
      if (  StringFind(Symbol(), "GBP", 0) != -1) )
      {
         showGBP = TRUE;         break;
      }   
      if (  StringFind(Symbol(), "CHF", 0) != -1) )
      {
         showCHF = TRUE;         break;
      }   
      if (  StringFind(Symbol(), "JPY", 0) != -1) )
      {
         showJPY = TRUE;         break;
      }   
   }   
   

Por supuesto, la inicialización de las variables lógicas es deseable, es cierto.

Y sería bastante breve, si escribes estos nombres de cadenas de monedas en un array-constante y lo recorres en un bucle natural.

P.D. Ahora he entendido mi error: debería pasar al menos dos if()'s :) Sin embargo, esto también se puede optimizar, cortando las comprobaciones después de encontrar dos monedas en un par.

 
age_nt:

Gracias Dimitri por tu atención...respeto tu conocimiento....y tu humor por supuesto.

No se puede apreciar - no hay MSoffffffis instalados


Aquí http://www.twirpx.com/file/86887/?rand=1440166 es un libro de texto sobre lógica formal en formato djvu. "Kirillov V.I., Starchenko A.A. Logic" es un libro de texto de lógica para abogados. Este libro será mejor. Yo mismo empecé una vez con ella.
 
Lógicamente, no deberíamos estar todos aquí.
 
No tienes que hablar por todos. Estoy siendo coherente y lógico aquí :) Peter y Victor también, supongo. No sé los demás.
 
denis_orlov:
Lógicamente, no deberíamos estar todos aquí.


==++

No todo el mundo es lógicamente capaz de empezar desde el principio. Desde el primer puesto. Como Chukchi - lo que veo, lo que canto...

 
nikost:


==++

No todo el mundo puede empezar lógicamente desde el principio. Desde el primer puesto. Como Chukchi - lo que veo, lo que canto...

Tú eres el Chukcha)

El tópico debería empezar, pero lo anunció y desapareció, así que el público se está impacientando...

 
drknn:

Aquí http://www.twirpx.com/file/86887/?rand=1440166 es un libro de texto sobre lógica formal en formato djvu. "Kirillov V.I., Starchenko A.A. Logic" es un libro de texto de lógica para abogados. Este libro será mejor. Yo mismo empecé una vez con ella.

¡Gracias Vladimir!
 

Señores, por favor, no se ataquen entre sí, o borraré todos los mensajes innecesarios. Y no te emociones. Un hilo es un hilo.

 
Una rama es como una rama. Sólo que ya está moderado :)
 

Mañana intentaré rehacer este indicador https://www.mql5.com/ru/code/9751.

El factor relevante será el tiempo de cálculo. Cuanto más rápido, mejor. Pero el renderizado debe mantenerse. Podemos llamarlo tarea (para encontrar variantes que reduzcan el tiempo de cálculo).

El indicador acaba de ser el último en CodeBase, así que pido disculpas al autor.