Logica di apprendimento - pagina 3

 

Vorrei aggiungere qualcosa sulla sezione criticata dal 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;

Fondamentalmente, per ottimizzare i calcoli sarebbe più logico terminare ogni blocco if() con un break check - altrimenti risulta che tutti e cinque gli operatori if() saranno passati indipendentemente dai risultati del check.

Dato che l'operatore break non può essere usato qui direttamente, questo blocco può essere facilmente incorporato in qualche ciclo. Ecco, per esempio, una variante "loop":

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;
      }   
   }   
   

Naturalmente, l'inizializzazione delle variabili logiche è auspicabile, è vero.

E sarebbe abbastanza breve, se si scrivono questi nomi di stringhe di valute in un array-constant e si passa attraverso di esso in un ciclo naturale.

P.S. Ora ho capito il mio errore: dovrei passare almeno due if() :) Tuttavia, anche questo può essere ottimizzato, tagliando i controlli dopo aver trovato due valute in una coppia.

 
age_nt:

Grazie Dimitri per la tua attenzione... Rispetto la tua conoscenza....e l'umorismo, naturalmente.

Non ha potuto apprezzarlo - nessun MSoffffffis installato


Qui http://www.twirpx.com/file/86887/?rand=1440166 è un libro di testo sulla logica formale in formato djvu. "Kirillov V.I., Starchenko A.A. Logic" è un manuale di logica per avvocati. Questo libro sarà migliore. Io stesso una volta ho iniziato con questo.
 
A rigor di logica, non dovremmo essere tutti qui.
 
Non devi parlare per tutti. Sono coerente e logico qui :) Anche Peter e Victor, credo. Non so gli altri.
 
denis_orlov:
A rigor di logica, non dovremmo essere tutti qui.


==++

Non tutti sono logicamente capaci di partire dall'inizio. Dal primo post. Come Chukchi - quello che vedo, quello che canto...

 
nikost:


==++

Non tutti possono partire logicamente dall'inizio, dal primo post. Come Chukchi - quello che vedo, quello che canto...

Tu sei il Chukcha)!

Il topicstarter dovrebbe iniziare, ma l'ha annunciato ed è scomparso, quindi il pubblico sta diventando impaziente...

 
drknn:

Qui http://www.twirpx.com/file/86887/?rand=1440166 è un libro di testo sulla logica formale in formato djvu. "Kirillov V.I., Starchenko A.A. Logic" è un manuale di logica per avvocati. Questo libro sarà migliore. Io stesso una volta ho iniziato con questo.

Grazie Vladimir!
 

Signori, per favore non attaccatevi a vicenda, o cancellerò tutti i post inutili. E non si faccia prendere dalle emozioni. Un filo è un filo.

 
Un ramo è come un ramo. Solo già moderato :)
 

Domani proverò a rifare questo indicatore https://www.mql5.com/ru/code/9751.

Il fattore rilevante sarà il tempo di calcolo. Più veloce è, meglio è. Ma il rendering dovrebbe essere mantenuto. Possiamo chiamarlo compito a casa (trovare varianti di come ridurre il tempo di calcolo).

L'indicatore è stato l'ultimo in CodeBase, quindi mi scuso con l'autore.