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

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
Vous ne les avez pas initialisés au début ou ailleurs, vous les avez juste déclarés.
J'ai écrit avant d'utiliser, c'est-à-dire si vous avez les variables SredRazmax, SredRazmin, Sredn comme des sommes de valeurs de tableau, alors pour calculer correctement la somme, vous devez mettre à zéro la variable et ensuite additionner les valeurs de tableau et les enregistrer dans cette variable
c'est-à-dire
Et le deuxième, ce que vous avez une question, dans l'indicateur chaque tick appelleraOnCalculate() et cela signifie que vous compterez constamment les sommets de ZigZag à chaque tick, c'est-à-dire environ 40-60 fois par seconde.
Merci, mais j'ai essayé de les mettre à zéro et j'ai essayé d'utiliserOnStart au lieu deOnCalculate() , les valeurs sautent toujours et ce n'est pas clair pour moi si ww=0 (la valeur du tableau est toujours affichée), pourquoi les valeurs sautent au milieu, comment faire pour ne pas compter chaque tick et seulement compter les valeurs du tableau ?
Merci, mais j'ai essayé de les mettre à zéro et d'utiliserOnStart au lieu deOnCalculate() .
Je pense que je ne peux pas expliquer pourquoi cela se produit ainsi, la question est que OnStart() est utilisé dans les scripts et OnCalculate() est utilisé dans les indicateurs. Vous devriez comprendre la différence entre les scripts et les indicateurs dans MQL.
je ne comprends pas bien quelle est votre tâche ? vous voulez sortir les valeurs de quoi ? dans le code, vous additionnez les prix auxquels les pics de ZigZag sont situés sur l'ensemble du graphique, dans la sortie vous écrivez "Average spread" et imprimez la valeur(SredRazmax-SredRazmin)/nn, et le calcul est effectué pour toutes les barres
pourquoi avez-vous besoin de l'indicateur si vous n'utilisez pas les tampons de l'indicateur pour dessiner ? dans l'indicateur, les tampons sont attachés aux barres, et leurs valeurs se déplacent dès qu'une nouvelle barre apparaît.
Je ne peux pas expliquer pourquoi cela se produit, le fait est que OnStart() est utilisé dans les scripts, et OnCalculate() dans les indicateurs, vous devez comprendre comment les scripts diffèrent des indicateurs dans MQL.
je ne comprends pas bien quelle est votre tâche ? vous voulez sortir les valeurs de quoi ? dans le code, vous additionnez les prix auxquels les pics de ZigZag sont situés sur l'ensemble du graphique, dans la sortie vous écrivez "Average spread" et imprimez la valeur(SredRazmax-SredRazmin)/nn, et le calcul est effectué pour toutes les barres
Pourquoi avez-vous besoin d'un indicateur si vous n'utilisez pas les tampons de l'indicateur pour dessiner ? Dans un indicateur, les tampons sont attachés aux barres et leurs valeurs se déplaceront dès qu'une nouvelle barre apparaîtra.
Pour être honnête, j'ai simplifié le problème (la formule originale a l'air un peu différente), je pensais pouvoir comprendre pourquoi les valeurs de la moyenne sautent lorsque la valeur zéro du tableau reste constante. J'ai deux boucles, une pour remplir le tableau, et l'autre pour le calcul de la moyenne, il y a une limite de nn, et je voulais en fait sortir un graphique - c'est un zig zag standard, mais iCustom le dessine à fond, et la moyenne... À partir du nœud zéro, s'il est plus grand que le précédent, soustrayez le nœud précédent et à partir du précédent, soustrayez le précédent (il sera doté du signe moins, il doit donc être multiplié par moins 1) et tout cela doit être additionné et divisé par un nombre donné de nn. On obtient l'étendue moyenne des sommets. Ensuite, j'ai voulu obtenir d'autres moyennes pour le zigzag, mais je suis resté bloqué avec des valeurs "sautantes".
C'est à peu près comme ça que c'était à l'origine :
Pour être honnête, j'ai juste simplifié le problème (à l'origine, la formule est un peu différente), je pensais pouvoir comprendre pourquoi les valeurs de la moyenne sautent, si la valeur zéro du tableau reste constante. J'ai deux boucles, une pour remplir le tableau, et l'autre pour calculer la moyenne, il y a une limite de nn, et je voulais aussi sortir un graphique - c'est un zig zag standard, mais iCustom le dessine à fond, et la moyenne... À partir du nœud zéro, s'il est plus grand que le précédent, soustrayez le nœud précédent et à partir du précédent, soustrayez le précédent (il sera doté du signe moins, il doit donc être multiplié par moins 1) et tout cela doit être additionné et divisé par un nombre donné de nn. On obtient l'étendue moyenne des sommets. Ensuite, j'ai voulu obtenir d'autres moyennes pour le zigzag, mais je suis resté bloqué avec des valeurs "sautantes".
C'est à peu près comme ça qu'il était à l'origine :
Je ne comprends pas vraiment, il est tard, j'ai sommeil, j'ai bidouillé au fur et à mesure, j'ai des doutes sur le comportement de l'indicateur sur une barre zéro (je n'ai pas vérifié), mais il dessine et affiche les commentaires selon votre formule
Pouvez-vous m'aider à résoudre un tel problème ? (Si possible.)
Le conseiller expert émet une alerte dans certaines conditions. Est-il possible de faire en sorte que la fenêtre qui a déclenché l'alerte devienne également active ?
Pouvez-vous m'aider à résoudre un tel problème ? (Si possible.)
Le conseiller expert émet une alerte dans certaines conditions. Est-il possible de faire en sorte que la fenêtre qui a déclenché l'alerte devienne également active ?
J'ai quelques doutes sur le comportement de l'indicateur sur une barre zéro (je n'ai pas vérifié), mais il dessine et utilise votre formule pour sortir le commentaire.
Oui, merci pour votre temps, ça marche, j'ai dû faire quelque chose de mal. Mais il ne sort pas un tableau dans le commentaire (il ne devrait y avoir que des sommets, non ?) et compte mal les moins et les nombres..., le zigzag a un écart différent entre les sommets. L'idée est de soustraire le plus petit sommet précédent du dernier plus grand (qui vient d'être formé), et du plus petit précédent de soustraire encore celui qui est plus grand et le nombre sera avec le signe moins, nous le multiplions par (-1) et ainsi de suite, et tout cela est additionné nn fois et divisé par nn, nous obtenons le départ moyen. Approximativement sur 4 quarts, cela correspondrait à 1,69(de à) sur USDJPY. De plus, je voulais calculer le nombre moyen de barres entre les sommets. Je vais maintenant essayer de comprendre votre code, ce que j'ai mal fait, pourquoi il n'a pas dessiné et pourquoi il ne calcule pas correctement...
Oui, merci pour votre temps, ça marche vraiment, j'ai dû faire quelque chose de mal. Mais il n'affiche pas le tableau dans le commentaire (il ne devrait avoir que des sommets, non ?) et compte mal avec les moins et les nombres..., le zigzag a un écart différent entre les sommets. L'idée est de soustraire le plus petit sommet précédent du dernier plus grand (qui vient d'être formé), et du plus petit précédent de soustraire encore celui qui est plus grand et le nombre sera avec le signe moins, nous le multiplions par (-1) et ainsi de suite, et tout cela est additionné nn fois et divisé par nn, nous obtenons le départ moyen. Approximativement sur 4 quarts, cela correspondrait à 1,69(de à) sur USDJPY. De plus, je voulais calculer le nombre moyen de barres entre les sommets. Je vais maintenant essayer de comprendre votre code, ce que j'ai mal fait, pourquoi il ne m'a pas dessiné et pourquoi il ne calcule pas correctement...
Les sommets dans le commentaire ne sortiront pas, car le tampon indicateurHZZ[] contient des valeurs copiées du tampon indicateur ZigZag, sinon nous ne pourrons pas dessiner, j'ai délibérément divisé en 2 conditions de détection des sommets vers le haut et vers le bas:
Si vousavez besoin de connaître plusieurs sommets en ZZ, vous devez créer un autre tableau pour stocker ces données. Le nouveau tampon d'indicateur va compliquer les choses, car tous les tableaux connectés aux tampons d'indicateur vont "glisser" avec le graphique lorsqu'une nouvelle barre apparaît.
ZS : le code est mon exemple, et je pense qu'il faut boucler à la 1ère barre, et non à 0, ce qui recalculera constamment les valeurs de SredRazmax, je ne peux pas vérifier maintenant, pas de terminal dans le PC
Les sommets dans le commentaire ne sortiront pas, car le tampon indicateurHZZ[] contient des valeurs copiées du tampon indicateur ZigZag, sinon nous ne pourrons pas dessiner, j'ai délibérément divisé en 2 conditions de détection des sommets vers le haut et vers le bas:
Si vousavez besoin de connaître plusieurs sommets en ZZ, vous devez créer un autre tableau pour stocker ces données. Le nouveau tampon d'indicateur va compliquer les choses, car tous les tableaux connectés aux tampons d'indicateur "glissent" en même temps que le graphique.
SZY : le code est mon exemple, et je pense qu'il faut boucler à la 1ère barre, et non à 0, ce qui recalculera constamment la valeur de SredRazmax, je ne peux pas vérifier maintenant, pas de terminal dans le PC