Новая версия платформы MetaTrader 4 build 1350

 

В четверг 14 октября 2021 года будет выпущено обновление MetaTrader 4. В нем исправлен ряд ошибок и повышена стабильность работы платформы.

Обновление будет доступно через систему Live Update.

 
MetaQuotes:

В четверг 14 октября 2021 года будет выпущено обновление MetaTrader 4. В нем исправлен ряд ошибок и повышена стабильность работы платформы.

Обновление будет доступно через систему Live Update.

а это исправили ?

при добавление  папки внутрь  папки терминала Еxperts\,

начиная с определенного числа таких внутренних папок,

они перестают отображаться в навигаторе...

 
MetaQuotes:

В четверг 14 октября 2021 года будет выпущено обновление MetaTrader 4. В нем исправлен ряд ошибок и повышена стабильность работы платформы.

Обновление будет доступно через систему Live Update.

А что там вообще за обновления, напишите, пожалуйста, список.

И если честно, стоит продолжить обновлять терминал в сторону совместимости с МТ5, т.к. это последний 32 битный образец.

 

да, да, весь список !


 

b1340

1. Отступы рабочей области графика сверху и снизу не равные.

Отступ сверху достаточно адекватный, чтобы использовать "стрелочные" индикаторы и видеть значки не за областью экрана. Снизу отступ почему то меньше

2. Включение тикового объёма не смещает график вверх на 13%, как это сделано, например в МТ5, что приводит к наложению элементов


Это анимация, жми:


 

Приветствую.


да, и опять все индикаторы полетели в тар тара ры, платные в особенности, загруженные с маркета


И что в этом случае делают ?

 
artdeflor #:

Приветствую.


да, и опять все индикаторы полетели в тар тара ры, платные в особенности, загруженные с маркета


И что в этом случае делают ?

стреляются !

 
artdeflor #:

Приветствую.


да, и опять все индикаторы полетели в тар тара ры, платные в особенности, загруженные с маркета


И что в этом случае делают ?

Denis Sartakov #:

стреляются !


.

 

I reported this bug last time, but I finally figured out what causes it, so I'm here to report it again.

Issue: For a channel, calling ObjectGetValueByTime with line_id=1 returns an incorrect value if you check the object type beforehand using ObjectGetInteger instead of ObjectType.

I hope you guys look into it because there's no way to call ObjectGetValueByTime on multi-line object in another chart if you need to check the object type.

Here's the code, I left a comment for you to alternate between the commented and uncommented lines to check for yourselves.

To test it, just create an Equidistant Channel, select it, then move it around. It will make a Comment displaying the price. You'll see that the bug displays a wrong value.

#property strict
#property indicator_chart_window

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit() {
  return (INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+

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);                
}
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam) {
  CheckBoundary();
}

void CheckBoundary() {
  for (int i = ObjectsTotal() - 1; i >= 0; i--) {
    const string name = ObjectName(i);
    
    //--- Alternate between these two lines to see the bug
    const long type   = BuggedType(name);
    //const int type    = WorkingType(name);
    
    //--- Uncomment any of these lines to break WorkingType
    //const string name1   = ObjectGetString(0, name, OBJPROP_NAME);
    //ObjectSetString(0, name, OBJPROP_TEXT, "Hello World");

    if (type == OBJ_CHANNEL) {
      const double price  = ObjectGetValueByTime(0, name, Time[0], 1);
      
      Comment("Price: ", DoubleToStr(price, Digits));
    }
  }
}

int WorkingType(const string obj_name) {
  return ObjectType(obj_name);
}

long BuggedType(const string obj_name, const long chart_id=0) {
  return ObjectGetInteger(chart_id, obj_name, OBJPROP_TYPE);
}

UPDATE

I was still experiencing issues with ObjectGetValueByTime even after discovering the issue and calling ObjectType directly.

After some debugging, I figured out that calling ObjectGetString or ObjectSetString, before calling ObjectGetValueByTime, will also cause the issue, even if you use ObjectType.

I updated my code above to include the lines that will break WorkingType. Uncomment any of them to reproduce the issue.

Documentation on MQL5: Object Functions / ObjectGetValueByTime
Documentation on MQL5: Object Functions / ObjectGetValueByTime
  • www.mql5.com
ObjectGetValueByTime - Object Functions - MQL5 Reference - Reference on algorithmic/automated trading language for MetaTrader 5
 
Alexey Viktorov #:

.

для таких делов нужен специальный револьвер:


 
MetaQuotes:

В четверг 14 октября 2021 года будет выпущено обновление MetaTrader 4. В нем исправлен ряд ошибок и повышена стабильность работы платформы.

Обновление будет доступно через систему Live Update.

Подскажите пожалуйста.

Когда будет исправлена ошибка с открытием редактора?