Nel complesso non è un brutto articolo - meglio che nei libri di testo di programmazione, non così arido e abbastanza lucido.
Non mi è piaciuto l'esempio:"Array multidimensionale con l'OOP". È un'implementazione semplice, ma il lavoro successivo con un array dinamico di questo tipo è piuttosto "complicato"; per me sarebbe meglio non avere questo esempio piuttosto che una costruzione così spaventosa, imho.

- www.mql5.com
Bene, l'inizio del tutorial sulla programmazione MQL5 è quasi finito.
L'unica cosa è che l'implementazione dell'array su OOP sembra molto forzata.
Non è scritto male, ma l'articolo non dice una parola su CArray e i suoi discendenti.
I principianti potrebbero pensare che per lavorare con gli array in stile OOP sia necessario scrivere le proprie classi, ma queste sono state scritte molto tempo fa.
CArray e tutti i suoi discendenti dovrebbero essere anatemizzati.
Queste cose dovrebbero essere scritte sui template.
L'unica cosa è che l'implementazione degli array nell'OOP sembra molto tesa.
Lo è un po' :)
Qualche suggerimento su come questo array può essere fatto meglio in OOP?
Sto cercando di ottenere qualcosa di simile a JavaScript:
var ar=new Array();
ar[0]=new Array();
ar[1]=new Array();
ar[2]=new Array();
ar[0][0]=1;
ar[0][1]=2;
alert(ar[0][1]);
Il punto più difficile è che in JavaScript è possibile inserire un elenco in un array in una sola volta:
ar[0][2]=Array(131,132,133,134);
alert(ar[0][2][3]);
E non c'è modo di ottenere una cosa del genere qui. Pertanto, a prescindere da come la si guardi. non ci sarà una buona variante.
Mi piace l'implementazione di Yurich degli array dinamici https://www.mql5.com/ru/forum/6729/page3, non so quanto sia efficiente in termini di prestazioni, ma in termini di leggibilità del codice è super.
Ottimo articolo, per principianti assoluti, ma anche per programmatori esperti alle prime armi con la MT5. Solo l'ultima sezione "Creare array multidimensionali utilizzando l'OOP" è di scarso interesse.
Tuttavia, un piccolo errore:
Array indexing order can be determined using the ArrayIsSeries() function:
bool series=ArrayIsSeries(ar);
Se l'array è indicizzato in ordine inverso, la funzione restituirà true.
Questo è falso. La funzione da utilizzare per conoscere l'ordine di indicizzazione di un array è ArrayGetAsSeries().
ArrayIsSeries() viene utilizzata per determinare se un array è una TimeSeries.
There is only one method that allows you to do a search in an unsorted array
Questo non è del tutto vero: date un'occhiata all'Algoritmo di ricerca basato su hash. Ma questo algoritmo non è probabilmente applicabile al trading.

- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Accetti la politica del sito e le condizioni d’uso
Il nuovo articolo Fondamenti di programmazione MQL5: Arrays è stato pubblicato:
Gli array sono parte integrante di quasi tutti i linguaggi di programmazione insieme a variabili e funzioni. L'articolo dovrebbe interessare principalmente i programmatori MQL5 alle prime armi, mentre i programmatori esperti avranno una buona opportunità per riassumere e sistematizzare le loro conoscenze.
Quindi, un array è un insieme numerato di variabili con lo stesso nome. Le proprietà generali degli array includono il nome dell'array, il tipo di variabile (int, double, ecc.) e la dimensione dell'array. Gli elementi dell'array sono indicizzati da zero. Parlando di elementi di array, è sempre meglio usare la parola "indice" al posto di "numero" in modo da suggerire di iniziare a contare gli elementi di array da zero (mentre la numerazione di solito parte da uno). Con gli elementi indicizzati in questo modo, l'indice dell'ultimo elemento è uno in meno del numero di elementi dell'array.
Se l'array è dichiarato come segue:
ha i seguenti elementi: Variabile[0], Variabile[1] e Variabile[2].
A prima vista, tale mancanza di corrispondenza tra il numero di elementi e l'indice dell'ultimo elemento può sembrare scomoda. In effetti, offre vantaggi significativi rispetto ai linguaggi di programmazione in cui gli elementi dell'array sono indicizzati da 1 o la dimensione dell'array è definita dall'indice del suo ultimo elemento piuttosto che dal numero effettivo di elementi nell'array.
Per determinare la dimensione dell'array in MQL5, utilizziamo la ArraySize():
Dopo aver eseguito il codice, il valore della variabile Size sarà pari a 3.
Autore: Dmitry Fedoseev