Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1687

 
Quel est le rapport entre vos index et la quantité de commandes retournées ? Créez quelques commandes et passez-les en boucle. La boucle ne sera pas un tableau, mais le nombre retourné par OrdersTotal comme une fonction normale, parce qu'elle ne retourne pas l'adresse de l'index du tableau où sont stockées les commandes.
 

La taille du tableau est le nombre d'éléments du tableau (ou d'ordres par exemple).

Le premier élément a un indice de 0, toujours,

le dernier est inférieur d'une unité à la taille du tableau.


Si vous voulez créer un tableau avec un seul élément, la seule façon d'accéder à cet élément est d'utiliser arr[0]. Dans tous les autres cas, vous obtiendrez une erreur de dépassement de tableau.

C'est la même chose avec les ordres, sans erreur, mais vous ne pouvez pas atteindre le premier élément (ordre) d'une autre manière.

 
Voici la référence https://www.mql5.com/ru/docs/array
Документация по MQL5: Операции с массивами
Документация по MQL5: Операции с массивами
  • www.mql5.com
Операции с массивами - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
J'ai compris, OrdersTotal ne donne que le montant, mais pour se référer à la commande nous utilisons OrderSelect et ici il passe déjà par le tableau. J'ai négligé ce point.
 
Oui, c'est vrai. OrderSelect(0,


 
Nerd Trader un index de tableau où sont stockées les commandes.

Vous ne faites pas une passe sur un chiffre, mais sur la liste des ordres dans votre compte de trading ! Et le nombre d'ordres n'est qu'un nombre... on ne peut pas faire de passes dessus... comment faire une passe sur un nombre 100 ? Vous n'avez pas... Et sur la liste de 100 lignes, on peut faire une passe de chaque ligne.

Le nombre retourné par OrdersTotal() est un nombre premier... Il a été conçu de telle sorte qu'il coïncide TOUJOURS avec le nombre de commandes dans la liste.

Si vous savez que vous n'avez qu'une seule commande à tout moment, alors vous n'avez besoin de travailler qu'avec un numéro de commande "0" sans aucun OrdersTotal()...

 
Nikolay Ivanov #:

Vous ne faites pas une passe sur un chiffre, mais sur la liste des ordres dans votre compte de trading ! Et le nombre d'ordres n'est qu'un nombre... on ne peut pas faire de passes dessus... comment faire une passe sur un nombre 100 ? Vous n'avez pas... Et sur la liste de 100 lignes, on peut faire une passe de chaque ligne.

Le nombre retourné par OrdersTotal() est un nombre premier... Il est conçu de telle manière qu'il coïncide TOUJOURS avec le nombre de commandes dans la liste.

Si vous savez que vous n'avez qu'une seule commande à tout moment, alors vous travaillez simplement avec un numéro de commande "0" sans aucun OrdersTotal()...

Aleksei Stepanenko #:

La taille du tableau est le nombre d'éléments du tableau (ou d'ordres, par exemple).

Le premier élément a un indice 0, toujours,

le dernier est inférieur d'une unité à la taille du tableau.


Si vous voulez créer un tableau avec un seul élément, la seule façon d'y accéder est d'utiliser arr[0]. Dans tous les autres cas, vous obtiendrez une erreur de dépassement de tableau.

C'est la même chose avec les ordres, sans erreur, mais vous ne pouvez pas atteindre le premier élément (ordre) d'une autre manière.

Oui, c'est vrai.
 
Nerd Trader utilise OrderSelect et cela passe déjà par le tableau. J'ai négligé ce point.

Le tableau (liste) passe par un CYCLE. L'OrderSelect sélectionne uniquement l'ordre dont le numéro d'ordre a été créé dans ce cycle pour la suite des opérations.

Документация по MQL5: Торговые функции / OrderSelect
Документация по MQL5: Торговые функции / OrderSelect
  • www.mql5.com
OrderSelect - Торговые функции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Nerd Trader un index de tableau où les commandes sont stockées.
Le fait est que le formulaire est pratique dans la mesure où, en lui donnant le nombre de positions, il peut remplir n'importe quel tableau. Dans mon cas, tout se bloquerait si 0 était introduit, car le ArrayResize est lié au nombre de positions. Pour cette raison, j'ai ajouté une condition supplémentaire : si le nombre de positions est supérieur à 0, alors cette boucle est activée. Je me trompe tout le temps avec ça aussi, maintenant je l'ai vérifié à nouveau. Le conseil est correct, car sinon la forte ne remplira pas l'élément zéro du tableau, ce à quoi sert la forte.
 
Super, mes amis, que nous ayons un consensus
Raison: