Modifier un stop achat/vente

6 réponses

huangwh88

Customer, bbp_participant, community, 113 replies.

Visiter le profil

Il y a 7 ans #116411

Bonjour, 

 

Disons que j'ai un ordre d'achat stop au plus haut des 10 dernières périodes. Si l'ordre n'est pas déclenché après la dernière période, comment puis-je modifier le stop d'achat pour tenir compte du changement dans la fenêtre de 10 périodes ?

0

tomas262

Administrateur, sq-ultimate, 2 réponses.

Visiter le profil

Il y a 7 ans #141822

Bonjour,

 

pour modifier un ordre stop, il faut l'annuler à l'aide de la fonction "close position", puis rouvrir un nouvel ordre.

0

huangwh88

Customer, bbp_participant, community, 113 replies.

Visiter le profil

Il y a 7 ans #141834

Bonjour,

 

pour modifier un ordre stop, il faut l'annuler à l'aide de la fonction "close position", puis rouvrir un nouvel ordre.

Bonjour Tomas,

 

Chaque fois que le buy stop de highest(10) n'est pas déclenché, je veux ajuster le prix d'entrée de façon à ce que le high le plus élevé soit mis à jour. J'ai essayé ceci :

 

IF : 

l'ordre en attente existe(1000) est Vrai

 

ALORS :

 

position rapprochée, nombre magique 1000

Entrer à l'arrêt, le plus élevé (10), le nombre magique 1000

 

Il y a une erreur parce qu'il y a 2 ordres avec le nombre magique 1000. La règle qui a créé l'ordre d'achat initial utilise également le nombre magique 1000. Ai-je besoin d'un numéro magique différent chaque fois que je modifie un stop d'achat, même si les ordres sont en fait les mêmes ?

0

tomas262

Administrateur, sq-ultimate, 2 réponses.

Visiter le profil

Il y a 7 ans #141849

Bonjour,

 

ok, nous avons besoin d'utiliser une fonction pour modifier le prix de la commande. Je vais faire un exemple pour cela et le joindre

0

tomas262

Administrateur, sq-ultimate, 2 réponses.

Visiter le profil

Il y a 7 ans #141870

Vous pouvez ajouter cette fonction dans EA Wizard CustomFunctions.mq4 placé dans Wizard \ Code 

void modifyPendingOrder(int orderMagicNumber, double newPO) {
   bool found = false ;
   
   for (int cc = OrdersTotal() - 1 ; cc >= 0 ; cc--) {
      if (!OrderSelect(cc, SELECT_BY_POS) ) continue ;

      if(OrderMagicNumber() == orderMagicNumber && OrderSymbol() == Symbol()) {
         found = true ;

         Verbose("Moving PO for order with Magic Number : ", orderMagicNumber,", ticket : ", OrderTicket(), ", new PO : ", newPO) ;
         tmpRet = OrderModify(OrderTicket(), newPO, 0, 0, 0) ;
      }
   }

   if(!found) {
      Verbose("Moving PO - order with Magic Number : ", orderMagicNumber, " was not found") ;
   }

}

Le prix de la commande peut ensuite être modifié comme indiqué dans l'exemple ci-joint.

0

huangwh88

Customer, bbp_participant, community, 113 replies.

Visiter le profil

Il y a 7 ans #141966

Vous pouvez ajouter cette fonction dans EA Wizard CustomFunctions.mq4 placé dans Wizard \ Code 

void modifyPendingOrder(int orderMagicNumber, double newPO) {
   bool found = false ;
   
   for (int cc = OrdersTotal() - 1 ; cc >= 0 ; cc--) {
      if (!OrderSelect(cc, SELECT_BY_POS) ) continue ;

      if(OrderMagicNumber() == orderMagicNumber && OrderSymbol() == Symbol()) {
         found = true ;

         Verbose("Moving PO for order with Magic Number : ", orderMagicNumber,", ticket : ", OrderTicket(), ", new PO : ", newPO) ;
         tmpRet = OrderModify(OrderTicket(), newPO, 0, 0, 0) ;
      }
   }

   if(!found) {
      Verbose("Moving PO - order with Magic Number : ", orderMagicNumber, " was not found") ;
   }

}

Le prix de la commande peut ensuite être modifié comme indiqué dans l'exemple ci-joint.

 

Bonjour Tomas, merci pour votre aide précieuse.

 

Je souhaite ajouter une condition IF qui doit être satisfaite avant que l'ordre en attente puisse être déplacé selon le code ci-dessus. Si cette condition n'est pas remplie, l'ordre en attente est supprimé. Existe-t-il un moyen d'ajouter cette suppression d'ordre sans créer une autre règle IF/THEN ?

0

tomas262

Administrateur, sq-ultimate, 2 réponses.

Visiter le profil

Il y a 7 ans #141990

Bonjour,

 

oui, vous pouvez ajouter des conditions supplémentaires dans l'onglet modifier et créer un autre onglet pour supprimer l'ordre en attente (en utilisant la fonction "Fermer la position" pour le supprimer)

0

Affichage de 6 réponses de 1 à 6 (sur un total de 6)