Questions des débutants MQL5 MT5 MetaTrader 5 - page 1202

 
Igor Makanu:

c'est ce que j'écris, c'est plus facile à vérifier, dans les 10 minutes..... vérifié, FileWriteArray() n'écrit pas la taille du tableau dans l'en-tête ou le premier octet, vous devez donc écrire ces valeurs vous-même.

Igor, je n'ai pas du tout dit que c'était impossible. Lisez attentivement mes mots.

Alexey Viktorov:

...

Comment pouvez-vous lire une structure et trois tableaux à partir d'un fichier dont vous ne savez pas comment il a été écrit?

...

De plus, dans cet exemple, il y a un fichier ouvert, une structure lue, trois tableaux lus et aucun fichier fermé. À ce stade, vous devez vous demander si le fichier est fermé après avoir été écrit.

Dans votre exemple, il s'agit de la lecture de tableaux et d'éléments de structure, et non de FileReadStruct().

Merci pour l'exemple. Je m'en souviendrai et l'utiliserai si nécessaire.

 
Alexey Viktorov:

Igor, je n'ai pas du tout dit que c'était impossible. Eh bien, lisez mes mots un peu plus attentivement.

De plus, cet exemple comporte l'ouverture du fichier, la lecture de la structure, la lecture de trois tableaux et aucune fermeture du fichier. À ce stade, vous commencez à vous demander si le fichier est fermé après avoir été écrit.

Votre exemple montre la lecture de tableaux et d'éléments de structure, pas FileReadStruct().

Merci pour l'exemple. Je m'en souviendrai et l'utiliserai si nécessaire.

Je ne sais pas comment expliquer autrement )))).

vous croyez en une sorte de magie - que des programmes tiers peuvent comprendre le format des données écrites dans un fichier binaire - personne ne peut lire les données d'un fichier binaire sans connaître la structure des données !

Un fichier binaire est un grand tableau d'octets auquel on accède de manière séquentielle - Qu'avez-vous écrit ? Qu'avez-vous lu ? - seulement vous savez, si vous ne le faites pas, vous allez lire beaucoup de données binaires.

)))

SZZ : Bien sûr, je veux écrire (lire) un tableau avec une commande ArrayWrite et une structure de la même manière, oui c'est possible, mais si nous utilisons une taille de données fixe et que nous écrivons chaque structure/rayon dans un fichier séparé...

 

Igor Makanu:

Eh bien, vous croyez à une sorte de magie - que des programmes tiers peuvent découvrir le format des données écrites dans un fichier binaire - personne ne peut lire les données d'un fichier binaire sans connaître la structure des données !

Vous me comprenez mal. J'ai dit exactement la même chose, mais en d'autres termes. Ce n'était pas une question sur le mode d'emploi, c'était... pas même un point d'interrogation...

 

Pouvez-vous me dire comment créer un symbole personnalisé dans mt5 si je veux y mettre un graphique d'actions avec des fonds ? Courtier en ouverture, le cas échéant)

J'ai essayé de faire ce qui suit :

1. Je télécharge un historique de devis en csv depuis finam.

2. Convertir csv en json

{
    "root": {
        "row": [
            {
                "TICKER": "FXRU",
                "PER": "1",
                "DATE": "20190502",
                "TIME": "100100",
                "OPEN": "748.7000000",
                "HIGH": "749.7000000",
                "LOW": "747.7000000",
                "CLOSE": "749.7000000",
                "VOL": "115"
            },
               ]
           }
}

3. ça ne marche pas.

 
Igor Makanu:

c'est ce que j'écris, c'est plus facile à vérifier, dans les 10 minutes..... vérifié, FileWriteArray() n'écrit pas la taille du tableau dans l'en-tête ou le premier octet, nous devons donc écrire ces valeurs nous-mêmes.

2020.03.25 10:18:36.058 tst (EURUSD,H1) 1. d_arr

2020.03.25 10:18:36.058 tst (EURUSD,H1) 3.14159 3.14159 3.14159 3.14159 3.14159

2020.03.25 10:18:36.058 tst (EURUSD,H1) 2. i_arr

2020.03.25 10:18:36.058 tst (EURUSD,H1) 1234567890 1234567890

2020.03.25 10:18:36.058 tst (EURUSD,H1) 2. c_arr

2020.03.25 10:18:36.058 tst (EURUSD,H1) 127 127 127 127 127

2020.03.25 10:18:36.058 tst (EURUSD,H1) mstruct.a = 666 , mstruct.b = 123.123000

Par exemple, si les dimensions des tableaux sont dynamiques, cela signifie que nous écrivons les dimensions des tableaux lors de l'écriture et que nous lisons les dimensions des tableaux à partir du fichier et que nous définissons les dimensions des tableaux de la structure lors de la lecture.

dans mon exemple 2 structures - une a été initialisée et écrite, la seconde a été lue, initialisation à partir des données du fichier

Merci, très impressionnant.

Et si vous écrivez 2 structures dans le fichier, vous pouvez évidemment les lire de la même manière.


PS Une structure simple (quelle que soit la quantité) est écrite et lue par la fonction régulière sans aucun problème.
 
S'il vous plaît, comment définir à la volée la taille de la deuxième dimension d'un tableau dynamique bidimensionnel ?
 
Сергей Таболин:
Comment définir à la volée la taille de la deuxième dimension d'un tableau dynamique à deux dimensions ?

ou envelopper un tableau unidimensionnel dans un tableau de structures

struct Sarr
{
   double            y[];
};
struct Sarr2x2
{
   Sarr              x[];
};

void OnStart()
{
   Sarr2x2 arr;
   ArrayResize(arr.x,10);
   for(int i=0; i<ArraySize(arr.x); i++)
   {
      ArrayResize(arr.x[i].y,10);
   }
   arr.x[0].y[0] = 5.0;
}
//+------------------------------------------------------------------+

ou utiliser un cours qui fera l'affaire - je ne veux pas le chercher, je vous ai déjà donné les liens une centaine de fois

https://www.mql5.com/ru/forum/6729/page3#comment_674794


oui, il existe une classe de matrice dans alglib

#include <Math\Alglib\matrix.mqh>

void OnStart()
  {
      CMatrixDouble d_arr;
      d_arr.Resize(10,10);
 

Que signifie l'échelle de temps dans l'histoire du commerce ?

Échelle X. Que signifient les valeurs de l'échelle ?

 

comment utiliser MQL pour créer une image .bmp et l'enregistrer dans un fichier sans se lier à un graphique, c'est-à-dire sans créer d'abord un objet Canvas ou CGraphic sur un graphique.

J'ai cherché rapidement sur les articles n'a pas vu une telle information, j'ai besoin d'une instruction sur la façon de commencer, je vais écrire le code moi-même

 
Igor Makanu:

comment utiliser MQL pour créer une image .bmp et l'enregistrer dans un fichier sans se lier à un graphique, c'est-à-dire sans créer d'abord un objet Canvas ou CGraphic sur un graphique.

J'ai cherché rapidement sur les articles n'a pas vu une telle information, j'ai besoin d'une instruction sur la façon de commencer, je vais écrire le code moi-même

En ressources