Errori, bug, domande - pagina 1683

 
I breakpoint durante il debug all'interno di OnBookEvent non funzionano - l'eventoBookEvent non si verifica (la sottoscrizione esiste).
 

Quanto segue è scritto nel codice dell'indicatore:

Cioè Periodo() restituisce int (in questo caso 0), mentre deve restituire ENUM_TIMEFRAMES! Allo stesso tempo _Period funziona normalmente e contiene il timeframe corrente (in questo caso PERIOD_H1). Questo è comunque un errore poiché l'aiuto della funzione Period() lo indica chiaramente:

Возвращаемое значение

Il contenuto della variabile _Period , che memorizza il valore del timeframe del grafico corrente. Il valore può essere uno dei valori dell'enumerazione ENUM_TIMEFRAMES.

 

Quale vantaggio si vede nelle finestre separate che saranno attraverso la build MT5?

 
Vasiliy Sokolov:

Quanto segue è scritto nel codice dell'indicatore:

Cioè Periodo() restituisce int (in questo caso 0), mentre deve restituire ENUM_TIMEFRAMES! Allo stesso tempo _Period funziona normalmente e contiene il timeframe corrente (in questo caso PERIOD_H1). Questo è in ogni caso un errore, perché l'aiuto della funzione Period() lo indica chiaramente:

forse senza il file mql5 si compila come per MT4?
 
Vasiliy Sokolov:

Quanto segue è scritto nel codice dell'indicatore:

Cioè Periodo() restituisce int (in questo caso 0), mentre deve restituire ENUM_TIMEFRAMES! Allo stesso tempo _Period funziona normalmente e contiene il timeframe corrente (in questo caso PERIOD_H1). Questo è in ogni caso un errore, perché l'aiuto della funzione Period() lo indica chiaramente:

Avete tf come tipo enum. Ma tu ci scrivi dentro l'int. Fate attenzione a scriverci dentro anche un valore enum.
 
Artyom Trishkin:
Period() restituisce il tipo ENUM_TIMEFRAMES
 
Комбинатор:
Period() restituisce il tipo ENUM_TIMEFRAMES

In cinque, Periodo() restituisce un enum e _Period restituisce un int.

In Quartet, sia il predefinito _Period che Period() sono di tipo int.

Dato che una persona riceve l'avviso di conversione implicita di enum, concludiamo che è un quattro.

 

Come posso scoprire l'ora del bicchiere accettato in OnBookEvent?

Non puoi farlo con SymbolInfoTick+time_msc, perché OnBookEvent è chiamato molto più spesso di OnTick.

Si potrebbe, naturalmente, memorizzare il valore di time_msc eGetMicrosecondCount in OnTick. E poi in OnBookEvent aggiungeremo il tempo trascorso a time_msc. Ma in qualche modo diventa un casino, perché OnBookEvent andrà in conflitto con OnTick - mentre uno è in esecuzione, l'altro potrebbe essere in attesa.

 

Si prega di aggiungere nella colonna Source del log degli esperti non solo il nome del programma (che ha emesso la voce) e il simbolo su cui è in esecuzione. Ma anche il tipo di programma - indicatore/advisor/script. E l'handle del grafico su cui è in esecuzione (può essere un messaggio popup).

Per lo stesso motivo (maniglie), si prega di aggiungere un popup del numero della maniglia quando si passa sopra le schede del grafico.

Si prega di aggiungere la registrazione per eventi come l'apertura di un nuovo grafico (insieme a un handle) e la cancellazione di un grafico.

 
Un esempio succinto del perché const può essere utile e di come, a volte, non se ne può fare a meno
void Func( const string &Str ) { } // const - обязателен!

void OnStart() { Func(_Symbol); }