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

 
nlp2311:

Merci de votre compréhension) :

Alors... Faites deux scripts - accrochez-les aux touches dont vous avez besoin - et ajoutez-y une variable globale du terminal - que votre Expert Advisor lira périodiquement - et changez le Barshift... :-)

Si vous le pouvez - vous pouvez faire la même chose via des objets graphiques ... par exemple lors de l'initialisation de l'EA, deux marques de texte sont affichées - et si l'une d'entre elles se perd (sélectionné l'une d'entre elles avec la souris pendant le travail de l'EA - appuyé sur la touche Del) - alors le compteur de votre Barsheift sera incriminé d'une manière ou d'une autre :-) - restauration de la marque effacée sur l'écran....

 
Aleksander:

Alors... Faites deux scripts - accrochez-les aux touches dont vous avez besoin - et ajoutez-y une variable globale du terminal - que votre Expert Advisor lira périodiquement - et changez le Barshift... :-)

Si vous le pouvez, vous pouvez faire de même avec des objets graphiques... par exemple lors de l'initialisation de l'EA, deux marques de texte sont affichées - et si l'une d'entre elles se perd (sélectionné l'une d'entre elles avec la souris pendant le travail de l'EA - appuyé sur la touche Del) - alors le compteur de votre Barsheift sera incriminé d'une manière ou d'une autre :-) - restauration de la marque effacée sur l'écran....


Conneries, alors chassez déjà la verticale sur le graphique, et par rapport à lui.
 
alsu:

Pourquoi MT ne veut pas de crochets, d'ailleurs ?

Protection. Sous-classement des œuvres.
 
Zhunko:
Protection. Sous-classement des œuvres.
then substitute WindowProc))
 

Bonjour à tous. S'il vous plaît, aidez-moi à trouver un bug dans le code, je suis épuisé - je ne peux rien faire.

Très probablement dans la dernière partie.

#define MagicNum  700283
//-----
ObjectSetText
extern double  Percent        = 0.8;
extern double  TakeProfit     = 55;
extern bool    UseMM          = true;
extern int     PercentMM      = 1;
extern double  Lots           = 0.1;
//+------------------------------------------------------------------+
double GetLots()
 { 
   if (UseMM)
    {
      double a;
      a = NormalizeDouble((PercentMM * AccountFreeMargin() / 100000), 2);      
      if(a > 49.99) return(49.99);
      else if(a < 0.01)
       {
         return(0);
       }
      else return(a);
    }    
   else return(Lots);
 }
//+------------------------------------------------------------------+ 
int CalculateCurrentOrders()
 {
   int orderT = OrdersTotal(), buys = 0, sells = 0;
   //----
   for(int i = 0; i < orderT; i++)
    {
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == false) break;
      if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNum)
       {
         if(OrderType() == OP_BUY)  buys++;
         if(OrderType() == OP_SELL) sells++;
       }
    }
   if(buys > 0) return(buys);
   else if(sells > 0) return(-sells);
   else return(0);
 }
//+------------------------------------------------------------------+  
int start()
 {
        //==============
   int  ticket;
   //-----
   if(CalculateCurrentOrders() == 0) 
    {
      if(AccountFreeMargin() < (1000 * GetLots())) 
         {
            return(0);  
         }
      if(High[1]<High[2] && Low[1]>Low[2] && (High[1]-Low[1])/(High[2]-Low[2])<Percent)
       {
         ticket=OrderSend(Symbol(), OP_BUYSTOP, GetLots(), High[1], 3, Low[2], High[1] + TakeProfit * Point, "iB", MagicNum, 0, Green);
         ticket=OrderSend(Symbol(), OP_SELLSTOP, GetLots(), Low[1], 3, High[2], Low[1] - TakeProfit * Point, "iB", MagicNum, 0, Red);
       }
    }
 }
 
SkinnerDE:

Bonjour à tous. Aidez-moi à trouver un bug dans le code, je suis épuisé - je ne peux rien faire.

Très probablement dans la dernière partie.


Quel est le problème, ça ne compile pas ou quelque chose comme ça ?
 
Au fait, vous avez oublié de multiplier les lots par l'effet de levier. Par conséquent, une variable de votre fonction GetLots() sera très probablement égale à 0 (sauf si vous avez un million sur votre compte).
 

{' - parenthèse gauche attendue C:\DOCUME~1\9226~1\0016~1\Forex\MACD_N~1.MQ4 (11, 2)

'{' - point-virgule attendu C:\DOCUME~1\9226~1\0016~1\Forex\MACD_N~1.MQ4 (11, 2)

voici

 
//+------------------------------------------------------------------+
double GetLots()
 { 
   if (UseMM) {
      double a;
      a = NormalizeDouble((PercentMM * AccountFreeMargin() / 100000), 2);      
      if(a > 49.99) return(49.99);
      if(a < 0.01)  return(0);
      return(a);
    }    
 return(Lots);
 }
Remplie de parenthèses et de yelsev pour une raison quelconque :-)
 
Rien n'a changé, mêmes erreurs(((
Raison: