Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 614
![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
Merci d'avoir répondu. Si vous le voulez bien, envoyez-moi l'EA dont vous parlez (ou une partie de celle-ci, qui est avec le canal) - il serait intéressant de voir une autre implémentation.
Je n'arrive pas à donner un sens à quelque chose que j'ai fait il y a quelques années. Il ne fonctionne pas pour une raison quelconque, alors que je me souviens qu'il fonctionnait et qu'il était utilisé pour le commerce. Laissez-moi d'abord trier le code, le réparer et le poster ensuite. Peut-être demain. Je ne veux pas m'embarrasser s'il y a des erreurs enfantines.
L'idée générale, bien sûr, est la suivante. Et comment déterminez-vous la largeur du canal (plage dans votre cas) ? Je le fais à travers la taille de la bougie moyenne et tout est lié à la longueur du canal, car la présence du canal n'est pas vérifiée sur un nombre rigide de barres, mais, par exemple, sur une longueur de 10 à 30 barres.
Ce qui m'intéresse, c'est la question de la sélection de la largeur à partir de la longueur...
Vous pouvez définir plusieurs paramètres externes pour la largeur du canal dans un seul indicateur. Et faites des calculs séparés pour chaque paramètre.
Pour la longueur, il en va de même.
Bonjour. Le panier Expert Advisor devrait fermer tous les ordres lorsque la condition survient, mais il ferme d'abord l'ordre, puis essaie de le fermer à nouveau (le serveur nous donne une erreur disant "ticket invalide") et seulement ensuite il va plus loin. Voici un exemple de code et l'EA elle-même.
Dans votre fonction CloseOrders(), si l'ordre est fermé, le cycle while(cnt<=5 ) enverra à nouveau le code pour fermer l'ordre, et une erreur se produira, bien sûr, puis on sortira par if(). pause ;
Dans la fonction ProtectionClose(), vous avez déjà ajouté des lignes avec la sortie while correcte.
Essayez de creuser ici.Dans votre fonction CloseOrders(), si l'ordre est fermé, le cycle while(cnt<=5) enverra à nouveau le code pour fermer l'ordre, et une erreur se produira, bien sûr, puis on sortira par if(). pause ;
Dans la fonction ProtectionClose(), vous avez déjà ajouté des lignes avec la sortiewhile correcte
Essayez de creuser un peu ici.Mais dans le cas que j'ai décrit, c'est la fonction ProtectionClose() qui ferme l'ordre. Je vais corriger cette erreur.
Cependant, c'est la fonction ProtectionClose() qui ferme les ordres dans le cas que j'ai décrit. Je vais corriger cette erreur.
Je n'ai pas creusé dans le code, je n'ai pas pu l'exécuter dans le testeur, il n'y a pas d'indicateur.
Mais, par exemple, vos fonctions OpenUsdbuy() ; OpenSellusd() sont consécutives.
OpenSellusd() ouvre GBPUSD, EURUSD, AUDUSD, NZDUSD, etc. Vous serez le premier à les fermer dans l'ordre inverse de NZDUSD, AUDUSD, etc.
Seules trois paires dans la fonction ProtectionClose() ont une sortie while dans deux variantes : USDCAD, USDCHF et USDJPY.
En d'autres devises, vous ne pouvez quitter while() que par une erreur if(!Result[...]).
Il est possible d'établir plusieurs paramètres externes pour la largeur du canal dans un seul indicateur. Et faites des calculs séparés pour chaque paramètre.
Le point est que je ne veux pas définir la largeur du canal de manière forcée - le conseiller expert/indicateur doit détecter la présence du canal indépendamment de la paire de devises et/ou de la volatilité actuelle. Par conséquent, je ne fixe que la longueur minimale et maximale du canal à partir de paramètres externes, et ce uniquement dans le processus de débogage de l'algorithme - par la suite, ces paramètres seront cousus dans celui-ci. A ce stade, il y a quelques plaintes. Bien que je puisse attraper les canaux en général (la photo a été prise à partir du code de travail), j'aimerais voir d'autres solutions à ce problème.
Je n'ai pas creusé dans le code, je n'ai pas pu l'exécuter dans le testeur, il n'y a pas d'indicateur.
Mais, par exemple, vos fonctions OpenUsdbuy() ; OpenSellusd() sont consécutives.
OpenSellusd() ouvre GBPUSD, EURUSD, AUDUSD, NZDUSD, etc. Vous serez le premier à les fermer dans l'ordre inverse de NZDUSD, AUDUSD, etc.
Seules trois paires dans la fonction ProtectionClose() ont une sortie while dans deux variantes : USDCAD, USDCHF et USDJPY.
En d'autres devises, vous ne pouvez quitter while() que par une erreur if(!Result[...])
Merci pour le conseil, j'ai oublié de laisser la boucle dans ce cas, cela devrait fonctionner maintenant. Si vous voulez, je peux coller l'indicateur en guise de remerciement.
L'idée générale, bien sûr, est la suivante. Et comment déterminez-vous la largeur du canal (plage dans votre cas) ? Je le fais à travers la taille de la bougie moyenne et tout est lié à la longueur du canal, car la présence du canal n'est pas vérifiée sur un nombre rigide de barres, mais, par exemple, sur une longueur de 10 à 30 barres.
Ce qui m'intéresse, c'est la question du choix de la largeur à partir de la longueur...
Eh bien, dans mon cas, j'ai suggéré une option plus légère de la lanterne pour attribuer la hauteur du canal et le nombre minimum de barres également.
Le point est que je ne veux pas définir la largeur du canal de manière forcée - le conseiller expert/indicateur doit détecter la présence du canal indépendamment de la paire de devises et/ou de la volatilité actuelle. Par conséquent, je ne fixe que la longueur minimale et maximale du canal à partir de paramètres externes, et ce uniquement dans le processus de débogage de l'algorithme - par la suite, ces paramètres seront cousus dans celui-ci. A ce stade, il y a quelques plaintes. Bien que je puisse attraper les canaux en général (la photo a été prise à partir du code de travail), j'aimerais voir d'autres solutions à ce problème.
Le point est que je ne veux pas définir la largeur du canal de manière forcée - le conseiller expert/indicateur doit déterminer la présence du canal, indépendamment de la paire de devises et/ou de la volatilité actuelle. Par conséquent, j'ai fixé la longueur minimale et maximale du canal à partir de paramètres externes, et ce uniquement dans le processus de débogage de l'algorithme - par la suite, ces paramètres seront cousus dans celui-ci. A ce stade, il y a quelques plaintes. Bien que je puisse capter les canaux en général (l'image provient du code de travail), j'aimerais voir d'autres solutions pour ce problème.
Eh bien, il existe une idée pour attraper 2 fractales supérieures consécutives ou 2 fractales iHighest constituées, disons, de 5-10 chandeliers. Nous attrapons cette affaire dans une certaine fourchette de longueur. Si les valeurs de ces pics sont proches l'une de l'autre, nous trouverons iLowest entre ces deux pics.
De la même manière, recherchez d'abord deux pics inférieurs, puis le pic supérieur entre les deux.
Puis nous danserons sur ces sommets retrouvés. D'abord, nous dessinons des niveaux par eux. Ensuite, nous apprenons au code à penser plus loin.
Cette option permet d'éliminer le paramètre externe tel que Channel_width.
Quelle que soit la façon dont vous voyez les choses, je pense que nous avons besoin d'au moins quelques paramètres pour la longueur.