Discussion de l'article "Tableaux Électroniques en MQL5"

 

Un nouvel article Tableaux Électroniques en MQL5 a été publié :

L'article décrit une classe de tableau dynamique à deux dimensions qui comporte des données de différents types dans sa première dimension. Le stockage des données sous la forme d'un tableau est pratique pour résoudre un large éventail de problèmes d'agencement, de stockage et d'exploitation avec des informations liées de différents types. Le code source de la classe qui implémente la fonctionnalité de travail avec des tableaux est joint à l'article.

Il existe deux modes d'organisation de l'information : le schéma des colonnes connectées (implémenté dans cet article) et son alternative sous forme de lignes connectées sont présentés ci-dessous.


Du fait de la référence à l'information par un intermédiaire (décrit en p. 2), il n'y a pas de grande différence d’implémentation du périmètre supérieur. Mais j'ai choisi le modèle des colonnes, car il permet d'implémenter une méthode de données sur la faible portée, dans les objets qui stockent les données. Et le schéma alternatif nécessiterait de remplacer les méthodes de travail avec les informations de la classe supérieure CTable. Et cela peut compromettre l'amélioration de la classe, au cas où cela serait nécessaire.

À cela, chacun des schémas peut être utilisé. Le schéma suggéré permet un déplacement rapide des données, et l'autre permet un ajout de données plus rapide (car les informations sont plus souvent ajoutées à un tableau ligne par ligne) et l'obtention de lignes.

Il existe également une autre façon d'organiser un tableau - comme un tableau destructures Et bien que ce soit le plus simple à implémenter, il présente un inconvénient majeur.. La structure doit être décrite par un programmeur. Ainsi, nous perdons une possibilité de définir les attributs du tableau via des paramètres personnalisés (sans modifier le code source).

Auteur : Nikolay Demko

 
Un bon article, bienveillant et utile. Respect à l'auteur !
 
Intéressant. Cela pourrait même s'avérer utile.
 

Eh... J'aimerais voir un petit exemple de comment ordonner la deuxième colonne dans un tableau bidimensionnel 3x3. Que dois-je écrire dans le code après #include <Table.mqh> ?

Le code suivant produit des zéros. Où se situe l'erreur ?

#include <Table.mqh>
void OnStart(){   
   ENUM_DATATYPE Types[3];
   Types[0] = TYPE_DOUBLE;
   Types[1] = TYPE_DOUBLE;
   Types[2] = TYPE_DOUBLE;   
   CTable Table;
   Table.FirstResize(Types);
   Table.SecondResize(3);
   Table.Set(0,0, 1); Table.Set(0,1, 4); Table.Set(0,2, 23);
   Table.Set(1,0, 2); Table.Set(1,1, 7); Table.Set(1,2, 48);
   Table.Set(2,0, 3); Table.Set(2,1, 1); Table.Set(2,2, 77);
   Table.SortTwoDimArray(1,0,Table.SecondSize()-1);
   string txt;
   for(int i=0; i<Table.SecondSize(); i++){
      for(int j=0; j<Table.FirstSize(); j++){
         double k;
         Table.Get(i,j,k);
         StringConcatenate(txt, txt, "  ", DoubleToString(k));
      }
      Print(txt);
      txt="";
   }
}//OnStart()
 

Vous attribuez le type int à des champs de table déclarés comme doubles.

essayez ceci ou cela...

   Table.Set(0,0, 1.); Table.Set(0,1, 4.); Table.Set(0,2, (double)23);
   Table.Set(1,0, 2.); Table.Set(1,1, 7.); Table.Set(1,2, (double)48);
   Table.Set(2,0, 3.); Table.Set(2,1, 1.); Table.Set(2,2, (double)77);
 
Oh, merci ! Je n'aurais jamais deviné cela.
 

Nikolay, j'ai une question.

Est-il possible d'écrire un tableau du MT5 vers Excel sous cette forme ?

Je suis intéressé par ces 2 noms de colonnes macro ("Données absolues" et "Données relatives"), qui sont surlignés en couleur. Elles regroupent 3 cellules chacune.

Peut-être que j'attends beaucoup de MQL5 en termes de formatage de cellules Excel. Et si :-)))

 
denkir:

Nikolay, j'ai une question.

Est-il possible d'écrire un tableau du MT5 vers Excel sous cette forme ?

Je suis intéressé par ces 2 noms de colonnes macro ("Données absolues" et "Données relatives"), qui sont surlignés en couleur. Elles combinent 3 cellules chacune.

J'attends peut-être beaucoup de MQL5 en termes de formatage des cellules Excel. Et si :-)))

Quelle signification physique donnez-vous aux mots "combiner 3 cellules" ?

En principe, vous pouvez mais sans les 2 lignes supérieures, les types de données sont résumés par colonnes, de sorte que dans une colonne, l'entassement d'une chaîne et d'un double ne fonctionnera pas, mais cela peut être fait lors de l'impression. Il est également possible d'affiner la classe de manière à ce qu'elle contienne des chaînes de caractères majuscules formatées séparément du tableau.

Le plus simple est de créer deux tableaux et de les fusionner.

Документация по MQL5: Основы языка / Типы данных
Документация по MQL5: Основы языка / Типы данных
  • www.mql5.com
Основы языка / Типы данных - Документация по MQL5
 
Urain:

Quelle signification physique donnez-vous aux mots "combiner 3 cellules" ?


C'est ce que nous avons aujourd'hui :



Ce que j'aimerais avoir déjà apporté ....

 
Privit, zhuzhe viruchila biblioteka z statti"Spreadsheets in MQL5", thank you.
 
MetaQuotes Software Corp.:

Un nouvel article Tables électroniques dans MQL5 est publié :

Auteur : Николай

Joli. C'est ce que je cherche. Je vais essayer mes colonnes. Merci.