CustomFunctions.mq4 ? ???

4 réponses

Mike H.

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

Visiter le profil

il y a 10 ans #111633

Dans l'assistant EA - Règles de trading - Boîte de dialogue des conditions - Fonctions (17) - Fonctions personnalisées - Description (ci-dessous), il explique : Appeler votre propre fonction. Vous pouvez spécifier n'importe quelle commande MQL ici, ou appeler une fonction MQL personnalisée définie dans le fichier /code/CustomFunctions.mq4. Vous êtes responsable de la comparaison de la fonction avec les types corrects. J'ai ce que je pense être une fonction :
double profit() {
   OrderSelect (NULL,0) ;
   double profit = OrderProfit() + OrderSwap() + OrderCommission()
   le rendement (bénéfice) ;
}

Je suis novice, c'est pourquoi j'ai acheté l'EA Wizard. Je connais un peu l'écriture de code. Je sais comment écrire des indicateurs personnalisés simples. Je ne sais même pas si le format ci-dessus est une fonction qui peut être utilisée avec EA Wizard.

Comment insérer la fonction ci-dessus dans le fichier /code/CustomFunctions.mq4 ?
Dois-je simplement remplacer le code dans /code/CustomFunctions.mq4 par le code ci-dessus, puis renommer le fichier .mq4, le conserver dans le dossier /code, et l'assistant EA le trouvera à cet endroit ? Je pense que dans la section Propriétés de la boîte de dialogue Ajouter une condition, après Fonction, je tape le nom du fichier de la fonction. Après Function, dois-je simplement nommer le fichier et l'assistant EA le trouvera dans le dossier /code ? Dois-je simplement taper OrderProfit()+OrderSwap() ? Comment utiliser les fonctions personnalisées ?

 

0

Mark Fric

Administrateur, sq-ultimate, 2 réponses.

Visiter le profil

il y a 10 ans #122750

Bonjour,

 

vous pouvez ouvrir le fichier {EA Wizard}/code/CustomFunctions.mq4 et ajouter votre fonction à la fin de ce fichier.

Ensuite, votre fonction sera insérée dans le code de chaque EA généré par le programme, afin que vous puissiez l'utiliser.

 

 

Mais la fonction telle que vous l'avez décrite est probablement incorrecte, je ne suis pas sûr que vous puissiez appeler OrderSelect de cette manière.

Et il manque un ; à la fin du calcul des bénéfices.

 

La fonction correcte serait quelque chose comme :

 

double profit() {
  double profit = 0 ;
 
  for (int cc = OrdersTotal() - 1 ; cc >= 0 ; cc-) {
    if (!OrderSelect(cc, SELECT_BY_POS) ) continue ;
 
    profit = OrderProfit() + OrderSwap() + OrderCommission() ;
    pause ;
  }
 
  retour(profit) ;
}

 

 

 

 

Vous pouvez ensuite utiliser cette fonction dans les appels de fonctions personnalisées. Il suffit d'appeler la fonction par son nom, sans utiliser le nom du fichier.

 

Vous pouvez l'appeler dans des conditions à l'aide d'une fonction personnalisée, où la fonction serait : profit()

ou dans les actions pour stocker le bénéfice dans une variable, comme la commande d'action personnalisée : VariableProfit = profit() ;

 

Mais l'Assistant EA contient déjà des fonctions qui renvoient le profit ouvert ou fermé d'une transaction, elles renvoient la valeur du profit net (sans les swaps ou les commissions).

Ces fonctions se trouvent dans la zone de liste Contrôle de la stratégie.

 

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 #122761

Merci Mark,

       Je l'utiliserai la semaine prochaine. Je veux voir si mon indicateur personnalisé dans lequel j'ai placé la fonction fonctionnera vendredi. Plus tard...

0

Mike H.

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

Visiter le profil

il y a 10 ans #122771

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

Mark Fric

Administrateur, sq-ultimate, 2 réponses.

Visiter le profil

il y a 10 ans #122795

Je suis content que cela ait fonctionné 🙂 .

Marque
StratégieArchitecte de Quantités

0

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