MetaTrader 4 Build 529 beta mit neuem Compiler veröffentlicht - Seite 3

 

Ich kann nicht herausfinden, wie ich die Include-Dateien jetzt verbinden kann ...

Die folgende Fehlermeldung kann die Include-Datei "E:\Terminal\MQL4\include\Kommentar.mqh" nicht öffnen 21 11

 
Barbarian:
Welche Zeitschaltuhr und welche Schleife?

int OnInit()
  {
//--- create timer
   EventSetMillisecondTimer(500);
      
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- destroy timer
   EventKillTimer();
      
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
    static int Count = 1;
    RefreshRates();
    Comment("\n\n","Ask = ", Ask, "\nBid = ", Bid, "\nCount = ", Count);
    Count++;
  }
//+------------------------------------------------------------------+
//| Trade function                                                   |
//+------------------------------------------------------------------+
void OnTrade()
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Tester function                                                  |
//+------------------------------------------------------------------+
double OnTester()
  {
//---
   double ret=0.0;
//---

//---
   return(ret);
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
    Print(
      "id = ", id,
      ";   lparam = ", lparam,
      ";   dparam = ", dparam,
      ";   sparam = ", sparam
    );
   
  }


Übrigens, OnChartEvent() funktioniert auch, insbesondere onMouseMove und onClick.

 
VOLDEMAR:

Ich kann nicht herausfinden, wie ich die Include-Dateien jetzt verbinden kann ...

Die folgende Fehlermeldung kann die Include-Datei "E:\Terminal\MQL4\include\Kommentar.mqh" nicht öffnen 21 11


Ich habe den Code neu erstellt und kompiliert - alles ist in Ordnung.
 

Nach dem Start des Expert Advisors im Testgerät wird das Terminalfenster geschlossen.

Der Grund liegt in dieser Zeile ( Funktion OnInit() ):

if(Bars<250) {Alert("ERROR HISTORY BARS<250"); return(INIT_FAILED);}

Nach dem Start des Charts erzeugt der Expert Advisor den Fehler"ERROR HISTORY BARS<250".

Print(Bars);
Sie zeigt 0. Es gibt 16387 Balken im Fenster.
 
Schriftarten wie Wingdings sind in grafischen Anwendungen verschwunden. Der neue MT4 muss unicode sein... Aber das ist nur im Eifer des Gefechts. Vielleicht liegt das Problem woanders.
 

Ich verstehe nicht, warum dieser Code 00 00 00 00 zurückgibt.

string TimeS(string txt)
{
string d,h,m,s,n; 
d=DoubleToStr(Day()    ,0); if (StringLen(d)<2) d="0"+d;
h=DoubleToStr(Hour()   ,0); if (StringLen(h)<2) h="0"+h;
m=DoubleToStr(Minute() ,0); if (StringLen(m)<2) m="0"+m;
s=DoubleToStr(Seconds(),0); if (StringLen(s)<2) s="0"+s;
if (StringLen(txt)==6)
n =txt+d+" "+h+"."+m+"."+s+" ";
else
n =txt+d+" "+h+":"+m+":"+s+" ";
return(n);
}
 
nasdaq:

Nach dem Start des Expert Advisors im Tester wird das Terminalfenster geschlossen.

Der Grund liegt in dieser Zeile ( Funktion OnInit() ):

Nach dem Start des Charts erzeugt der Expert Advisor den Fehler"ERROR HISTORY BARS<250".

Sie zeigt 0. Es gibt 16387 Balken im Fenster.

Ja, wir werden diesen Fehler beheben - es wird morgen ein Update geben.
 
VOLDEMAR:

Ich kann nicht verstehen, warum dieser Code 00 00 00 00 zurückgibt.

Versuchen Sie zunächst, in jeder Zeile ein kompakteres Konstrukt zu verwenden, das eine Zahl in eine Zeichenkette umwandelt:

d = LeadZero(Day());

string LeadZero(int value)
{
   if (value > 9)
      return (DoubleToStr(value, 0));

   return ("0" + DoubleToStr(value, 0));
}
 
Um sicherzustellen, dass Aktualisierungen auf anderen Terminals nicht beeinträchtigt werden, löschen Sie einfach das Verzeichnis C:\ProgramData\MetaQuotes\WebInstall, nachdem Sie ein Testterminal erfolgreich aktualisiert haben.
 
Scriptong:

Versuchen Sie, in jeder Zeile eine kompaktere Konstruktion zu verwenden, die zunächst eine Zahl in eine Zeichenkette umwandelt:


Auch so

Comment(Day());

Unentschieden 0 ...