Выпущена бета-версия MetaTrader 4 Build 529 с новым компилятором - страница 3

 

не могу понять как теперь подключить включаемые файлы ...

пишет такую лабуду can't open "E:\Terminal\MQL4\include\Commentary.mqh" include file 21 11

 
Barbarian:
какой таймер и какое зацикливание?

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


Кстати, OnChartEvent() тоже работает, в частности отрабатывается onMouseMove и onClick.

 
VOLDEMAR:

не могу понять как теперь подключить включаемые файлы ...

пишет такую лабуду can't open "E:\Terminal\MQL4\include\Commentary.mqh" include file 21 11


я заново создавал и компилил код - все норм.
 

После запуска эксперта в тестере закрывается окно терминала.

Причина в этой строке ( функция OnInit() ):

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

После запуска на графике эксперт выдаёт ошибку "ERROR HISTORY BARS<250".

Print(Bars);
Выдаёт 0. В окне 16387 баров.
 
В графических приложениях слетели шрифты типа Wingdings. Наверное, новый МТ4 стал юникодным... Но это так, пока сгоряча. Возможно, проблема в другом.
 

не могу понять почему данный код возвращает 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:

После запуска эксперта в тестере закрывается окно терминала.

Причина в этой строке ( функция OnInit() ):

После запуска на графике эксперт выдаёт ошибку "ERROR HISTORY BARS<250".

Выдаёт 0. В окне 16387 баров.

Да, эту ошибку исправим - завтра выйдет обновление.
 
VOLDEMAR:

не могу понять почему данный код возвращает 00 00 00 00

Попробуйте для начала в каждой строке, преобразующей число в строку, использовать более компактную конструкцию:

d = LeadZero(Day());

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

   return ("0" + DoubleToStr(value, 0));
}
 
Чтобы не затрагивались обновления других терминалов, просто удалите каталог C:\ProgramData\MetaQuotes\WebInstall после успешного обновления тестового терминала.
 
Scriptong:

Попробуйте для начала в каждой строке, преобразующей число в строку, использовать более компактную конструкцию:


Даже так

Comment(Day());

Рисуется 0 ...

Причина обращения: