[Archiv!] Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Könnte nirgendwo ohne dich hingehen - 2. - Seite 320

 

Guten Abend zusammen!

Bitte sagen Sie mir, ich habe das Programm kompiliert, aber ich habe einen Fehler "'Programmende' - unausgewogene linke Klammer D:\Programmdateien\MetaTrader 4 - Alpari\experts\probota 4.mq4 (161, 4)".

Ich habe alles überprüft, alles ist korrekt. Worauf kann dieser Fehler zurückzuführen sein?

 
Boneshapper:

Guten Abend zusammen!

Bitte sagen Sie mir, ich habe das Programm kompiliert, aber ich habe einen Fehler "'Programmende' - unausgewogene linke Klammer D:\Programmdateien\MetaTrader 4 - Alpari\experts\probota 4.mq4 (161, 4)".

Ich habe alles überprüft, alles ist korrekt. Worauf kann dieser Fehler zurückzuführen sein?


Zum Beispiel, fehlende Klammern in einer Bedingung... Entweder kompilieren Sie nicht den EA selbst, sondern eines seiner Inludes...
 
Boneshapper:

Guten Abend zusammen!

Bitte sagen Sie mir, ich habe das Programm kompiliert, aber es erzeugt den Fehler "'\Ende des Programms' - unausgewogene linke Klammer D:\Programmdateien\MetaTrader 4 - Alpari\experts\probota 4.mq4 (161, 4)".

Ich habe alles überprüft, alles ist korrekt. Worauf kann dieser Fehler zurückzuführen sein?


Der Compiler hat Ihnen die Zeilennummer (161) in Klammern angegeben, wo eine Klammer fehlt oder überflüssig ist.

Doppelklicken Sie auf den Fehlertext und der Compiler zeigt Ihnen die Fehlerstelle an.

 

Hallo zusammen!

Liebe Berufstätige!!!

Bitte, ich verstehe nicht, was das Problem ist. Wenn ich versuche, einen schwebenden Auftrag zu erteilen, werden zwei ausgegeben.

while (Ticket2<0)

{

RefreshRates();

Ticket2=OrderSend(Symbol(),2,Lots_New*2,price,2,0,TP,"",MN); //1 Order steht zum Kauf an

Alert ("Fehler im Zyklus",GetLastError()); Alert ("TIK2= ",Ticket2;)

Schlaf(500);

}

Vielen Dank im Voraus an alle, die mir antworten.
 

kann jemand helfen, den Code so zu ändern, dass der Indikator nicht bei jedem Balken manuell aktualisiert werden muss

#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.:

Zum Beispiel, fehlende Klammern in einer Bedingung... Oder Sie kompilieren nicht den Expert Advisor selbst, sondern eines seiner Inludes...

Danke, ich werde es genauer überprüfen.
 
DhP:


Der Compiler teilt Ihnen die Zeilennummer (161) mit, in der die Klammer fehlt oder überzählig ist.

Doppelklicken Sie auf den Fehlertext und der Compiler wird Ihnen sagen, wo der Fehler liegt.


Danke für den Tipp!
 
Boneshapper:

Ich kaufe immer noch einen Haufen:( Bitte sagen Sie mir, was man noch tun kann.

Seltsam, der Code funktioniert. Vielleicht sollte man sie nicht dort aufstellen?
 
Roger:

Seltsam, der Code funktioniert. Vielleicht haben Sie es an die falsche Stelle gesetzt?
Es scheint korrekt zu sein. Ich habe es mehrmals überprüft. Ich habe den Alarmwert 1 nach der Transaktion angezeigt. Alle Tage sind normal, aber warum genau am 12.10.2010 so ein Haufen gekauft wird, verstehe ich nicht.
 
Roger:

Seltsam, der Code funktioniert. Vielleicht haben Sie es an die falsche Stelle gesetzt?

Wenn ich das schreibe, schreibe ich nicht Flag=0 vor die Bedingung, denn dann wird er jedes Mal vor einer Transaktion aktualisiert und ist immer 0. Wenn wir keinen Wert angeben, zum Beispiel nur int Flag, wird das Programm ihm 0 zuweisen, richtig?
Grund der Beschwerde: