Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 297

 
Dmitriy Voevodkin:

lavorare con la storia delle transazioni tramite

OrdiniStoriaTotale()

OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)


Grazie per la vostra risposta. Capisco che se un ordine ha chiuso, dovrebbe essere selezionato dalla cronologia (come ultimo ordine nella cronologia), ma non so come impostare questa condizione (dopo averlo trovato), se ha chiuso a Take Profit, allora..., se ha chiuso a Stop Loss, allora...?

 

Buongiorno, ho una domanda come questa.... Ho pensato per qualche motivo che la funzione Init () in EA inizia non solo al momento dell'attacco o della compilazione di EA, ma anche durante l'interruzione della connessione, o più precisamente dopo la riconnessione. Potete dirmi come avviare la funzione init() dopo che la connessione è stata ripristinata????

 
Per favore consigliatemi qual è il modo corretto e dove mettere le parentesi. Bool è specificato correttamente? Qual è la sua differenza dal bool esterno? (o qualcosa del genere)

"
Bool Volumi

Se (Volume [1 ]> Volume [2]) f=vero; altrimenti f=falso ;
Se (f) scambia; altrimenti non scambia
"
File:
 
Tigerfreerun:
Per favore, consigliateci il modo corretto e dove mettere le parentesi. Bool è specificato correttamente? Qual è la sua differenza dal bool esterno? (o qualcosa del genere)

"
Bool Volumi

Se (Volume [1 ]> Volume [2]) f=vero; altrimenti f=falso ;
Se (f) scambia; altrimenti non scambia
"

posizionare il cursore su Volume e premere F1.

Il volume è un operatore.

La variabile bool f;

Fondamentalmente, potete mettere il cursore su qualsiasi operatore e premere F1 - tutto è descritto lì in dettaglio.
 
Dmitriy Voevodkin:

posizionare il cursore su Volume e premere F1.

Il volume è un operatore.

La variabile bool è f;

In linea di principio, potete mettere il cursore su qualsiasi operatore e premere F1 - tutto è descritto lì in dettaglio.
La domanda riguardava le parentesi, dove mettere "{,}" Non capisco questo algoritmo di disposizione delle parentesi. Ho scritto tutto esattamente come hai detto tu e 4 errori con la parola "ambito globale"
 
Mihail Marchukajtes:

Buongiorno, ho una domanda come questa.... Ho pensato per qualche motivo che la funzione Init () in EA inizia non solo al momento dell'attacco o della compilazione di EA, ma anche durante l'interruzione della connessione, o più precisamente dopo la riconnessione. Si prega di consigliare come avviare la funzione init() dopo che la connessione è stata ripristinata????


Non è possibile avviare Init, viene avviato automaticamente una volta quando si avvia l'indicatore/esperto, come DeInit.

In alternativa, potete creare una variabile booleana statica e usarla insieme aIsConnected(). E quando la connessione viene ripristinata all'arrivo di un nuovo tick, deve essere lanciata prima qualche funzione di inizializzazione propria. MaIsConnected() dovrebbe essere applicato non inOnCalculate(), ma in OnTimer().

 
Dmitriy Voevodkin:

posizionare il cursore su Volume e premere F1.

Il volume è un operatore.

La variabile bool è f;

Fondamentalmente, potete mettere il cursore su qualsiasi operatore e premere F1 - tutto è descritto lì in dettaglio.
Screenshot dell'errore
File:
 
Tigerfreerun:
Screenshot dell'errore

È la prima volta che vedo uno screenshot come questo =)

Non avete la possibilità di fare uno screenshot con i mezzi interni di Windows?

 

Per codice.

Fare un semplice ritorno se il volume è basso, cioè interrompere l'esecuzione di ulteriore codice

if(Volume[0] < 1000) return;
 
Tigerfreerun:
Screenshot dell'errore

La sintassi MQL è rotta. In questo caso c'è un punto e virgola in più dopo bool Volume e il compilatore vuole anche le parentesi (), ma ti ho già scritto che si tratta di logica in questo caso, non di codice per Expert Advisor.

Motivazione: