Caratteristiche del linguaggio mql4, sottigliezze e tecniche - pagina 5

 
Artyom Trishkin:

Non posso controllare ora, ma MQL_TESTER sembra includere tutto il resto. Ma tutto il resto, separatamente, non include l'altro.

Cioè, per capire che il programma funziona nel tester (in uno qualsiasi dei modi elencati), basta controllare il primo flag.

L'esempio riguardava qualcos'altro.
 
fxsaber:
L'esempio riguardava qualcos'altro.
Poi non l'ho capito - di cosa si trattava?
 
Artyom Trishkin:
Allora non capisco - di cosa si tratta?
static const è inizializzato da una funzione.
 
fxsaber:
static const è inizializzato da una funzione.
Ahhhh ..., "...Semyon Semyoyonych"... (с)
 
fxsaber:
La static const è inizializzata da una funzione.

1. Dove si trova questo nel programma?

Suppongo che sia nell'area delle variabili globali. Per non parlare del fatto che le variabili globali non hanno bisogno di modificatori statici, la sequenza di inizializzazione gioca un ruolo molto importante.

Il mio livello di professionalità nella programmazione è molto più basso del vostro, per cui conduco alcuni esperimenti del livello che voi non pensate nemmeno... Presumibilmente.

Ecco quindi la sequenza di inizializzazione: (per quelli che non lo sanno)

Prima le variabili di livello globale, poi quelle statiche, secondo la priorità delle funzioni, OnInit(), OnTick() o OnCalculate()... Non mi interessava oltre, e non mi interessavano quelli locali ai miei tempi. Così si scopre in questo codice che la funzione viene chiamata prima che le variabili statiche siano inizializzate, da qui l'errore di cui stiamo parlando. La funzione viene chiamata prima che la variabile stInt sia inizializzata.

2. All'inizio di questo ramo, parlavamo della chiusura degli ordini per prezzo OrderClosePrice(), vi ricordate? Funziona anche, ma potremmo avere dei problemi. È lo stesso anche in questo caso.

Ecco perché non c'è questa funzione nell'aiuto. In modo che quando scrivete il vostro d***-codice non siate sommersi da lamentele sul fatto che le cose dichiarate nella documentazione non funzionano. Sapete quanti di questi programmatori sono presenti qui. E quanti programmatori inadeguati sono stati banditi a vita? Di nuovo, presumibilmente...

 
Alexey Viktorov:
A quanto pare, hai letto qualcosa tra le parole di una sola frase

Non c'è nessuna implicazione nascosta in questa frase.


Per quanto riguarda l'esempio, funziona in entrambi i modi.

 
fxsaber:
Devi aver letto qualcosa tra le parole della singola frase

Non c'è nessuna implicazione nascosta in questa frase.


Per quanto riguarda l'esempio, funziona in entrambi i modi.

Beh, c'è un link con un esempio di codice con un errore oltre alla tua frase. La mia risposta non era alla tua frase, ma a quel codice errato, che è esattamente il codice g***.

Non ho dubbi che il tuo esempio di codice funzioni.

 
Alexey Viktorov:

Quindi c' è un link con un esempio di codice con un errore oltre alla tua frase.

C'è la parola "sottigliezza" nel titolo del thread. Quel codice è una dimostrazione di sottigliezza.

Non vedo alcuna ragione per cui gli sviluppatori non possano far funzionare questo codice - ciò che l'autore voleva vedere. Che lo facciano o no, questa è la sua domanda alla SD. Ma l'esempio stesso è illustrativo.

 
fxsaber:

C'è la parola 'sottigliezza' nel titolo del ramo. Quel codice è una dimostrazione di sottigliezza.

Non vedo alcuna ragione per non permettere agli sviluppatori di far funzionare quel codice - che è ciò che l'autore voleva vedere. Che lo facciano o no, questa è la sua domanda alla SD. Ma l'esempio stesso è illustrativo.

Ha iniziato a riferirsi alla sottigliezza dopo il nostro dialogo. E prima era come un messaggio di errore. Solo che non può essere chiamato un errore.

Hai un suggerimento su come cambiare la sequenza di inizializzazione per far funzionare questo codice come vuoi tu? In qualche modo mi sembra che questa richiesta si blocca senza alcuna risposta.

 
Alexey Viktorov:

Ha iniziato a riferirsi alla sottigliezza dopo il nostro dialogo. Prima era come un messaggio di errore. Solo che non si può chiamare in alcun modo un errore.

Se fosse stato un errore, sarebbe stato scelto un filo diverso. Inoltre, il reposting non sarebbe nemmeno avvenuto, dato che l'applicazione è sospesa nella SD. È proprio una sottigliezza che è utile conoscere.

Qualche suggerimento su come cambiare la sequenza di inizializzazione per far funzionare tale codice nel modo desiderato? Per qualche motivo mi sembra che questa domanda rimanga senza risposta.

Non un programmatore. Presumo che questo codice funzioni in C++.