MetaTrader 4 Build 529 beta lançado com novo compilador - página 3

 

não consegue descobrir como conectar os arquivos de inclusão agora ...

A seguinte mensagem de erro não pode abrir "E:\Terminal\MQL4\include}Commentary.mqh" inclui o arquivo 21 11

 
Barbarian:
que temporizador e que looping?

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


A propósito, OnChartEvent() também funciona, em particular onMouseMove e onClick.

 
VOLDEMAR:

não consegue descobrir como conectar os arquivos de inclusão agora ...

A seguinte mensagem de erro não pode abrir "E:\Terminal\MQL4\include}Commentary.mqh" inclui o arquivo 21 11


Eu recriei e compilei o código - tudo está bem.
 

Após iniciar o Expert Advisor no testador, a janela do terminal se fecha.

A razão está nesta linha ( função OnInit() ):

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

Após o lançamento no gráfico, o Expert Advisor gera o erro"ERROR HISTORY BARS<250".

Print(Bars);
Mostra 0. Há 16387 barras na janela.
 
Fontes como Wingdings desapareceram em aplicações gráficas. O novo MT4 deve ser unicode... Mas isso é só no calor do momento. Talvez o problema seja algo mais.
 

Não consigo entender porque este código retorna 00 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:

Após iniciar o Expert Advisor no testador, a janela do terminal se fecha.

A razão está nesta linha ( função OnInit() ):

Após o lançamento no gráfico, o Expert Advisor gera o erro"ERROR HISTORY BARS<250".

Mostra 0. Há 16387 barras na janela.

Sim, vamos corrigir este erro - amanhã haverá uma atualização.
 
VOLDEMAR:

Não consigo entender porque este código retorna 00 00 00 00

Tente usar uma construção mais compacta em cada linha que converte um número em um fio para começar:

d = LeadZero(Day());

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

   return ("0" + DoubleToStr(value, 0));
}
 
Para garantir que as atualizações de outros terminais não sejam afetadas, basta apagar o diretório C:\ProgramData\MetaQuotes\WebInstalar após atualizar com sucesso um terminal de teste.
 
Scriptong:

Tente usar uma construção mais compacta em cada linha que converte um número em um fio para começar:


Mesmo assim

Comment(Day());

Sorteio 0 ...