Особенности языка mql4, тонкости и приёмы работы - страница 3

 

При запуске скрипта, индикатора, советника на вкладке Входные параметры отображаются имена переменных

extern int Период=10;


При наличии директивы  #property strict вместо имени переменной отображается комментарий

#property strict
extern int Период=10;  // Период отображения информации

   ИМХО, так более информативно

 
LRA:

При запуске скрипта, индикатора, советника на вкладке Входные параметры отображаются имена переменных


При наличии директивы  #property strict вместо имени переменной отображается комментарий

   ИМХО, так более информативно

Ну тогда специально для тех кто этого не знал. См. скрин, там всё понятно.


 

в МТ4 есть глюк: когда депо больше 99999, то на графике детализированного отчета пропадает одна цифра.

Если более 999999 - то пропадают две цифры. Всегда отображаются только 5 старших цифр.


 
LRA:

в МТ4 есть глюк: когда депо больше 99999, то на графике детализированного отчета пропадает одна цифра.

Если более 999999 - то пропадают две цифры. Всегда отображаются только 5 старших цифр.


Не забудьте сказать, что у Вас в настройках системы выставлен масштаб шрифтов 125%
 
void OnStart()
{
  Alert("Ордеров = ",OrdersHistoryTotal());
}   

Знаете ли Вы, что длину истории можно установить? А это влияет на время перебора!

  

Если установить Сегодня - будет всего меньше! В полночь история опустеет? Оптимально - Последние 3 дня.

К разработчикам: как программно установить глубину истории ?

 
В отличие от MQL5, в MQL4 статические массивы могут менять размер.
 
fxsaber:
В отличие от MQL5, в MQL4 статические массивы могут менять размер.

 

Ошибка в справке?

//+-------------------------------------------------------+
//| ArrayResize                                 PROBA.mq4 |
//+-------------------------------------------------------+
#property strict
void OnStart()
{
  int x[7];         int СтарыйРазмер=ArrayRange(x,0);
  ArrayResize(x,5); int МеньшийРазмер=ArrayRange(x,0);
  ArrayResize(x,9); int БольшийРазмер=ArrayRange(x,0);
  Alert("MQL4: СтарыйРазмер = ",СтарыйРазмер, "   МеньшийРазмер = ",МеньшийРазмер, "   БольшийРазмер = ",БольшийРазмер);
} 


//+-------------------------------------------------------+
//| ArrayResize                                 PROBA.mq5 |
//+-------------------------------------------------------+
#property strict
void OnStart()
{
  int x[7];         int СтарыйРазмер=ArrayRange(x,0);
  ArrayResize(x,5); int МеньшийРазмер=ArrayRange(x,0);
  ArrayResize(x,9); int БольшийРазмер=ArrayRange(x,0);
  Alert("MQL5: СтарыйРазмер = ",СтарыйРазмер, "   МеньшийРазмер = ",МеньшийРазмер, "   БольшийРазмер = ",БольшийРазмер);
}
 
 
LRA:

Ошибка в справке?

Ошибки нет, если считать, что в MQL4 нет статических массивов.
 
На тему static такой тонкий момент есть в обоих языках

Forum on trading, automated trading systems and testing trading strategies

mt4 build 1066

James Cater, 2017.04.28 16:53

I have found a regression error with initialisation order of static variables within functions

This was working in build 1065. I have reported this to the service desk

#property strict
#property indicator_chart_window

int TestBrokenStatic()
{
   static int stInt = 101;
   
   stInt++;
   return stInt;
}

int OnInit()
{
   static int result = TestBrokenStatic();
   
   Print("TestStatic Expected result 102   - Actual result=", result);
   result = TestBrokenStatic();
   Print("TestStatic Expected result 103   - Actual result=", result);
   
   return INIT_SUCCEEDED;
}

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
{
   return rates_total;
}


2017.04.28 15:42:30.941 TestStatic EURCHF,H1: TestStatic Expected result 103   - Actual result=102

2017.04.28 15:42:30.941 TestStatic EURCHF,H1: TestStatic Expected result 102   - Actual result=1


 
fxsaber:
На тему static такой тонкий момент есть в обоих языках

Ничего себе тонкий момент... В СД написали?