[Archive] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 2. - page 320

 

Bonsoir à tous !

Dites-moi, j'ai compilé le programme, mais j'ai obtenu une erreur "'\end_of_program' - parenthèse gauche non équilibrée D:\Program Files\MetaTrader 4 - Alpari\experts\probota 4.mq4 (161, 4)".

J'ai tout vérifié, tout est correct. À quoi peut être liée cette erreur ?

 
Boneshapper:

Bonsoir à tous !

Dites-moi, j'ai compilé le programme, mais j'ai obtenu une erreur "'\end_of_program' - parenthèse gauche non équilibrée D:\Program Files\MetaTrader 4 - Alpari\experts\probota 4.mq4 (161, 4)".

J'ai tout vérifié, tout est correct. À quoi peut être liée cette erreur ?


Par exemple, l'absence de parenthèses dans une condition quelconque... Soit compiler non pas l'EA elle-même, mais une de ses inludes...
 
Boneshapper:

Bonsoir à tous !

Dites-moi s'il vous plaît, j'ai compilé le programme, mais il génère l'erreur "'\end_of_program' - parenthèse gauche déséquilibrée D:\Program Files\MetaTrader 4 - Alpari\experts\probota 4.mq4 (161, 4)".

J'ai tout vérifié, tout est correct. À quoi peut être liée cette erreur ?


Le compilateur vous a donné le numéro de ligne (161) entre parenthèses, là où il y a une parenthèse manquante ou supplémentaire.

Double-cliquez sur le texte de l'erreur et le compilateur vous montrera l'emplacement de l'erreur.

 

Bonjour à tous !

Chers professionnels !!!

Ecoutez, s'il vous plaît, je ne comprends pas quel est le problème. Quand j'essaie de placer un ordre en attente, il en sort deux.

while (Ticket2<0)

{

RefreshRates() ;

Ticket2=OrderSend(Symbol(),2,Lots_New*2,price,2,0,TP,"",MN) ; //1 ordre est en attente Acheter

Alert ("Error in Cycle",GetLastError()) ; Alert ("TIK2= ",Ticket2 ;)

Dormir (500) ;

}

Merci d'avance à tous ceux qui répondent.
 

quelqu'un peut m'aider à modifier le code pour que l'indicateur ne doive pas être mis à jour manuellement à chaque barre.

#property indicator_buffers 6
#property indicator_color1 Black
#property indicator_color2 MediumBlue
#property indicator_color3 Yellow
#property indicator_color4 MediumBlue
#property indicator_color5 Green
#property indicator_color6 Red
#property indicator_separate_window

extern int RSI_Period = 40;         //8-25
extern int RSI_Price = 0;           //0-6
extern int Volatility_Band = 34;    //20-40
extern int RSI_Price_Line = 2;      
extern int RSI_Price_Type = 0;      //0-3
extern int Trade_Signal_Line = 7;   
extern int Trade_Signal_Type = 0;   //0-3
extern int NumberOfComputations =    2;
extern  int PeriodNorm=10;
extern int NumberOfBars         = 2000;

double RSIBuf[],UpZone[],MdZone[],DnZone[],MaBuf[],MbBuf[];

int init()
  {
   IndicatorShortName("Traders Dynamic Index SSA_normalize");
   SetIndexBuffer(0,RSIBuf);
   SetIndexBuffer(1,UpZone);
   SetIndexBuffer(2,MdZone);
   SetIndexBuffer(3,DnZone);
   SetIndexBuffer(4,MaBuf);
   SetIndexBuffer(5,MbBuf);
   
   SetIndexStyle(0,DRAW_NONE); 
   SetIndexStyle(1,DRAW_LINE); 
   SetIndexStyle(2,DRAW_LINE,0,2);
   SetIndexStyle(3,DRAW_LINE);
   SetIndexStyle(4,DRAW_LINE,0,2);
   SetIndexStyle(5,DRAW_LINE,0,2);
   
   SetIndexLabel(0,NULL); 
   SetIndexLabel(1,"VB High"); 
   SetIndexLabel(2,"Market Base Line"); 
   SetIndexLabel(3,"VB Low"); 
   SetIndexLabel(4,"RSI Price Line");
   SetIndexLabel(5,"Trade Signal Line");
 
   SetLevelValue(0,50);
   SetLevelValue(1,68);
   SetLevelValue(2,32);
   SetLevelStyle(STYLE_DOT,1,DimGray);
   
   return(0);
  }

int start()
  {
   double MA,RSI[];
   ArrayResize(RSI,Volatility_Band);
   int counted_bars=IndicatorCounted();
   int limit = Bars-counted_bars-1;
   for(int i=limit; i>=0; i--)
   {
      RSIBuf[i] = iCustom(Symbol(),Period(),"#_FullSSA_normalize",RSI_Period,NumberOfComputations,PeriodNorm,NumberOfBars,RSI_Price,0,i);
      MA = 0;
      for(int x=i; x<i+Volatility_Band; x++) {
         RSI[x-i] = RSIBuf[x];
         MA += RSIBuf[x]/Volatility_Band;
      }
      UpZone[i] = (MA + (1.6185 * StDev(RSI,Volatility_Band)));
      DnZone[i] = (MA - (1.6185 * StDev(RSI,Volatility_Band)));  
      MdZone[i] = ((UpZone[i] + DnZone[i])/2);
      }
   for (i=limit-1;i>=0;i--)  
      {
       MaBuf[i] = (iMAOnArray(RSIBuf,0,RSI_Price_Line,0,RSI_Price_Type,i));
       MbBuf[i] = (iMAOnArray(RSIBuf,0,Trade_Signal_Line,0,Trade_Signal_Type,i));   
      } 
//----
   return(0);
  }
  
double StDev(double& Data[], int Per)
{return(MathSqrt(Variance(Data,Per)));
}
double Variance(double& Data[], int Per)
{double sum, ssum;
  for (int i=0; i<Per; i++)
  {sum += Data[i];
   ssum += MathPow(Data[i],2);
  }
  return((ssum*Per - sum*sum)/(Per*(Per-1)));
}
//+------------------------------------------------------------------+
 
Roman.:

Par exemple, l'absence de parenthèses dans une condition quelconque... Ou bien vous ne compilez pas le Conseiller Expert lui-même, mais un de ses inludes...

Merci, je vais vérifier plus attentivement
 
DhP:


Le compilateur vous indiquera le numéro de ligne (161) où la parenthèse est manquante ou supplémentaire.

Double-cliquez sur le texte de l'erreur et le compilateur vous dira où se trouve l'erreur.


Merci pour le conseil !
 
Boneshapper:

J'en achète encore un paquet :( S'il vous plaît, dites-moi ce que l'on peut faire d'autre.

Bizarre, le code fonctionne. Peut-être ne pas le mettre là ?
 
Roger:

Bizarre, le code fonctionne. Peut-être que tu l'as mis au mauvais endroit ?
Il semble être correct. Je l'ai vérifié plusieurs fois. J'ai montré la valeur d'alerte 1 après la transaction. Tous les jours sont normaux, mais pourquoi exactement le 12.10.2010 il achète un tel paquet - je ne peux pas comprendre.
 
Roger:

Bizarre, le code fonctionne. Peut-être que tu l'as mis au mauvais endroit ?

Lorsque j'écris ceci, je n'écris pas Flag=0 devant la condition, car alors il sera mis à jour chaque fois avant une transaction et sera toujours 0. Si nous ne spécifions pas de valeur, par exemple juste int Flag, le programme lui attribuera 0, n'est-ce pas ?