MetaTrader 4 Build 529 beta rilasciato con un nuovo compilatore - pagina 3

 

non riesco a capire come collegare i file include ora ...

I seguenti messaggi d'errore non riescono ad aprire "E:\Terminal\MQL4\include\Commentary.mqh" include file 21 11

 
Barbarian:
quale timer e quale 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 proposito, anche OnChartEvent() funziona, in particolare onMouseMove e onClick.

 
VOLDEMAR:

non riesco a capire come collegare i file include ora ...

Il seguente messaggio d'errore non può aprire "E:\Terminal\MQL4\include\Commentary.mqh" include file 21 11


Ho ricreato e compilato il codice - tutto va bene.
 

Dopo aver avviato l'Expert Advisor nel tester, la finestra del terminale si chiude.

La ragione è in questa linea (funzione OnInit() ):

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

Dopo il lancio sul grafico, l'Expert Advisor genera l'errore"ERROR HISTORY BARS<250".

Print(Bars);
Mostra 0. Ci sono 16387 barre nella finestra.
 
Font come Wingdings sono scomparsi nelle applicazioni grafiche. Il nuovo MT4 deve essere unicode... Ma questo è solo nella foga del momento. Forse il problema è qualcos'altro.
 

Non riesco a capire perché questo codice restituisce 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:

Dopo aver avviato l'Expert Advisor nel tester, la finestra del terminale si chiude.

La ragione è in questa linea (funzione OnInit() ):

Dopo il lancio sul grafico, l'Expert Advisor genera l'errore"ERROR HISTORY BARS<250".

Mostra 0. Ci sono 16387 barre nella finestra.

Sì, sistemeremo questo errore - ci sarà un aggiornamento domani.
 
VOLDEMAR:

Non riesco a capire perché questo codice restituisce 00 00 00 00

Provate a usare un costrutto più compatto in ogni linea che converte un numero in una stringa, per cominciare:

d = LeadZero(Day());

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

   return ("0" + DoubleToStr(value, 0));
}
 
Per assicurarti che gli aggiornamenti di altri terminali non siano influenzati, cancella semplicemente la directory C:\ProgramData\MetaQuotes\WebInstall dopo aver aggiornato con successo un terminale di prova.
 
Scriptong:

Prova a usare una costruzione più compatta in ogni linea che converte un numero in una stringa per iniziare:


Anche così

Comment(Day());

Disegnare 0 ...