Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Marché fermé !
#1 - Je n'appelle jamais le Button Object par OnTick(), Start(), est-ce normal ?
#2- Puis-je appliquer au Button Object 'ANCHOR_RIGHT_UPPER' ?
#3 - Donc, j'ai toujours besoin d'aide pour mon problème #145, s'il vous plaît.
Merci !
#1 - I never call Button Object by OnTick(), Start(), so is it normal?
Oui
#2- Puis-je appliquer à l'objet bouton 'ANCHOR_RIGHT_UPPER' ?
Non, le point d'ancrage est fixé à ANCHOR_LEFT_UPPER
#3 - Donc, j'ai encore besoin d'aide pour mon problème #145, s'il vous plaît.
Oui, vous avez raison - EventSetMillisecondTimer(250)
Oui
Non, le point d'ancrage est fixé à ANCHOR_LEFT_UPPER
Oui, vous avez raison - EventSetMillisecondTimer(250)
#Profit Orders Counting - Open
J'essaie juste d'obtenir toutes les positions rentables pour calculer une seule valeur.
Cela me donne des valeurs séparées.
J'ai vraiment perdu la tête. J'ai essayé plusieurs méthodes, et j'ai fait beaucoup de recherches à ce sujet, mais je n'ai pas obtenu de bons résultats.
S'il vous plaît, aidez-moi, s'il est possible d'expliquer un peu plus sur le calcul des bénéfices, j'apprécie beaucoup.
J'espère que je recevrai bientôt une réponse satisfaisante.
{
double trueprofit = 0;
for ( int i = OrdersTotal() - 1; i >= 0; i-- )
{
if ( ! OrderSelect( i, SELECT_BY_POS, MODE_TRADES ) ) continue;
if ( closeothers == false && OrderSymbol() != Symbol() ) continue;
trueprofit = OrderProfit() + OrderSwap() + OrderCommission();
if ( trueprofit >= 0 )
{
Print( "Profit: ", trueprofit );
ObjectSetString ( 0, "all profit counting object", OBJPROP_TEXT, DoubleToString( trueprofit, 2 ) );
}
}
//---
return;
}
Merci d'avance.
Vous écrasez la valeur de trueprofit à chaque itération de la boucle, au lieu de l'augmenter.
Rappelez-vous ceci :
a été changé en ceci :
Vous devez être clair entre ce que vous voulez qu'il se passe à chaque itération de la boucle (chaque ordre) et ce que vous voulez qu'il se passe après la boucle (après avoir vérifié tous les ordres).
Merci pour votre réponse rapide.
Je suis peut-être trop fatigué, je suis désolé. ( Je n'arrive pas à comprendre ce que jepourrais faire. )
J'ai besoin de décrire un peu plus mon problème (dans quelle mesure je peux le faire).
J'ai donc 2 fonctions :
Enfin, je voudrais que cette fonction de calcul de profit ( mon dernier code de commentaire) puisse calculer les deux types d'ordres " OP_SELL et OP_BUY " juste rentables.
Merci d'avance.
Comment essayez-vous d'afficher toutes les valeurs rentables dans une étiquette ?
Voulez-vous dire toutes les valeurs additionnées de AcountProfit() ou pour chaque OrderProfit() séparé.
Si vous avez besoin de quelque chose comme ceci :
Veuillez consulter cet article :
https://www.mql5.com/en/articles/2723
Merci pour votre commentaire.
Désolé pour la confusion.
Non, je pense que j'ai besoin de quelque chose de différent.
Je vais essayer de clarifier mon problème.
J'ai 3 positions pour EURUSD. Deux d'entre elles sont rentables, l'une d'entre elles est une position de perte. J'ai donc juste besoin de calculer pour deux d'entre elles si elles sont rentables.
Par exemple, si chacune d'entre elles est à +1,00 (2 positions rentables = +2,00), je dois simplement obtenir la valeur de toutes les positions rentables.
Je viens de créer rapidement l'onglet ci-dessous pour m'aider à comprendre ce que j'essaie de dire. ( en bas de ce commentaire fichier image )
( L'anglais n'est pas ma langue maternelle - j'ai parfois du mal avec elle )
Tous les meilleurs.
// in your orderselect loop put
if(OrderProfit()>0)
{
totalprofit=totalprofit+OrderProfit();
}
#Comptage des ordres à profit - Fermé
{
totalprofit=totalprofit+OrderProfit();
}
J'ai résolu mon problème après votre excellent exemple de code.
C'est génial, merci beaucoup !
Vous écrasez la valeur de trueprofit à chaque itération de la boucle, au lieu de l'ajouter à la valeur.
Rappelez-vous ceci :
Vous devez être clair entre ce que vous voulez qu'il se passe à chaque itération de la boucle (chaque commande) et ce que vous voulez qu'il se passe après la boucle (après avoir vérifié toutes les commandes).
Juste après avoir terminé le script de code ci-dessous.
Une fois de plus je vérifie votre commentaire, alors je sais que vous l'avez expliqué à moi. Mais mon anglais empêcher de le comprendre.
Bonne chance à chacun d'entre vous.
{
double trueprofit = 0;
double totalprofit = 0;
for ( int i = OrdersTotal() - 1; i >= 0; i-- )
{
if ( ! OrderSelect( i, SELECT_BY_POS, MODE_TRADES ) ) continue;
if ( closeothers != true && OrderSymbol() != Symbol() ) continue;
trueprofit = OrderProfit() + OrderSwap() + OrderCommission();
if ( trueprofit >= 0 )
{
totalprofit += OrderProfit() + OrderSwap() + OrderCommission();
Print( "Profit: ", DoubleToString( totalprofit, 2 ) );
ObjectSetString ( 0, _Checkthisout_name_Label, OBJPROP_TEXT, "Total Profit: " + DoubleToString( totalprofit, 2 ) );
}
}
//---
return;
}
J'espère que ce script de code fonctionnera bien. Si quelque chose de mal dans le code ci-dessus, s'il vous plaît laissez-moi savoir.
Merci pour tout.