Errori, bug, domande - pagina 1491

 
Come faccio a trascinare la finestra del grafico su un altro monitor?
 
Joo Zepper:
Come faccio a trascinare la finestra del grafico su un altro monitor?

aprire un altro terminale e trascinarlo fuori)

O allungarlo, ma questo non va bene

 
Alexandr Bryzgalov:

aprire un altro terminale e trascinarlo fuori)

o tirarla per le lunghe, ma non è molto buona.

Lo stesso vale per gli altri terminali - tutti comunicano tra loro tramite eventi.

Perché allungare il terminale "non va bene"?

 
Joo Zepper:


e perché allungare il terminale "non va bene"?

Lo capisco da come mi sento.

la tua mano è abituata a una certa dimensione dello schermo, e quando la allunghi, la tua mano si sposta dal tavolo.

Se ti piace, perché no?

Non mi piace.

 
Joo Zepper:
Come faccio a trascinare la finestra del grafico su un altro monitor?
Staccare la finestra dal terminale
 
Yuri Evseenkov:

MT4. Voglio attirare l'attenzione sulla differenza nell'ordine di inizializzazione delle variabili globali e delle variabili esterne. Non è menzionato nella documentazione.

La variabile extern si trova nello scope globale e dal tipo di variabile (globale o locale) si riferisce alla globale, come è scritto nella documentazione e nel tutorial di Kovalev.

Poiché la documentazione non dice nulla sull'ordine di inizializzazione di extern, è logico concludere che l'ordine di inizializzazione di extern è lo stesso di quello della variabile globale stessa.

In effetti, le differenze sono significative. Le variabili globali a e b sono inizializzate una volta prima dell'esecuzione della prima funzione init; mantengono i loro valori iniziali (o modificati nel codice), se il timeframe o il simbolo sul grafico è cambiato.

La variabile extern int c non salva il valore cambiato nel codice e, se il timeframe o lo strumento sul grafico è stato cambiato, prende il valore iniziale specificato. Il codice qui sotto lo mostra.

Questo è importante da sapere per capire perché, a parità di condizioni, i risultati del codice eseguito dalla finestra "Proprietà" o dalla ricompilazione differiscono dai risultati del codice eseguito cambiando il timeframe o il simbolo.

Qui sotto c'è il codice che mostra questo. Se cambiamo timeframe o simbolo diverse volte, vedremo che a e b crescono e c mantiene il suo valore iniziale.


Dimenticate la parola esterno

Il nuovo MQL4 usa l'input. Inizia da lì.

Le variabili esterne sono sempre reinizializzate appena prima della chiamata di OnInit - questo è un parametro di input esterno!

 
Slawa:

Dimenticate la parola esterno

Il nuovo MQL4 usa l'input. Inizia da lì.

Le variabili esterne sono sempre reinizializzate appena prima della chiamata OnInit - è un parametro di input esterno!

In MQL4++ non posso fare a meno di extern quando ho bisogno di cambiare i parametri di input programmaticamente. Per esempio, quando converto un indicatore semplice in uno interattivo devo sostituire input con extern. Il compilatore tratta le variabili di input come const e si lamenta al tentativo di cambiarle. Con extern non ci saranno questi problemi.
 
Slawa:

Dimenticate la parola esterno

Il nuovo MQL4 usa l'input. Inizia da lì.

Le variabili esterne sono sempre reinizializzate appena prima della chiamata OnInit - è un parametro di input esterno!

Le variabili esterne (globali) vengono reinizializzate, e questo è un bene. E le variabili globali (non esterne) non lo sono, e non va bene.
 
Slawa:

Dimenticate la parola esterno


Sì, prima ha insegnato a camminare e parlare

e ora insegna a sedersi e a stare zitto)

 
Slawa:

Dimenticate la parola esterno

Il nuovo MQL4 usa l'input. Inizia da lì.

Le variabili esterne sono sempre reinizializzate appena prima della chiamata OnInit - è un parametro di input esterno!

Sarebbe bene rifletterlo nella documentazione.