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

 
законопослушный гражданин:

Mi regolo come segue:

1.Clicco una volta sul cursore, poi il mouse può essere spostato, l'importante è non cliccare in altri spazi

2.Lo regolo premendo le frecce sulla tastiera - più veloce più lento

P.S., sul tester di strategia MT4 integrato

Eh, sarebbe una favola se si potesse cliccare su un grafico e l'effetto dei tasti di scelta rapida non si resettasse. Ma è meglio di niente
 

È sorta una domanda. Ha senso dichiarare variabili statiche nell'ambito globale.

In quello locale capisco, nessuna visibilità al di fuori del corpo della funzione e salvataggio dei valori della chiamata precedente.

E quale potrebbe essere il senso di una globale?

 
Valeriy Yastremskiy:

È sorta una domanda. Ha senso dichiarare variabili statiche nell'ambito globale.

In quello locale capisco, nessuna visibilità al di fuori del corpo della funzione e salvataggio dei valori della chiamata precedente.

E quale sarebbe il senso di uno globale?

Solo se può essere cambiato in diverse funzioni

 
MakarFX:

Solo se può cambiare in diverse funzioni

Non capisco) La variabile globale cambia anche in diverse funzioni. La stat.variable in questo caso non è diversa dalla solita variabile globale. E la memoria si trova nel pool globale. Dal riferimento:

Variabili

Ci sono tre classi di memoria: static, input ed extern. Questi modificatori di classe di memoria dicono esplicitamente al compilatore che le variabili corrispondenti sono allocate in un'area predefinita di memoria, chiamata pool globale.

A volte mi imbatto in variabili statiche dichiarate nell'ambito globale nel codice. Non riesco a capire la logica degli autori.

 
Valeriy Yastremskiy:

Non capisco) Global cambia anche in diverse funzioni. Non è diverso da una normale variabile globale in questo caso. E la memoria si trova nel pool globale. Dal riferimento:

Variabili

Ci sono tre classi di memoria: static, input ed extern. Questi modificatori di classe di memoria dicono esplicitamente al compilatore che le variabili corrispondenti sono allocate in un'area predefinita di memoria, chiamata pool globale.

A volte mi imbatto in variabili statiche dichiarate nell'ambito globale nel codice. Non riesco a capire la logica degli autori.

Sì, hai ragione e non c'è logica. Questo è solo il modo in cui lo vede l'autore del codice.

Il mio post precedente non è stato pensato bene.

 

Valeriy Yastremskiy:

Non capisco la logica degli autori.

Non c'è logica, solo schizofrenia. L'espressione "olio burroso" è una definizione così educata di "schizofrenia".

 
MakarFX:

Sì, hai ragione e non c'è logica. È solo come lo vede l'autore del codice.

Alexey Viktorov:

Non c'è logica, solo schizofrenia. L'espressione "oliato" è una definizione così educata di "schizofrenia".

Grazie, a volte è difficile trovare la logica dell'autore attraverso il codice))))

 
MakarFX:

Potresti per favore consigliare

Come restituire il lotto di partenza -Lot, (per aprire il prossimo ordine), dopo l'esecuzione di questa parte della funzione:

if(GetProfitFromStart()>CountProfit || GetProfitFromStart()<CountLoss*-1)
     {
      if (IsTesting()) 
        {
         CloseOrder(); ObjectSetInteger(0,"lab_Button",OBJPROP_STATE,false);
        }
      else
        {
         CloseOrder();
        }
     }
File:
 
законопослушный гражданин:

Potresti per favore consigliare

come restituire il lotto di partenza -Lot, (per aprire l'ordine successivo), dopo l'esecuzione di questa parte della funzione:

dopo

CloseOrder();
aggiungere
Start = TimeCurrent();
 

con la statica in mql tutto è in esecuzione e irto di errori. Il codice è sempre costruito/compilato nel suo insieme, senza obj intermedi e la dichiarazione di staticità è solo un omaggio alla tradizione.

Se uno usa la statica in mql - che è quasi al 100% dal mondo C/C++/C#; o uno sbircia e imita ridicolmente :-)

ma c'è anche __thread__ :-)

Motivazione: