[ARCHIVE !] Toute question de débutant, pour ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 4. - page 523
![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Chers experts, n'y aurait-il pas une erreur dans le manuel?
Voici mon raisonnement :
Au début du code, on appelle la fonctionint ArrayCopyRates qui copie les données des barres du graphique actuel dans un tableau bidimensionnel de type RateInfo[][6] et renvoie le nombre de barres copiées ou -1 en cas d'échec selon l'exemple de cette fonction :
la barrecourante est la barre avec l'index 0-0 , donc, en retournant au code original, nous copions l'élément avec l'index 0-0 (la barre courante) du tableau1 , vers array2 avec l'index 0-0, nous obtenons les 10 dernières barres (où la dernière barre est la barre actuelle, celle avec l'index [0]), ce qui est contraire à ce que nous avons écrit dans le tutoriel... et respectivement, en copiant l'élément avec l'index Bars*6-60,60 du tableau 1 dans le tableau 2 avec l'index de départ de l'élément 0, nous obtenons des informations sur les barres de l'historique.
Sans faire de déclarations fracassantes, vérifions-le dans la pratique :
Sans faire de grandes déclarations, mettons-le à l'épreuve :
Oui, en pratique, il s'avère effectivement que l'élément avec l'indice Bars*6-60,60 est la barre actuelle... Alors comment expliquez-vous cela dans l'exemple ?
La barre courante est array1[0][0] et après avoir copié le tableau il devient array1[Bars*6-60,60][0].... il s'avère que quelque part il y a une renumérotation... Bien sûr, le résultat est clair après avoir utilisé la fonction dans la pratique... mais la logique est désordonnée, à mon avis)))Oui, en pratique, il s'avère que l'élément avec l'indice Bars*6-60,60 est la barre actuelle ...
C'est votre conclusion.
Sans faire de grandes déclarations, mettons-le à l'épreuve :
Voici donc un élément spécifique du tableauTimeToStr(array2[a][0]).
Que la sortie soit correcte, je suis d'accord. Mais qu'est-ce que Bars*6-60 a à voir avec ça? Quelle valeur est substituée à Bar lors du calcul ? Si ce sont des barres, comment obtenir les 10 dernières barres ?
Vous remarquerez que je ne suis pas le seul à ne pas avoir compris cela sur le forum, mais bien d'autres.
Il s'avère que le nombre de toutes les barres est multiplié par 6 et moins 60. D'où vient ce chiffre ? Ça n'a pas de sens du tout.
Voici donc un élément spécifique du tableauTimeToStr(array2[a][0]).
La sortie est correcte, je suis d'accord. Mais qu'est-ce que Bars*6-60 a à voir... Quelle valeur est substituée à Bar lors du calcul ? Si ce sont des barres, comment obtenir les 10 dernières barres ?
Comme vous pouvez le constater, je ne suis pas le seul à ne pas l'avoir compris sur le forum, beaucoup d'autres ne l'ont pas compris.
int Bars -- Nombre de barres sur le graphique actuel.
Il s'avère que le nombre de toutes les barres est multiplié par 6 et moins 60. D'où vient le chiffre 6 ? Ça n'a pas de sens du tout.
int Bars -- Nombre de barres sur le graphique actuel.
Alors, d'où viennent les 10 derniers ?
int Bars = 10 000;
Alors Bars*6 - 60 = 10 000*6 - 60 = 60 000 - 60 = 59 960;
La valeur de59 960 est supérieure à la valeur de Bars. Et cela signifie déjà qu'il est en dehors du tableau. Et 10 est introuvable...
Il s'avère que le nombre de toutes les barres est multiplié par 6 et moins 60. D'où vient le chiffre 6 ? Ça n'a pas de sens du tout.
Alors, d'où viennent les 10 derniers ?
int Bars = 10 000;
Alors Bars*6 - 60 = 10 000*6 - 60 = 60 000 - 60 = 59 960 -- erreur !!!
La valeur de59 960 est supérieure à la valeur de Bars. Et cela signifie déjà qu'il a dépassé les limites du tableau. Et 10 n'est nulle part.
Victor, ne t'inquiète pas, tu vas y arriver. "L'expérience est le fils des erreurs difficiles..." Allez du simple au complexe, et non l'inverse :
"PROGRES (du lat. progressus - mouvement vers l'avant), une direction de développement caractérisée par une transition de l'inférieur au supérieur, du moins parfait au plus parfait. Le progrès peut concerner le système dans son ensemble, ses éléments individuels, la structure de l'objet en développement. Le concept de progrès est l'opposé du concept de régression.
REGRESSE (du latin regressus - mouvement inverse), type de développement caractérisé par le passage du haut vers le bas. Le contraire du progrès."
Victor, ne vous inquiétez pas, vous êtes en avance sur le jeu. "L'expérience est le fils des erreurs..." Allez du simple au complexe, et non l'inverse :
"Progrès (du latin progressus - mouvement vers l'avant), direction du développement, caractérisée par le passage de l'inférieur au supérieur, du moins parfait au plus parfait. Le progrès peut concerner le système dans son ensemble, ses éléments individuels, la structure de l'objet en développement. Le concept de progrès est l'opposé du concept de régression.
REGRESSE (du latin regressus - mouvement inverse), le type de développement qui se caractérise par la transition du haut vers le bas. Le contraire du progrès."
pourquoi ne pas simplement l'expliquer à la personne ? l'aider à progresser ? et tout ce discours sur la régression relève plutôt de la ringardise d'un professeur....