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
Veuillez m'indiquer comment travailler correctement avec un tableau dont les éléments sont des structures Mqlrates.
C'est exactement ce que je veux savoir :
MqlRates AdaptedRates[];
ArraySetAsSeries(AdaptedRates,true);
AdaptedRates[300].open=1;
Le débogueur donne une erreur - Accès invalide au tableau.
Je comprends qu'avec cette forme d'enregistrement, on ne peut lire que les éléments d'une structure qui est un élément d'un tableau.
La question est de savoir comment écrire correctement les éléments de structure. Je ne suis pas intéressé par tous ces éléments, l'important étant le prix de .open .high .low .close.
Je m'excuse par avance pour cette question probablement très triviale (je ne suis pas le programmeur), mais dans l'aide je n'ai pas trouvé la réponse. Je vous serai reconnaissant de toute aide.
Définit la taille du tableau. ArrayResize
D'après ce que je comprends, si je définis la taille, par exemple
:) Vous ne définissez pas le tableau statique, mais la taille du tableau dynamique avec ArrayResize().
Eh bien, comme : ArrayResize(AdaptedRates,302) ; etc.
Vous utilisez un tableau dynamique AdaptedRates[]. Autant que je me souvienne, lorsque vous travaillez avec des tableaux dynamiques, vous devez définir leur taille à l'aide de la fonction ArrayResize(). Et jusqu'à présent, le compilateur se bloque sur l'index 300 spécifié dans la troisième ligne.
C'est une citation de l'aide.
Swan, Yedelkin, merci pour cette réponse rapide.
D'après ce que je comprends, si je définis une taille, par exemple
oui.
MqlRates AdaptedRates[];//pour laisser le tableau dynamique.
ArrayResize(AdaptedRates,302);//et définir la bonne taille
:) Vous ne définissez pas un tableau statique, mais un tableau dynamique en utilisant ArrayResize().
Eh bien, comme ArrayResize(AdaptedRates,302) ; etc.
Un pépin dans le testeur de stratégie.
Il s'arrête soudainement, alors que tous les agents locaux et distants ont terminé et qu'ils sont donc suspendus.
Pouvez-vous me dire comment le relancer, c'est dommage de tout recommencer ?Merci pour l'explication populaire, d'après ce que j'ai compris il est souhaitable de l'ArrayResize aux limites requises avant toute référence à une cellule de tableau dynamique , je vais essayer.
Note. Ce n'est que pour les tampons indicateurs qu'il ne sera pas nécessaire de le faire. Le sous-système exécutif du terminal s'en charge lui-même.
Note 2 :Il est préférable d'appliquer ArrayResize() uniquement lorsqu'il est nécessaire de modifier la taille d'un tableau dynamique, et non avant tout accès à ses éléments. Il se peut que la taille d'un tableau dynamique soit donnée une fois, puis que le programme accède simplement à ses éléments.
Note. Ce n'est que pour les tampons indicateurs qu'il ne sera pas nécessaire de le faire. Le sous-système exécutif du terminal s'en charge lui-même.
Note 2 :Il est préférable d'appliquer ArrayResize() uniquement lorsqu'il est nécessaire de modifier la taille d'un tableau dynamique, et non avant tout accès à ses éléments. Il se peut très bien qu'un tableau dynamique soit dimensionné une fois et que le programme accède ensuite simplement à ses éléments.