Errori, bug, domande - pagina 2009

 
fxsaber:
Perché nessun avvertimento che la variabile non sia utilizzata?

Perché è inizializzato.

 
Alexey Viktorov:

Perché è inizializzato.

Quindi che differenza fa? È inizializzato con una costante. Anche questo codice dovrebbe generare Warning

void OnStart()
{
  int Array[];
  int i;
  
  i = Array[0];
  i = Array[1];
  i = Array[2];
}

Perché la variabile e l'array non sono coinvolti da nessuna parte.

 
fxsaber:

Quindi che differenza fa? È inizializzato con una costante. Anche questo codice dovrebbe generare Warning

Perché la variabile e l'array non partecipano da nessuna parte.

Penso che tale codice non debba essere compilato affatto perché la dimensione dell'array non è definita. Ma è solo un'inezia.

Come mai non partecipano? Ad una variabile viene assegnato il valore di una cella dell'array. Questo è ciò che partecipano ai calcoli. Come può il compilatore conoscere i vostri piani futuri? Penso che farlo come lo vedi tu sarebbe probabilmente giusto, ma molto difficile. Se si cerca di presentare un algoritmo di tale controllo, si può scrivere quanto segue: il programmatore controlla se a una variabile è assegnato un certo valore. Se non lo è, significa che non è utilizzato. Prova a dare un algoritmo approssimativo per determinare che una variabile è inizializzata, ma non è usata da nessun'altra parte nei calcoli.

Il numero di variabili con lo stesso nome... è discutibile.

 
Alexey Viktorov:

Come farebbe il compilatore a sapere dei vostri piani futuri?

Il compilatore a volte butta fuori interi pezzi perché sa che

Forum sul trading, sistemi di trading automatico e test di strategia

Implementazioni alternative di funzioni/approcci standard

Renat Fatkhullin, 2016.09.01 23:50

Per evitare che il compilatore butti via il ciclo perché è inutile, dovete usare i risultati dei calcoli. Per esempio, fate la variabile Print Price.

 
fxsaber:

Il compilatore butta fuori interi pezzi a volte perché sa che

Beh, se Renat non ne ha abbastanza di rispondere, aspettiamo la sua risposta. E in linea di principio sono personalmente soddisfatto di tutto.

 
Per favore, se il lavoro nel kodobase è stato aggiornato (l'autore ha modificato il codice), segnate il relativo thread di discussione come non letto.
 

Come faccio a fare un #uninclude?

// Test.mqh
void Func() {};
#include <Test.mqh>

// Здесь видна Func();

#uninclude <Test.mqh>

// Здесь не видна Func();
 

Correggere il valore o l'unità

2017.09.21 11:37:27.564 Tester  EURUSD: preliminary downloading of history ticks started, it may take quite a long time
2017.09.21 11:37:32.564 Tester  EURUSD: "bases\FIBOGroup-MT5 Server\ticks\EURUSD\201708.tkc" download (836044.77 Kb/sec)
2017.09.21 11:37:41.565 Tester  EURUSD: 45% ticks downloaded (535.34 Kb/sec)
2017.09.21 11:37:49.565 Tester  EURUSD: 53% ticks downloaded (518.17 Kb/sec)
2017.09.21 11:38:01.571 Tester  EURUSD: 61% ticks downloaded (530.69 Kb/sec)
2017.09.21 11:38:12.571 Tester  EURUSD: 70% ticks downloaded (547.64 Kb/sec)
2017.09.21 11:38:26.572 Tester  EURUSD: 82% ticks downloaded (543.88 Kb/sec)
2017.09.21 11:38:38.573 Tester  EURUSD: 94% ticks downloaded (552.07 Kb/sec)
2017.09.21 11:38:50.573 Tester  EURUSD: preliminary downloading of history ticks completed, 44.41 Mb in 1:23.008 (547.80 Kb/sec)
 
fxsaber:

Come si fa un #uninclude?

Non potete farlo direttamente. Il refactoring del codice (diversa struttura dei file o OOP) aiuterà.

 
nel tester CopyTicks restituisce degli zeri, è normale?
Motivazione: