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

 
Vladimir Karputov :

Où est la question ? Quelles sont exactement les erreurs ? Désolé, tous les télépathes sont en vacances.

C'est la question. Je ne comprends pas non plus quelle est l'erreur. Tu crois que je l'aurais mis ici si j'avais su quelle était l'erreur ? Je n'ai même pas l'erreur. Juste ce message et rien d'autre.

 
jaffer wilson:

Telle est la question. Je ne comprends pas non plus quelle était l'erreur. Tu crois que je l'aurais mis ici si j'avais su quelle était l'erreur ? Je n'ai même pas l'erreur. Juste ce message et rien d'autre.

Cliquez sur

 
Vladimir Karputov :

Où est la question ? Quelles sont exactement les erreurs ? Désolé, tous les télépathes sont en vacances.


OK, je l'ai.

test sur EURUSD, H1 (compensation) Tradestatisticspanel (EURUSD, H1) Le code de retour OnInit est -1 ne peut pas initialiser l'indicateur de manière incohérente

 

S'il vous plaît, donnez-moi un indice !

Dans l'aide, il est écrit qu'une instance d'une structure est une variable. Par exemple, nous avons une structure

struct STRUCT_POSITION {
   double            volume;                 
   double            lot_coefficient;        
   bool              waiting_transaction;    
   ulong             waiting_order_ticket;   
   bool              transaction_confirmed;  
   }

Ensuite, nous créons une instance de la structure en déclarant une variable de son type :

STRUCT_POSITION SPosition;

Mais je suis tombé sur ceci dans le code

STRUCT_POSITION SPosition[];

Et cela m'a troublé. Je n'ai vu nulle part qu'il est possible de déclarer un tableau de type structure. Quelles propriétés ce tableau aura-t-il maintenant ? Peut-on parler d'une "instance de structure" ? Peut-être savez-vous où en lire plus à ce sujet ?

 
odyn:

S'il vous plaît, donnez-moi un indice !

L'aide indique qu'une instance d'une structure est une variable. Par exemple, nous avons une structure

Ensuite, nous créons une instance de la structure en déclarant une variable de son type :

Mais je suis tombé sur ceci dans le code

Et cela m'a troublé. Je n'ai vu nulle part que vous pouvez déclarer un tableau d'un type de structure. Quelles propriétés ce tableau aura-t-il maintenant ? Peut-on parler d'une "instance de structure" ? Pouvez-vous m'indiquer où trouver des informations à ce sujet ?

Forum sur le trading, les systèmes de trading automatisé et les tests de stratégie

FAQ des débutants MQL5 MT5 MetaTrader 5

Alexey Viktorov, 2020.02.23 08:29

En déclarant la structure STRUCT_POSITION {\...\}, il s'agit de la création d'un type de données personnalisé. Et STRUCT_POSITION SPosition[] ; est la déclaration d'une variable de type utilisateur. Les crochets [] indiquent que la variable est un tableau. Vous pouvez déclarer plusieurs variables du type utilisateur comme tout autre type.

double a, b[];

STRUCT_POSITION Pos, SPosition[];// при условии, что структура уже создана.
Dans cette entrée, type, variable, tableau

Oh... Je n'ai pas remarqué tout de suite que c'était vous qui aviez cette réponse exacte.

Plus en détail : Un tableau est simplement un ensemble de variables indexées. Primitivement, nous avons deux variables p1 et p2 ou nous avons un tableau p[2], auquel cas il importe peu que nous stockions la valeur dans la variable p1 ou dans une cellule du tableau p[0], ou dans la variable p2 ou dans le tableau p[1].

Lorsque vous avez besoin de 2-3, ou maximum 5 variables, vous pouvez faire avec des variables, mais si vous avez besoin de 100 ou même d'un nombre inconnu de variables... C'est là que la beauté des tableaux entre en jeu.

 
Alexey Viktorov:

Oh... Je n'ai pas tout de suite remarqué que c'était vous qui aviez la réponse.

Plus en détail : Un tableau est simplement un ensemble de variables indexées. Primitivement, nous avons deux variables p1 et p2, ou nous avons un tableau p[2], auquel cas il importe peu que la valeur soit stockée dans la variable p1 ou dans une cellule du tableau p[0], ou dans la variable p2 ou dans le tableau p[1].

Si vous avez besoin de 2-3 ou maximum 5 variables, vous ferez avec des variables, mais si vous avez 100 ou même un nombre inconnu de variables requises... C'est là que la beauté des tableaux entre en jeu.

Alexey, est-ce que je comprends bien qu'un tableau, contrairement à une variable, ne contiendra pas des champs de la structure, mais des instances de la structure, en nombre de zéro à plusieurs ?

P.S. : le code n'était pasSTRUCT_POSITION Pos,SPosition[]

maisSTRUCT_POSITION SPosition[] ;

aucune variable.

 
odyn:

Alexey, est-ce que je comprends bien qu'un tableau, contrairement à une variable, ne contiendra pas des champs de la structure, mais des instances de la structure, en nombre de zéro à plusieurs ?

Un bus (variable avec le type de structure bus) a trois champs :
1. Conducteur
2. Conducteur
3. Passagers[].
Une flotte de bus (un ensemble de structures de bus) compte 120 bus, chacun ayant les mêmes champs :
1. Conducteur
2. Conducteur
3. Passagers[].
Mais chaque bus a ces champs différents des autres bus.
En résumé, une flotte de bus est un tableau de chaînes de type de bus.
 
Artyom Trishkin:
Un bus (variable avec le type de structure bus) a trois champs :
1. Conducteur
2. Conducteur
3. Passagers[].
Une flotte de bus (un ensemble de structures de bus) compte 120 bus, chacun ayant les mêmes champs :
1. Conducteur
2. Conducteur
3. Passagers[].
Mais chaque bus a ces champs différents des autres bus.
En résumé, une flotte de bus est un tableau de chaînes de type de bus.

Merci, c'est très clair. :) Donc c'est un tableau de struts. Je vois.

 
odyn:

Merci, c'est très clair. :) C'est une STRUCTURE MASSIVE. Je vois.

Il a été très bien expliqué par Artem pendant mon absence. Je ne ferai que compléter votre compréhension : vous obtenez un tableau de structures contenant un tableau de passagers.

Chaque cellule du réseau comporte un conducteur, un conducteur et de nombreux passagers (réseau).

 
Artyom Trishkin:

Ici

Vous créez un objet de classe de base. En conséquence - vous avez une classe de base partout.

mais est-il possible de déclarer une classe comme classe de base et ensuite, selon les conditions, de la surcharger comme l'une des classes héritées ?

La tâche consiste à laisser le nom de la classe identique dans le code.

Veuillez également indiquer quelle directive utiliser pour définir le testeur.

#ifdef MQL_TESTER || MQL_VISUAL_MODE

Est-il possible de procéder de cette manière ?