Errori, bug, domande - pagina 1516

 
zaskok3:

Smettete di far finta di non capire niente: lo sfondo può essere trascinato via dalla chiavetta. Ci sono molti altri modi. La cosa principale è tirarla per le lunghe. Non c'è nemmeno bisogno di farlo sul computer di qualcun altro.

Avete trasferito le vostre password, abilitato il salvataggio delle password sul computer di qualcun altro e l'avete chiamato un buco. Hai nascosto il fatto che hai abilitato il salvataggio della password fino all'ultimo momento.

La conclusione è logica: una dozzina dei suoi cloni sono già stati rilasciati per recidiva.

 
Renat Fatkhullin:
Ci sono piani per apportare modifiche alla funzionalità MetaEditor per evidenziare le variabili, nel debugger per creare automaticamente tutte le variabili utilizzate? Come in Qt Creator IDE o VS.
 
coderex:
Ci sono piani per apportare modifiche alla funzionalità MetaEditor per evidenziare le variabili, nel debugger per creare automaticamente tutte le variabili utilizzate? Come in Qt Creator IDE o VS.
Sì, decisamente.
 
Renat Fatkhullin:
Sì, lo farò.
Mi chiedo quanto presto?
 
Slawa:
Si prega di controllare l'applicazione #1416121 sull'inizializzazione delle variabili globali/statiche!
 
Alexey Kozitsyn:
Si prega di controllare la richiesta #1416121 sull'inizializzazione delle variabili globali/statiche!

In coda. L'applicazione ha solo due ore.

In generale, tali domande dovrebbero essere poste in un forum. Perché può colpire molte persone. Mi prendo la libertà di citarti e poi di rispondere.

Salve. Correggetemi se mi sbaglio. Le variabili statiche e globali sono inizializzate una volta prima di avviare il programma (cioè la funzione OnInit()). Di conseguenza, se il programma viene deinizializzato (viene chiamata la funzione OnDeinit()), il programma deve "dimenticare" i valori delle variabili globali/statiche e prima della prossima esecuzione OnInit() inizializzarle con i valori iniziali.

Ho trovato un fatto interessante in mql4 Expert Advisors. Se dichiarate variabili globali/statiche, allora, per esempio, quando cambiate i parametri di input, cioè dopo OnDeinit(), i valori di queste variabili non vengono resettati. Ma negli indicatori - lo sono. Cosa fare? Questo sembra un errore.

Ho controllato su mql5 (build 1241 x64) - simile. In Expert Advisors - non resettare, in indicatori - resettare.

Questo è un comportamento pianificato. Inoltre, è chiaramente descritto nella documentazione

Carico e scarico degli indicatori

Gli indicatori vengono caricati nei seguenti casi:

-attaccareun indicatore a un grafico;

-iniziodel terminale (se un indicatore è stato collegato a un grafico prima della precedente chiusura del terminale)

-caricamentodi un modello (se il modello contiene un indicatore collegato al grafico)

-cambiareprofilo (se un indicatore è collegato a uno dei grafici di profilo);

-cambiareil simbolo e/o il periodo del grafico al quale l'indicatore è collegato;

-dopo l'avvenuta ricompilazione di un indicatore, se questo indicatore è stato collegato a un grafico

-cambiamento dei parametri di ingresso dell'indicatore.

Gli indicatori vengono scaricati nei seguenti casi:

-quando sistacca un indicatore da un grafico;

-chiusuradel terminale (se un indicatore è collegato a un grafico);

-caricamentodi un modello, se un indicatore è collegato a un grafico

Chiudere ilgrafico a cui è stato collegato un indicatore; - Chiudere il terminale (se un indicatore è stato collegato al grafico)

-Cambiareun profilo, se un indicatore è collegato a uno dei grafici del profilo da cambiare;

-Cambiareil simbolo e/o il periodo del grafico a cui è collegato l'indicatore;

-cambiare iparametri di ingresso dell'indicatore.

Lo scarico e il carico comportano la completa reinizializzazione di tutto.

In Cinque, come lei ha giustamente notato, la situazione è simile.

È vero, era storicamente così in MQL4 abbiamo prima cambiato questo comportamento (per renderlo come negli esperti, cioè il comportamento che ci si aspetta). Ma sono sorte molte domande con i vecchi indicatori, che si basavano su questa inizializzazione. Siamo stati costretti a tornare

Nei cinque, questo è stato il caso immediatamente a causa dell'architettura. Quando cambi i parametri, il vecchio indicatore con i vecchi parametri viene distrutto e viene creato il nuovo indicatore con i parametri cambiati.

Input переменные
Input переменные
  • docs.mql4.com
Input переменные
 
Slawa:
In coda. L'applicazione ha solo due ore.

L'ho duplicato qui per sicurezza.

Questo è un comportamento pianificato. Inoltre,è chiaramente descritto nella documentazione.

Ho appena guardato qui e qui. E penso che sia logico, dato che sto lavorando con una classe di memoria statica. E, di nuovo, ha senso che se c'è una "cattura" sotto forma di tecniche stabilite in relazione a diversi tipi di programmi, sarebbe bene descriverla anche nella documentazione per la classe di memoria statica (variabili statiche e globali).

Si prega di aggiungere alle osservazioni.

 
Alexey Kozitsyn:

L'ho duplicato qui, per sicurezza.

È che ho guardato qui e qui. E penso che sia logico, dato che sto lavorando con una classe di memoria statica. E, di nuovo, ha senso che se c'è una "cattura" sotto forma di tecniche stabilite in relazione a diversi tipi di programmi, sarebbe bene descriverla anche nella documentazione per la classe di memoria statica (variabili statiche e globali).

Si prega di aggiungere alle osservazioni.

Quali osservazioni? Riguardo al carico/scarico del programma?
 
Slawa:
Quale commento? Riguardo al caricamento/scaricamento del programma?
Sul fatto che l'inizializzazione delle variabili statiche e globali è causata da diversi eventi negli indicatori e negli Expert Advisors. Aggiungere, di conseguenza, nel paragrafo sulle variabili globali e statiche, nella sottosezione "osservazioni".
 

MT5 aiuto:

IsStopped
 
Проверяет принудительное завершение работы mql5-программы.
 
bool  IsStopped();
 
Возвращаемое значение
 
Возвращает true, если в системной переменной _StopFlag содержится значение, отличное от 0. Ненулевое значение записывается в переменную _StopFlag, если поступила команда завершить выполнение mql5-программы. 
В этом случае необходимо как можно быстрее завершить работу программы, в противном случае программа будет завершена принудительно извне через 3 секунды.

Ho appena controllato - l'indicatore viene rimosso dal grafico ma continua a funzionare per 3 secondi, 10 secondi, 3 minuti...(IsStopped non è stato controllato lì, non è questa la domanda)

1) Perché c'è scritto "terminazione forzata per 3 secondi" ma non funziona nella realtà?

2) Perché i processi (script, indicatori, Expert Advisors, agenti tester) non terminano forzatamente quando vengono rimossi da un grafico, un utente ferma un test, ecc.