MetaTrader 4 Build 529 beta liberado con nuevo compilador - página 3

 

no puedo averiguar cómo conectar los archivos de inclusión ahora ...

El siguiente mensaje de error no puede abrir "E:\Terminal\MQL4\include\Commentary.mqh" incluir archivo 21 11

 
Barbarian:
¿qué temporizador y qué bucle?

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
    );
   
  }


Por cierto, OnChartEvent() también funciona, en particular onMouseMove y onClick.

 
VOLDEMAR:

no puedo averiguar cómo conectar los archivos de inclusión ahora ...

El siguiente mensaje de error no puede abrir "E:\Terminal\MQL4\include\Commentary.mqh" incluir archivo 21 11


He vuelto a crear y a compilar el código y todo está bien.
 

Después de iniciar el Asesor Experto en el probador, la ventana del terminal se cierra.

La razón está en esta línea ( función OnInit() ):

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

Después de lanzar en el gráfico, el Asesor Experto genera el error"ERROR HISTORIA BARES<250".

Print(Bars);
Muestra 0. Hay 16387 barras en la ventana.
 
Fuentes como Wingdings han desaparecido en las aplicaciones gráficas. La nueva MT4 debe ser unicode... Pero eso es sólo en el calor del momento. Quizás el problema sea otro.
 

No puedo entender por qué este código devuelve 00 00 00 00

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:

Después de iniciar el Asesor Experto en el probador, la ventana del terminal se cierra.

La razón está en esta línea ( función OnInit() ):

Después de lanzar en el gráfico, el Asesor Experto genera el error"ERROR HISTORIA BARES<250".

Muestra 0. Hay 16387 barras en la ventana.

Sí, vamos a solucionar este error - habrá una actualización mañana.
 
VOLDEMAR:

No puedo entender por qué este código devuelve 00 00 00 00

Para empezar, intente utilizar una construcción más compacta en cada línea que convierta un número en una cadena:

d = LeadZero(Day());

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

   return ("0" + DoubleToStr(value, 0));
}
 
Para garantizar que las actualizaciones de otros terminales no se vean afectadas, simplemente borre el directorio C:\ProgramData\MetaQuotes\WebInstall después de actualizar con éxito un terminal de prueba.
 
Scriptong:

Intente utilizar una construcción más compacta en cada línea que convierta un número en una cadena para empezar:


Incluso así

Comment(Day());

Dibujar 0 ...