Erreurs, bugs, questions - page 3148
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
Cela est dû au fait que l'IndBuff n'est pas alloué à rates_total + 1
et que ArrayResize ne lui est pas applicable.
for(int i=limit - 1;....
au minimum...
Tu sais ce qui est le plus ennuyeux ? Que tout comportement est trompé en silence, sans avertissement.
Et puis les gens sont blessés. J'en ai marre de ce metatrader.
Tu sais ce qui est le plus ennuyeux ? Que tout comportement est trompé en silence, sans avertissement.
Et puis les gens sont blessés. J'en ai marre de ce metatrader.
Tu sais ce qui est le plus ennuyeux ? Que tout comportement est trompé en silence, sans avertissement.
Et puis les gens sont blessés. J'en ai marre de ce metatrader.
Je n'ai pas remarqué de changement dans le calcul des indicateurs. Comme vous l'avez vu ci-dessus, Nikolay a expliqué à juste titre ce que signifient les valeurs limites calculées comme rates_total-prev_calculated.
Et ça marche depuis des années - depuis le quatrième terminal.
C'est là que vous avez besoin du moins un :))
Nikolay je connais les constructions si et pour un,
mais j'ai toujours travaillé avec pour, je m'y suis habitué, c'est plus pratique.
Mais j'ai remarqué des choses étranges depuis longtemps et je n'ai pas cherché à les comprendre.
Il fonctionnait bien avant
pour i>=0 ticks
pour i>0 bars
Et il n'y avait pas besoin de "si".
Étape 1 : Créez un modèle en utilisant 'MQL5 Wizard' :
Étape 2 : épellez correctement "limite" et UTILISEZ le tableau de fermeture - PAS l'appel iClose ! !!
Résultat :
Et il n'y a pas d'erreurs.
Étape 1 : Créez un modèle en utilisant 'MQL5 Wizard' :
Étape 2 : épellez correctement le mot "limite" et UTILISEZ le tableau de fermeture - PAS l'appel iClose ! !!
Résultat :
et il n'y a pas d'erreurs.
Merci pour l'exemple direct de i++ bien sûr.
Mais le fait que j'aie une boucle inversée, vous ne l'avez pas remarqué.
Et si iClose est cité en exemple, il doit être utilisé pour montrer que l'indice i sera ensuite utilisé dans d'autres fonctions.
Nikolaï, je connais les constructions de si et pour un,
sinon si
c'est ici que
est erroné - il vaut mieux utiliser
if limit != 1
Donc toute la logique est à peu près ce qu'elle est :
Je comprends que certaines personnes vont s'indigner et dire pourquoi je devrais tout recalculer si limit == 2,mais lorsque limit n'est pas égal à 1 et n'est pas égal à 0, cela signifie qu'il s'agit de la première initialisation de l'indicateur ou que quelque chose s'est mal passé (par exemple, un échec de connexion ou un échec du serveur)
De plus, j'ai souvent rencontré des situations où prev_calculated était plus grand que rates_total. Il s'agissait probablement d'un problème antérieur qui a été corrigé, mais depuis lors, j'utilise ce modèle par mesure de sécurité.
si limite != 1
Étape 1 : Créez un modèle en utilisant 'MQL5 Wizard' :
Étape 2 : épellez "limite" correctement et UTILISEZ le tableau de fermeture - PAS l'appel iClose ! !!
Résultat :
et il n'y a pas d'erreurs.
Qui a dit que c'était le seul calcul correct de la limite et de l'indicateur ?
Nous discutons d'un autre calcul de limite et de l'indicateur lui-même - de gauche à droite - depuis le début de l'histoire jusqu'à l'époque actuelle. C'est plus simple et plus évident.
Dans une telle limite calculée (int limit = rates_total - prev_calculated ; if(limit>1) limit=rates_total-1 ;) toutes les données relatives à
Si le tick actuel (limite==0), alors for(int i=limite ; i>=0 ; i--) { // . } calculera l'indicateur à chaque nouveau tick, et seule la barre zéro sera recalculée.
Si nous ouvrons une nouvelle barre (limite==1), alors for(int i=limite ; i>=0 ; i--) { // ... } effectuera le calcul de la première et de la barre zéro - précédente et nouvellement ouverte.
Si cette histoire change (limite>1), alors for(int i=limite ; i>=0 ; i--) { // ... } va effectuer un recalcul complet de l'indicateur pour tout l'historique disponible (l'historique a été modifié quelque part).