Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1076
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
Bonjour. Pourriez-vous m'aider, si vous avez le temps La question est la suivante, j'ai besoin que l'EA ouvre un ordre sur chaque signal de deux indicateurs, (ils donnent un signal quand ils sont dans une certaine combinaison) en un mot, il devrait y avoir plusieurs ordres d'achat ou de vente sur le marché, respectivement, selon les signaux des indicateurs. Mais je n'ai qu'un seul ordre sur le marché et tant qu'il ne se ferme pas, le suivant ne s'ouvre pas...... S'agit-il d'une question de comptage des ordres ? S'il vous plaît, donnez-moi un indice. Si vous en avez besoin, je peux vous envoyer le code.
Merci d'avance !
supprimer la condition "if (OrdersTotal()==0)....". - Ils disent simplement : rechercher les entrées et ouvrir de nouveaux ordres uniquement lorsqu'il n'y a pas d'ordre du tout.
Si vous ne voulez pas ouvrir un gros paquet de nouvelles commandes sans cette condition, vous devez créer une condition supplémentaire. Et cela dépend de votre stratégie : ne pas en ouvrir un nouveau dans le temps T du précédent, ou contrôler les barres ou garder des distances en pips entre les ordres....
Bonjour. Je commencerai par vous remercier d'avoir aidé les débutants. Je ne serais pas capable de répondre moi-même à des questions élémentaires, jour après jour, à un débutant puis à un autre.
Et la question est la suivante :
Je pensais auparavant, lorsque mql4 était un peu différent, que tout traitement d'ordre, comme l'ouverture/la fermeture/la modification après une éventuelle erreur devait être interrompu par la fonction return(0). A cause de cela, si je devais fermer plusieurs ordres ouverts au prix actuel, le testeur les fermerait un par un sur chaque nouvelle barre et cela fausserait probablement l'image réelle (de manière assez spectaculaire, parfois) dans le testeur (pour chaque tick d'une trame). Le nouvel EA doit fermer plusieurs ordres exactement par le signal et partiellement.
Question : Est-il possible de les traiter tous (les fermer partiellement) dans une boucle, sans interrompre la boucle à chaque fois ? Le testeur sera-t-il capable de le gérer ? En d'autres termes, sera-t-il capable de les fermer partiellement sur une seule barre ?
Bonjour. Je commencerai par vous remercier d'avoir aidé les débutants. Je ne serais pas capable de répondre moi-même à des questions élémentaires, jour après jour, à un débutant puis à un autre.
Et la question est la suivante :
Je pensais auparavant, lorsque mql4 était un peu différent, que tout traitement d'ordre, comme l'ouverture/la fermeture/la modification après une éventuelle erreur devait être interrompu par la fonction return(0). A cause de cela, si je devais fermer plusieurs ordres ouverts au prix actuel, le testeur les fermerait un par un sur chaque nouvelle barre et cela fausserait probablement l'image réelle (assez dramatiquement, parfois) dans le testeur (pour chaque tick d'une trame). Le nouvel EA doit fermer plusieurs ordres exactement par le signal et partiellement.
Question : Est-il possible de les traiter tous (les fermer partiellement) dans une boucle, sans interrompre la boucle à chaque fois ? Le testeur sera-t-il capable de le gérer ? En d'autres termes, sera-t-il capable de les fermer partiellement sur une seule barre ?
Il peut le faire sans problème à une petite condition. Le code doit être écrit correctement.
S'il y a 2 fonctions (éventuellement surchargées), par exemple, int Funkz(int a) int Funkz(int a, int b, int w), et qu'ensuite le programme est compilé, quelle fonction fonctionnera plus rapidement, la première considérant qu'elle a un argument ou cela n'a pas d'importance, car le programme est déjà construit et ce qui est décrit dans le corps, ou tout de même il y a un petit effet, car les arguments de la fonction représentent une pile pour laquelle la mémoire est réservée ?
Si vous avez deux fonctions du même nom avec un nombre d'arguments différent, la question n'est pas de savoir laquelle sera appelée plus rapidement. Lorsque vous appelez une fonction, vous n'écrivez pas Funkz(), vous spécifiez le nombre d'arguments.
La question est de savoir si le compilateur va mâcher les fonctions portant le même nom.
Si je comprends bien, nous ne parlons pas du code, mais du fichier compilé ?
Si vous avez deux fonctions du même nom avec un nombre d'arguments différent, la question n'est pas de savoir laquelle sera appelée plus rapidement. Lorsque vous appelez une fonction, vous n'écrivez pas Funkz(), vous spécifiez le nombre d'arguments.
La question est de savoir si le compilateur va mâcher les fonctions portant le même nom.
Vous voulez dire le fichier compilé, pas le code ?
Et si les fonctions sont différentes, laquelle fonctionnera plus rapidement avec moins ou plus d'arguments ? Je pense que le fait de surcharger avec différents numéros entraîne également une charge ou est-ce juste par commodité ?
Veuillez me dire comment écrire #define ?
Je l'écris comme ceci
#define my_POS cst_Position.my_Position
Si je change cette construction en def - tout fonctionne.
Mais quand j'écris simplement my_POS. la liste des fonctions ne s'affiche pas après un point.
Idem pour
#define pos_DATA cst_Position.getPositionData
il n'y a pas d'indices après le pos_DATA(.
Qu'est-ce que je fais de mal ?
Bonjour, chers experts !
Veuillez m'aider à résoudre ce problème.
Lorsque je teste une paire, tout fonctionne correctement, mais lorsque je travaille avec d'autres devises, les ordres en attente ne sont pas placés (je dois exposer l'ordre en attente) et ne sont pas fermés après le déclenchement du take profit.
Veuillez indiquer comment modifier le code, si possible :
Merci beaucoup à l'avance
Bonjour, chers experts !
Veuillez m'aider à résoudre ce problème.
...Veuillez insérer le code correctement :