[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 130

 

Bonjour. Pouvez-vous m'aider ? Le code doit afficher une ligne au niveau du TakeProfit global. Je ne trouve pas l'erreur.

Merci d'avance.

void Drawline_Per_B (int Drawline_Per, double Balans, double Free, double Global_TakeProfit)  {
    Balans=AccountBalance();//Баланс счёта
    Free=AccountEquity();//Текущее количество денег в статье "Средства"
    double q;
    double SchBuyLs=SchBuyLs_b(); сумма лот для баев
    double SchSellLs=SchSellLs_b(); сумма лот для сейлов  
    double ad.QuotePoint   = MarketInfo ( Symbol () , MODE_POINT     );
    double ad.QuoteTick    = MarketInfo ( Symbol () , MODE_TICKSIZE  );
    double ad.NominalTick  = MarketInfo ( Symbol () , MODE_TICKVALUE );
    double ad.NominalPoint = ad.NominalTick  * ad.QuotePoint / ad.QuoteTick ; // Цена 1 пункта для стандартного лота в валюте депозита
    q =  NormalizeDouble(Bid + (Balans-Free+Balans/100*Global_TakeProfit)/ad.NominalPoint*(SchBuyLs-SchSellLs)*Point,Digits);
    Drawline_Per("%_LINE");
    ObjectSet( "%_LINE", OBJPROP_PRICE1, q);
  }
 
Je ne sais pas ce que vous comptez, mais le nombre de points est un nombre entier. Faites-en un type int et vous n'aurez pas besoin de normalisation.
q =  (Balans-Free+Balans/100*Global_TakeProfit)/PP*(SchBuyLs-SchSellLs);  //число пунктов до наступления условия  Global_TakeProfit
 

Merci pour le conseil.

J'ai trouvé les défauts, tout fonctionne.

 

Aidez-nous avec les fractales

maxF = NormalizeDouble (iFractals(NULL, 0, MODE_UPPER,1),5) ;
minF = NormalizeDouble (iFractals(NULL, 0, MODE_LOWER,1),5) ;

Pourquoi ne vois-je pas
maxF > Bid ou minF > Bid s'exécuter ?

Si <, il sera exécuté.

Sans NormalizeDouble, c'est la même chose. Y a-t-il quelque chose que je ne comprends pas dans les fractales ?

 
lia:

Aidez-nous avec les fractales.

maxF = NormalizeDouble (iFractals(NULL, 0, MODE_UPPER,1),5) ;
minF = NormalizeDouble (iFractals(NULL, 0, MODE_LOWER,1),5) ;

Pourquoi je ne peux pas voir l'exécution de
maxF > Enchère ou minF > Enchère ?

Si <, il est exécuté.

Sans NormalizeDouble, c'est la même chose. Je ne comprends pas quelque chose aux fractales ?


Voir cette page et la suivante - affichez vos conditions de manière similaire.
 

Pourriez-vous suggérer une fonction pour un EA dans MT4 qui renvoie le profit du dernier ordre fermé, ou si le dernier ordre a été fermé avec un profit ou une perte ?

PS Je n'ai pas trouvé une telle fonction dans Kim.

 
Sancho77:

Pouvez-vous suggérer une fonction qui renvoie le profit du dernier ordre fermé, ou si le dernier ordre a été fermé à profit ou à perte ?

PS Kim n'a pas trouvé une telle fonction.

Igor Kim a de telles fonctions. Mais ses fonctions sont un peu exagérées pour la polyvalence. Je peux rapidement créer une telle fonction pour vous ici.
Question : Quel est le bénéfice ? En points ou dans la monnaie de dépôt?
 
artmedia70:
Igor Kim possède de telles caractéristiques. Cependant, ses fonctions sont un peu excessives pour la polyvalence. Je peux rapidement créer une telle fonction pour vous ici.
Question : Quel est le bénéfice ? En points ou dans la monnaie de dépôt ?
Je vous serais reconnaissant de me le dire ! Peu importe que le bénéfice soit en points ou en devises, le fait important est qu'une transaction a été conclue avec un bénéfice ou une perte. En ce qui me concerne, cela ne fait aucune différence que ce soit en devises ou en pips.
 
Sancho77:
Je vous serais reconnaissant si vous pouviez l'écrire ! Peu importe que le bénéfice soit en points ou en devises, l'important est de savoir si la transaction a été conclue avec un bénéfice ou une perte. À mon avis, cela ne fait aucune différence en termes de devises ou de pips.
//+----------------------------------------------------------------------------+
bool LossLastPose(string sy, int op, int mn) {
   datetime t;
   int      i, j;
   for (i=0; i<OrdersHistoryTotal(); i++) {
      if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) {
         if (OrderType()!=op)          continue;
         if (OrderSymbol()!=sy)        continue;
         if (OrderMagicNumber()!=mn)   continue;
         if (OrderCloseTime()>t) {
            t=OrderCloseTime();
            j=i;
            }
         }
      }
   if (OrderSelect(j,SELECT_BY_POS,MODE_HISTORY)) 
      if (OrderProfit()<0) return(true);
   return(false);
}
//+----------------------------------------------------------------------------+

On appelle ça comme ça :

Pour vérifier la dernière position d'achat fermée sur le symbole actuel. La fonction retournera vrai si elle est à perte et faux si elle est à profit...

if (LossLastPose(Symbol(), OP_BUY, Magic)) {код, если последняя позиция закрылась с убытком}
else {Код, если последняя позиция закрылась с прибылью}

La variable Magic est une magie de l'EA, elle est écrite dans les variables globales de l'EA.

 
artmedia70:

On appelle ça comme ça :

Pour vérifier la dernière position d'achat fermée sur le symbole actuel. La fonction retournera vrai si elle est à perte et faux si elle est à profit...

La variable Magic est la magie de l'EA, écrite dans les variables globales de l'EA.



Merci beaucoup !
Raison: