[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 823

 
Tomcrafft:

Bonjour à tous !

Les gars, aidez-moi... Comment puis-je m'assurer que lorsqu'un ordre est ouvert à partir d'un certain niveau (avec stop and take)

Le conseiller expert n'ouvre pas de deuxième, troisième, etc. ordre. Et l'ordre suivant ne doit être ouvert qu'après que le premier ait été fermé au stop ou au take.

Vérifiez d'abord s'il existe déjà un ordre ouvert sur le marché, et s'il n'y en a pas encore, alors ouvrez-le, sinon ce n'est pas nécessaire.
 
"Effacer le cache du testeur", qu'est-ce que c'est et comment puis-je y parvenir ?
 
eugggy:

Besoin d'aide : il y a 2 ordres en attente (dans des directions différentes), quand l'un est déclenché, l'autre doit être fermé. Le code est présenté ci-dessous. Comment le faire correctement, qu'il n'y avait pas d'erreur avec le mauvais numéro de billet et fonctionne correctement, juste un couple de lignes nécessaires pour mettre dans l'EA, je n'apprends pas. Merci d'avance.



Quand la variable "Tip" prend-elle une valeur ? Il devrait l'être après OrderSelect().

OrderSelect(Total,SELECT_BY_TICKET,MODE_TRADES) ;
Tip=OrderType() ;

if(Tip==OP_SELL)

 
eugggy:

Aide nécessaire : il y a 2 ordres en attente (dans des directions différentes), quand l'un se déclenche, nous devons fermer l'autre. Le code est présenté ci-dessous. Comment il devrait être correctement établi qui n'était pas une erreur avec un numéro de billet erroné et fonctionne correctement, juste un couple de lignes nécessaires pour mettre dans le conseiller, j'ai quelque chose que je ne peux pas apprendre. Je ne sais pas comment faire. Merci d'avance.



Vérifiez s'il y a des ordres de marché.

S'il est présent, vérifiez s'il y a des dossiers en attente

Si oui, supprimez-les

 
eugggy:
Je l'ai fait par une boucle for, mais j'obtiens un désordre, OrdersTotal() renvoie le nombre de commandes (2), si je soustrais un, alors quelle commande sera sélectionnée : la première ou la seconde, et ensuite le même désordre avec les tickets. En général, l'erreur 4108 - mauvais numéro de ticket, et aussi Alert(Ticket) renvoie un numéro supérieur à 0, même si l'EA vient d'être lancé et qu'il n'y a pas d'ordres.

Préciser s'il s'agit de SELECT_BY_TICKET ou de SELECT_BY_POS.

Lisez à propos de OrderSelect() dans l'aide

SELECT_BY_TICKET les numéros de commande sur le serveur de l'entreprise, par exemple #12345 et #12399

SELECT_BY_POS les numéros de commande "dans la liste personnelle", c'est-à-dire que pour deux commandes, l'une a le numéro 0, l'autre le numéro 1.

 
eugggy:
Si je le laisse ainsi, cela fonctionnera-t-il correctement ? Cela semble fonctionner, peut-être que certains retours ou RefreshRates sont nécessaires, en un mot cela fonctionnera-t-il dans la vie réelle ?


Non, ça ne le sera pas.

 

eugggy:
А нельзя ли подробнее? Нельзя))). Я имею ввиду, если сильно не придираться, где, что, неправильно и как исправить?

Je l'ai fait avec une boucle for, mais ma confusion commence, OrdersTotal() retourne le nombre de commandes (2), si je soustrais un, alors quelle commande sera sélectionnée : la première ou la seconde, et ensuite la même confusion avec les tickets. En général, l'erreur 4108 est un numéro de ticket erroné et Alert(Ticket) renvoie un numéro supérieur à 0 même si l'EA vient d'être lancé et qu'il n'y a pas d'ordres.



Vous avez déjà eu votre réponse détaillée :

Vinin :


Vérifiez s'il y a des ordres de marché.

Si c'est le cas, vérifiez s'il y a des ordres en attente.

S'il y en a un, l'enlever Par cycles successifs pour
 
eugggy:
J'aimerais en savoir plus à ce sujet. Non))). Je veux dire, si tu n'es pas difficile, où, quoi, ce qui ne va pas et comment réparer ?


Je vais me répéter.

Vérifiez qu'il existe un ordre de marché,

Si c'est le cas, vérifiez s'il y a un ordre en attente.

Si c'est le cas, supprimez-le.

Le cas échéant, j'écrirai le code demain. Bien que cela ait déjà été fait quelque part dans ce sujet.

 
eugggy:
Je comprends, mais c'est facile pour vous, deux pour les tests, mais j'ai essayé - ça ne marche pas, c'est pourquoi je demande. Comme si j'étais un programmeur avec 5 ans d'expérience. Vous ne pouvez pas))) - Je plaisante.
postez tout votre code ici
 
eugggy:
J'ai l'idée, mais j'ai des problèmes avec la mise en œuvre, je ne suis pas familier avec la recherche de commandes, il n'y a presque rien dans l'aide, et le tutoriel n'est pas pour les esprits moyens. S'il n'y a pas de problème, j'essaierai d'utiliser le code source de MQL4, ou peut-être trouverez-vous des livres sur MQL4 qu'une personne moyenne peut comprendre.

Expliquez également, dans vos propres mots, ce que l'EA doit faire.