Il futuro di MQL5 è MQL5+ o addirittura MQL6 - pagina 8

 
Karputov Vladimir:

Non so cosa siano i test simultanei su diversi TF, ma il fatto che non si possa passare ad altri TF almeno dopo i test non è buono. Beh, cambiare durante i test visivi sarebbe fantastico.
 

Il futuro... Bene, bene. "Grazie, è divertente" (c).



 
Quando si ottimizza, vorrei vedere il risultato della corsa come percentuale, piuttosto che i numeri visualizzati nella colonna "Risultato". E nel backtest sarebbe bello se il risultato "Profitto netto" avesse un profitto in %.
 
Rinat Tukaev:
Quando si ottimizza, vorrei vedere il risultato della corsa come percentuale, piuttosto che i numeri visualizzati nella colonna "Risultato". E nel backtest, sarebbe bello se il risultato "Profitto netto" avesse un profitto in %.
Inserite la vostra formula nel gestore dell'evento OnTester() e vedete il risultato di cui avete bisogno.
 
Yury Reshetov:
Inserite la vostra formula nel gestore dell'evento OnTester() e vedrete il risultato di cui avete bisogno.
Grazie! Non lo sapevo)
 
Suggerisco di fare in modo che le variabili globali del programma non attraversino le variabili e i parametri dei plugin in MQL4 e MQL5. Ho dichiarato una variabile 'punto' nel mio Expert Advisor e ora sto ricevendo molti messaggi come: "la dichiarazione di 'punto' nasconde la dichiarazione globale nel file 'expert.mq4' alla linea 153 ChartObject.mqh 154 39". È orribile quando non si può dichiarare una variabile in un modulo, programma, che è nei parametri di un altro modulo. Perché il modulo ChartObject.mqh deve vedere il mio Expert Advisor, expert.mq4, se ChartObject.mqh non lo dichiara esplicitamente?
 
Mihail Matkovskij:
Suggerisco di fare in modo che le variabili globali del programma non attraversino le variabili e i parametri dei plugin in MQL4 e MQL5. Ho dichiarato una variabile 'punto' nel mio Expert Advisor e ora sto ricevendo molti messaggi come: "la dichiarazione di 'punto' nasconde la dichiarazione globale nel file 'expert.mq4' alla linea 153 ChartObject.mqh 154 39". È orribile quando non si può dichiarare una variabile in un modulo, programma, che è nei parametri di un altro modulo. Perché il modulo ChartObject.mqh deve vedere il mio Expert Advisor, expert.mq4, se ChartObject.mqh non lo dichiara esplicitamente?
Ovviamente ti aiuterebbe
#property strict
 
Igor Volodin:
Ovviamente vi aiuterà.
Sì, ho questa linea nel mio EA, ma non è nel modulo ChartObject.mqh. Non ho intenzione di riscrivere tutti i moduli standard a causa di questo...
 
Mihail Matkovskij:
Sì, ho questa linea nel mio Expert Advisor, ma non è nel modulo ChartObject.mqh. Non ho intenzione di riscrivere tutti i moduli standard a causa di questo...


Capito. In questo caso, non create variabili globali. Si può fare a meno di loro. Altrimenti, con qualsiasi coincidenza, per esempio un nome molto comune:

int i;

dichiarati globalmente saranno sovrascritti da quelli dichiarati localmente. Questo è ciò di cui siete avvertiti.

E il plugin non ha un proprio ambito, non è un modulo, è solo un pezzo di codice che verrà inserito dove si scrive include.

 
Igor Volodin:


Capito. Allora non create variabili globali. Si può fare a meno di loro.

Cosa vuol dire non crearli? In qualsiasi linguaggio di programmazione le variabili globali sono usate liberamente e va bene, ma il compilatore giura. L'errore non è cruciale, ma è comunque scomodo.

double point = MarketInfo(EA_Symbol(), MODE_POINT);

Il punto variabile riporta il prezzo di 1 punto ed è un sostituto del punto standard. La funzione MarketInfo(EA_Symbol(), MODE_POINT) dà il prezzo di 1 punto per qualsiasi simbolo. Inoltre, il punto variabile può essere usato in qualsiasi funzione, nel corpo dell'EA, se è una variabile globale, naturalmente. Sono d'accordo che tali casi causano alcuni inconvenienti abbastanza spesso (se avete certamente esperienza nella programmazione MQL). E anche se possono essere evitati, ma la domanda è perché, se in altre lingue moderne tali problemi semplicemente non esistono?

Motivazione: