Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 974

 
Bonjour à tous ! Je suis vraiment impatient de recevoir votre aide. Je pense que la solution à ma question intéressera de nombreuses personnes. Lorsque le marché est très actif, le conseiller expert fixe souvent de mauvais niveaux de stop et de take. Est-il possible d'écrire un code qui forcerait l'EA à vérifier si les niveaux de clôture d'une position sont définis correctement après son ouverture, et s'ils sont différents de ceux définis à l'origine, alors l'EA définira les niveaux de stop et de prise correctement. Par exemple, je veux qu'une transaction soit ouverte avec des niveaux de stop et de prise égaux de 50 unités, qui ont été définis dans l'EA. Mais à cause des fortes oscillations, un trade s'ouvre avec un stop loss à 47 et un take profit à 53 ce qui ne me convient pas. Veuillez m'aider à écrire un code qui rendra les niveaux de clôture égaux à 50 après l'ouverture de la transaction. Je vous en serais très reconnaissant et je suis sûr que je ne suis pas le seul.
 
Hali:
Bonjour à tous, j'espère beaucoup de votre aide. Je pense que la solution à ma question sera intéressante pour de nombreux commerçants. Lorsque le marché est très actif, le conseiller expert fixe souvent les niveaux de Stop et Take de manière incorrecte. Est-il possible d'écrire un code qui forcerait l'EA à vérifier si les niveaux de clôture sont fixés correctement après l'ouverture de l'ordre, et s'ils sont différents de ceux fixés à l'origine, alors l'EA fixera les niveaux d'arrêt et d'enlèvement correctement. Par exemple, je veux qu'une transaction soit ouverte avec des niveaux de stop et de prise égaux de 50 unités, qui ont été définis dans l'EA. Mais à cause des fortes oscillations, un trade s'ouvre avec un stop loss à 47 et un take profit à 53 ce qui ne me convient pas. Veuillez m'aider à écrire un code qui rendra les niveaux de clôture égaux à 50 après l'ouverture de la transaction. Je vous en serais très reconnaissant et je suis sûr que je ne suis pas le seul.

Je suis sûr qu'il y en a un.

En plus de OrderSend(), il y a OrderModify() dans le même groupe de fonctions"Fonctions de trading". En outre, il existe des types de comptes pour lesquels vous ne pouvez pas ouvrir des ordres avec un stop non nul et prendre des positions simultanément. Cela signifie que nous ouvrons d'abord un ordre, puis que nous plaçons un ordre stop et un ordre take à l'aide de la fonction OrderModify(). Les niveaux de take et de stop doivent être calculés à partir du prix OrderOpenPrice().

J'espère que cette réponse est suffisamment claire.

 
La réponse est claire, mais malheureusement je ne sais pas comment le faire(. Pouvez-vous me montrer un exemple de code où cela est mis en œuvre. Je vous en serais très reconnaissant.
 
Hali:
La réponse est claire, mais malheureusement je ne sais pas comment le faire(. Pouvez-vous me montrer un exemple de code où cela est mis en œuvre. Je vous en serais très reconnaissant.

Eh bien, il y a des exemples dans la documentation

void OnStart()
  {
   int TrailingStop=50;
//--- модифицирует цену Stop Loss ордера на покупку №12345
   if(TrailingStop>0)
     {
      OrderSelect(12345,SELECT_BY_TICKET);
      if(Bid-OrderOpenPrice()>_Point*TrailingStop)
        {
         if(OrderStopLoss()<Bid-_Point*TrailingStop)
           {
            bool res=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-_Point*TrailingStop,_Digits),OrderTakeProfit(),0,Blue);
            if(!res)
               Print("Ошибка модификации ордера. Код ошибки=",GetLastError());
            else
               Print("Цена Stop Loss ордера успешно модифицирована.");
           }
        }
     }
  }
 

Question supprimée.

 
Alligator:

Question supprimée.

Merci pour les réponses. Malheureusement, je suis assez novice dans ce domaine. J'ai un EA (écrit non sans l'aide des membres de ce forum) que j'aimerais compléter avec une modification du take and stop, comme décrit dans les posts ci-dessus, mais je n'ai aucun moyen de le faire. Si cela ne pose pas trop de problèmes, quelqu'un peut m'aider dans cette tâche.
 

Je ne vois pas le bouton "recherche par site" sur mql4.com maintenant.

Sur mql5.com, ce bouton est toujours présent.

Est-ce une coïncidence ou devons-nous passer complètement à mql5 ?

 
Hali:
Merci pour les réponses. Malheureusement, je suis complètement novice en la matière. J'ai un EA (écrit avec un peu d'aide des membres de ce forum). Je voudrais le modifier en modifiant le take et le stop, comme décrit dans les posts ci-dessus, mais je n'y arrive pas. Si cela ne pose pas trop de problèmes, quelqu'un peut m'aider dans cette tâche.

Écrivez-le vous-même ! Si tu perds sur le Martin, tu t'en voudras ! Personne ne veut être blâmé ! Ou allez chez Freelance, ils feront tout de manière professionnelle et à moindre coût !

 
BAS581:

Je ne vois pas le bouton "recherche par site" sur mql4.com maintenant.

Sur mql5.com, ce bouton est toujours présent.

Est-ce une coïncidence ou devons-nous passer complètement à mql5 ?

Il y a une recherche ! Passez votre curseur sur la loupe et écrivez ce dont vous avez besoin !
 
borilunad:
Il y a une recherche ! Passez votre curseur sur la loupe et écrivez ce dont vous avez besoin !

Merci pour votre aide. Si vous savez qu'il existe une solution, il est plus facile de la trouver. )))

Dans ce cas, la solution était la suivante : dans FireFox, faites un zoom arrière sur la page, et la loupe apparaît alors.

Il n'est tout simplement pas disponible à l'échelle normale.