Spiegazione dettagliata di iCustom - pagina 5

 
William Roeder:
Continuando da #23 e incapsulando in una funzione #26, ora mostro una struct che funziona sia su MT4 che su MT5. (Per il post-build 600, ho cambiato i punti non validi(#29) nei nomi delle variabili, e approprato gli ints alle enumerazioni standard.)
Non compilato, non testato.Non compilato, non testato.

Ciao William & Co.

Se chiami iCustom più volte per un dato indicatore con lo stesso simbolo e timeframe, l'intero codice dell'indicatore viene eseguito ripetutamente o MQL4 fa qualcosa di intelligente dietro le quinte per memorizzare i buffer risultanti? Speriamo sia la seconda, specialmente per gli indicatori più pesanti... La mia comprensione è che MQL5 migliora questa situazione utilizzando le maniglie, trattando gli indicatori in modo simile a quello di aprire/chiudere i file.

Inoltre, quando si programmano gli EA sono interessato ad utilizzare le classi derivate CIndicator dalla Standard Library che probabilmente offre un maggiore controllo (ed estensibilità) rispetto alle funzioni integrate (iCustom, iMACD, iBands, ecc), senza contare che teoricamente dovrebbe offrire una semantica di programmazione simile su entrambe le piattaforme, MT4 e MT5. Tuttavia non l'ho ancora provato personalmente e sono ancora perplesso dalle significative differenze nel codice sorgentetra MQL4 e MQL5(Include/Indicators/*.mqh). Sareste così gentili da offrire le vostre intuizioni sui pro e i contro dalla vostra comprensione ed esperienza con queste funzioni/librerie?

 
Dima Diall: Se si chiama iCustom più volte per un dato indicatore con lo stesso simbolo e timeframe, l'intero codice dell'indicatore viene eseguito ripetutamente o MQL4 fa qualcosa di intelligente dietro le quinte per memorizzare i buffer risultanti?
  1. Se il grafico del simbolo/TF specifico non esiste, viene creato in modo invisibile.
  2. Se la combinazione di indicatori/parametri specifici non si trova sul grafico del simbolo/TF, viene aggiunta in modo invisibile.
  3. Poi legge dal buffer richiesto[indice].
 
William Roeder:
  1. Se il grafico del simbolo/TF specifico non esiste, viene creato in modo invisibile.
  2. Se la combinazione di indicatori/parametri specifici non si trova sul grafico del simbolo/TF, viene aggiunta in modo invisibile.
  3. Poi legge dal buffer richiesto[indice].

Grazie mille per la rapida risposta, William -- è un approccio davvero interessante... Questi indicatori creati in modo invisibile vengono automaticamente distrutti quando l'EA viene terminato? Presumo di sì, almeno in MQL4; forse in MQL5 è necessario chiamare esplicitamente IndicatorRelease() per gli handle degli indicatori utilizzati dall'EA.

PS: Hai per caso esperienza con le classi CIndicator nella Libreria Standard? Ho cercato online degli esempi di codice e non ho trovato molto, a parte lo scarso materiale di riferimento su http://www.mql5.com/en/docs/standardlibrary/technicalindicators/CIndicators/CIndicator (o il sistema di aiuto integrato).

PPS: C'è un modo per abilitare le notifiche via email in questo forum? Ho cercato nelle impostazioni del mio account e non sono riuscito a trovare nulla.

Documentation on MQL5: Standard Library
Documentation on MQL5: Standard Library
  • www.mql5.com
MQL5 Standard Library is written in MQL5 and is designed to facilitate writing programs (indicators, scripts, experts) for end users. Library provides convenient access to the most of the internal MQL5 functions.
 
  1. Dato che i grafici inutilizzati vengono eliminati dopo dieci minuti, presumo che lo siano anche gli indicatori inutilizzati.
  2. Non ho studiato MT5. Guarda il codice nella classe.
  3. Non che io sappia. Uso solo Firefox e l'add on Update Scanner.