Répondre

CustomFunction pour clôturer les ordres au profit actuel

3 réponses

Mike H.

Abonné, bbp_participant, communauté, 76 réponses.

Visiter le profil

il y a 10 ans #111629

J'ai fini par mettre ce code dans un simple indicateur personnalisé utilisant des tampons pour être reconnu par l'assistant EA. Je verrai lundi si l'EA en cours de création fermera les ordres si nécessaire en utilisant le tampon de l'indicateur personnalisé. En fait, mon principal problème est de comprendre où placer et comment utiliser une FONCTION dans l'EA Wizard. Vous pouvez me dire de placer la FONCTION dans le fichier customfunction.mq4 ??? Je ne suis pas un magicien de l'écriture de code, c'est pourquoi j'ai acheté l'EA Wizard. Quelqu'un pourrait-il m'expliquer où et comment je dois insérer une FONCTION dans le logiciel EA Wizard pour que ce dernier puisse l'utiliser ?

 

Je crois que j'ai trouvé la solution. Voir le fichier joint...

double profit()

{

   OrderSelect(NULL,0) ;

   double profit = OrderProfit() + OrderSwap() ;

   le rendement (bénéfice) ;

}

 

Révision effectuée depuis la première publication. (il ne reste plus qu'une erreur)

J'ai besoin d'une condition de fonction personnalisée qui récupère simplement le profit actuel d'un ordre ouvert. Ainsi, si la valeur de la fonction est supérieure à zéro, l'EA fermera les ordres ouverts le vendredi. J'essaie de comprendre comment ajouter la fonction suivante dans C:\SQ_EAWizard\code\CustomFunctions.mq4. Je pense que la fonction suivante fonctionnera ?
double profit() ;

 

RÉVISION :

double profit() ;
{
   OrderSelect() ;
   double profit = OrderProfit(NULL) + OrderSwap(NULL) ;
   le rendement (bénéfice) ;
}

 

1 erreur :

1:8 ; "profit" - pas de dll définie pour la fonction importée

 

OLD :

{
   OrderSelect() ;
   profit = OrderProfit() + OrderSwap() ;
   le rendement (bénéfice) ;
}
J'essaie d'ajouter cette fonction à CustomFunctions.mq4 :
double exampleFunction(double value) {
   retour(2 * valeur) ;
}
Comment faire pour que la variable "profit" ne soit pas globale ?
Lorsque je compile, pourquoi est-ce que j'obtiens une erreur indiquant qu'il n'est pas possible d'importer un fichier .dll ?

0

Mark Fric

Administrateur, sq-ultimate, 2 réponses.

Visiter le profil

il y a 10 ans #122753

Je vous ai répondu dans un autre fil, j'ai également posté un exemple de fonction de profit.

 

Voici la fonction par défaut utilisée par l'EA Wizard pour déterminer le profit ouvert (sans les swaps et les commissions), vous pouvez la copier en utilisant un nom différent

et la modifier de manière à ce qu'elle inclue également les swaps et les commissions.

 

double sqGetOpenPLInMoney(int orderMagicNumber) {
   double pl = 0 ;
 
   for (int cc = OrdersTotal() - 1 ; cc >= 0 ; cc-) {
      if (!OrderSelect(cc, SELECT_BY_POS) ) continue ;
      if(OrderType() != OP_BUY && OrderType() != OP_SELL) continue ;
      if(OrderSymbol() != Symbol()) continue ;
      if(orderMagicNumber != 0 && OrderMagicNumber() != orderMagicNumber) continue ;
 
      pl += OrderProfit() ;
   }
 
   retour(pl) ;
}

 

Je ne sais pas pourquoi il y a un appel d'erreur dll, il semble que MT4 ne trouve pas la fonction. Pouvez-vous vérifier dans votre EA si votre fonction est présente ?

 

Marque

Marque
StratégieArchitecte de Quantités

0

Mike H.

Abonné, bbp_participant, communauté, 76 réponses.

Visiter le profil

il y a 10 ans #122762

Oui, Mark,

       Je me souviens d'avoir regardé cet état. Je n'ai pas voulu l'utiliser parce qu'il n'incluait pas l'échange. Je ne m'inquiète pas de la commission car je paie à l'écart...

Peut-être que je peux modifier le code avant de compiler... En fait, j'ai modifié le code pour Order Opened This Minute & Order Closed This Minute à 1320 secondes au lieu de 60 secondes. 60 secondes n'est pas assez long pour voir si la direction de la paire de devises peut changer...

0

Mike H.

Abonné, bbp_participant, communauté, 76 réponses.

Visiter le profil

il y a 10 ans #122770

Mon indicateur personnalisé dans lequel la fonction OpenProfit a été utilisée a très bien fonctionné. Il a même calculé le Swap.

0

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