Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1228
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
Mettez-le dedans. Je ne l'ai pas fait. Il s'ouvre par paquets. La magie - elle l'ignore.
Lorsque vous écrivez du code, traduisez sa logique en russe. Au début, il y a un cycle dans lequel des comparaisons sont faites et si l'ordre sélectionné n'est pas un ordre de marché, alors à l'itération suivante ; si le symbole n'est pas EURUSD, alors à l'itération suivante et si le magik n'est pas égal à votre magik, alors à l'itération suivante. À la fin du cycle, vous comptez le nombre d'itérations passées avant la fin du cycle. Le cycle se termine et le programme commence à ouvrir les commandes selon les conditions. Considérant que l'une des conditions est toujours vraie, un ordre est ouvert. Et cela se produit à chaque tic.
Lorsque vous écrivez le code, traduisez sa logique en russe. Vous avez d'abord un cycle dans lequel des comparaisons sont faites ; si l'ordre sélectionné n'est pas un ordre de marché, alors à l'itération suivante ; si l'instrument n'est pas l'Eurobucks, alors à l'itération suivante ; et si le magik n'est pas égal à votre magik, alors à l'itération suivante. À la fin du cycle, vous comptez le nombre d'itérations passées avant la fin du cycle. Le cycle se termine et le programme commence à ouvrir les commandes selon les conditions. Considérant que l'une des conditions est toujours vraie, un ordre est ouvert. Et cela se produit à chaque tic.
Je vois. Mais dans ce cas, si(OrderMagicNumber() == MagicNumber)continue, l'ordre qui a été placé est accepté pour un ordre placé par Magic(o). En d'autres termes, l'ordre placé manuellement sur EUROBAX doit être ignoré et un autre ordre doit être ouvert par un Expert Advisor avec Magic.
OrdersTotal() - c'est le problème qui met fin à toute manipulation avec Magic.Je comprends. Mais dans ce cas : if(OrderMagicNumber() == MagicNumber)continue ; Les ordres placés sont pris pour des ordres placés par Magic(s). C'est-à-dire qu'un ordre placé manuellement sur Eurobucks devrait être ignoré, et un autre devrait être ouvert par un EA avec Magic.
OrdersTotal() - c'est l'infestation qui met un terme à toute manipulation du magicien.Le code est exécuté de haut en bas. Après la boucle, vous avez le placement des ordres. if(OrderMagicNumber() == MagicNumber)continue ; Ceci interrompra l'exécution du corps de la boucle et une nouvelle itération de la boucle commencera. La boucle se termine et la passation de la commande commence. C'est ainsi que vous l'avez écrit. Le nombre total de commandes n'a rien à voir avec cela. Si vous voulez faire une condition que s'il n'y a pas d'ordres placés avec votre magik et instrument, alors le code de placement d'ordre devrait être différent.
Passez en revue les numéros de commande. Si un ordre est trouvé avec notre magik et sur notre instrument, alors retour - sortie du départ. Ou un drapeau que votre ordre est là et au début ontik ou le début vérifier sur le drapeau.
Et il est préférable de créer un EA à partir d'un modèle pour créer un script EA, un indicateur. Les champs du code principal seront plus corrects.
Le code est exécuté de haut en bas. dans une boucle selon les règles de la boucle. Après la boucle, vous avez placé des commandes. if(OrderMagicNumber() == MagicNumber)continue ; Ceci interrompra l'exécution du corps de la boucle et une nouvelle itération de la boucle commencera. La boucle se termine et la passation de la commande commence. C'est ainsi que vous l'avez écrit. Le nombre total de commandes n'a rien à voir avec cela. Si vous voulez faire une condition que s'il n'y a pas d'ordres placés avec votre magik et instrument, alors le code de placement d'ordre devrait être différent.
Passez en revue les numéros de commande. Si un ordre est trouvé avec notre magik et sur notre instrument, alors retour - sortie du départ. Ou un drapeau que votre ordre est là et au début ontik ou le début vérifier sur le drapeau.
Et il est préférable de créer un EA à partir d'un modèle pour créer un script EA, un indicateur. Les champs du code principal seront plus corrects.
Je suppose que ce n'est pas la solution, mais dans quelle direction travailler ?
J'ai essayé une vingtaine de variantes. Soit ouvre un ordre, soit sans aucune interruption, tuyvukuchu.
Ici, d'ailleurs, sur OrderSekect - une variable de type bool doit être définie, sinon elle jure.
Ce n'est pas une solution, mais quelle voie emprunter ?
J'ai déjà essayé une vingtaine de variantes. Soit l'ouverture d'un seul ordre, soit l'ouverture sans aucune interruption.
Ici, d'ailleurs, sur OrderSekect - une variable de type bool doit être définie, sinon elle jure.
Oui, il devrait, il ne retourne nulle part.
Vous feriez mieux d'écrire l'algorithme, ce que vous voulez faire.
Ce n'est pas une solution, mais quelle voie emprunter ?
J'ai déjà essayé une vingtaine de variantes. Soit l'ouverture d'un seul ordre, soit l'ouverture sans aucune interruption.
Ici, en passant, sur OrderSekect - une variable de type bool doit être définie, sinon elle jure.
Au lieu de return(0), on devrait dire continue.
Des personnes compétentes et bien informées ! Aide pour implémenter l'indicateur Enveloppes dans un EA MT5. L'EA lui-même doit traiter chaque tick (sans saut). J'ai essayé quelques variantes, j'ai regardé dans la documentation, je semble aimer la variante, mais c'est pour le handler OnCalculate. Je ne l'ai pas encore essayé avec la bibliothèque standard... Eh bien, voici ma mise en œuvre initiale :
Dans le testeur visuel, j'obtiens :
Oui, c'est censé jurer, ça ne retourne nulle part.
Vous feriez mieux d'écrire l'algorithme que vous voulez faire, ce n'est pas clair ce dont vous avez besoin.
Dans le premier message se trouve le code. C'est facile : on franchit le sommet/bas précédent - on ouvre une transaction. Les ordres ouverts par cet EA ne doivent pas croiser les autres ordres ouverts manuellement ou par un autre EA, c'est-à-dire que l'EA doit fonctionner indépendamment.
J'ai cherché partout sur Internet. Il s'agit d'un sujet plutôt banal, mais il existe de nombreuses variantes. Cela semble être une chose simple, et on ne la trouve nulle part.
Dans le premier message, le code. C'est simple : casser le sommet/bas précédent - ouvrir une transaction. Les ordres ouverts par cet EA ne doivent pas se chevaucher avec d'autres ordres ouverts manuellement, ou avec ceux ouverts par un autre EA, c'est-à-dire que l'EA doit fonctionner indépendamment.
J'ai cherché partout sur Internet. Il s'agit d'un sujet plutôt banal, mais il existe de nombreuses variantes. Cela semble être une chose simple, et on ne la trouve nulle part.
au lieu de return(0) la signification devrait être continue