Новая версия платформы MetaTrader 5 build 4230: больше встроенных приложений и расширение поддержки ONNX - страница 9

 
fxsaber #:
b4209, обнуление размера массива не уменьшает используемую память.

Строка для поискаOshibka 096.

Для обнуления с уменьшением такой вызов нужен:

ArrayResize(Ticks, 0, -1);
 
A100 #:

Для обнуления с уменьшением такой вызов нужен:

Дико долгое понижение размерности массива.

void OnStart()
{
  MqlTick Ticks[];
  
  {
    const ulong StartTime = GetMicrosecondCount();
    ArrayResize(Ticks, 5e7, -1);
    Print(GetMicrosecondCount() - StartTime); // 50
  }
  
  {
    const ulong StartTime = GetMicrosecondCount();
    ArrayResize(Ticks, 4e7, -1);
    Print(GetMicrosecondCount() - StartTime); // 1625808
  }
 
2024.03.06 04:56:43.051 Terminal        MetaTrader 5 x64 build 4210 started for MetaQuotes Software Corp.
2024.03.06 04:56:43.052 Terminal        Windows 7 Service Pack 1 build 7601, 8 x AMD FX-8350 Eight-Core, AVX, 11 / 31 Gb memory, 167 / 1794 Gb disk, admin, GMT+3

Обновление пришло, но по прежнему не исправили ошибку, описанную тут

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Бета-версия платформы MetaTrader 5 build 4210: больше встроенных приложений и расширение поддержки ONNX

Aleksey Vyazmikin, 2024.03.04 18:06

Билд 4209 

2024.03.02 06:08:17.952 Terminal        MetaTrader 5 x64 build 4209 started for MetaQuotes Software Corp.
2024.03.02 06:08:17.952 Terminal        Windows 7 Service Pack 1 build 7601, 8 x AMD FX-8350 Eight-Core, AVX, 19 / 31 Gb memory, 169 / 1794 Gb disk, admin, GMT+3
2024.03.04 19:59:36.863 LiveUpdate      check for release version
2024.03.04 19:59:37.018 LiveUpdate      you are using the latest version
2024.03.04 19:59:50.208 LiveUpdate      check for beta version

После обновлений последних перестала корректно работать стандартная библиотека " Научные графики", код для воспроизведения можно взять тут . Графики не отрисовываются на чарт.

В своих проектах получаю ошибку 4102.


 
Было бы здорово видеть значение LR Correlation в функции статистики тестирования TesterStatistics
 
fxsaber #:
Первая и вторая ошибки.

Хочу добавить еще один прикольный баг

Приложение создает 10 графических объектов на графике и в случае если трейдер нажимает клавишу Backspase

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

Когда это взрывает мозг?

Попытался обойти OBJ_EDIT для получения набранных символов.

OBJ_EDIT при наборе текста и нажатии  Backspase удаляется последний символ, все стандартно и логично, нет проблем.

А вот если мы собираем текст иным способом без  OBJ_EDIT, и на автомате по логике вещей жмем  Backspase, то получаем удаление последнего созданного графического объекта.

 
Vladimir Pastushak #:

Когда это взрывает мозг?

Попытался обойти OBJ_EDIT для получения набранных символов.

А вот если мы собираем текст иным способом без  OBJ_EDIT, и на автомате по логике вещей жмем  Backspase, то получаем удаление последнего созданного графического объекта.

Я вообще не понял о чём речь в этих предложениях.

 
Andrei Iakovlev #:

Я вообще не понял о чём речь в этих предложениях.

Запустите этот код в мт 4 и нажмите кнопку Backspase несколько раз

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnInit()
  {
   for(int i = 0; i < 10; i++)
      if(!ButtonCreate(0, "But" + (string)i, 0, 10 + 22 * i, 10 + 22 * i, 60, 20, CORNER_LEFT_UPPER, " i " + (string)(i + 1), "Arial"))
         return (0);
   return (0);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
  }
//+------------------------------------------------------------------+
bool ButtonCreate(const long              chart_ID = 0,             // ID графика
                  const string            name = "Button",          // имя кнопки
                  const int               sub_window = 0,           // номер подокна
                  const int               x = 0,                    // координата по оси X
                  const int               y = 0,                    // координата по оси Y
                  const int               width = 50,               // ширина кнопки
                  const int               height = 18,              // высота кнопки
                  const ENUM_BASE_CORNER  corner = CORNER_LEFT_UPPER, // угол графика для привязки
                  const string            text = "Button",          // текст
                  const string            font = "Arial",           // шрифт
                  const int               font_size = 10,           // размер шрифта
                  const color             clr = clrBlack,           // цвет текста
                  const color             back_clr = C'236,233,216', // цвет фона
                  const color             border_clr = clrNONE,     // цвет границы
                  const bool              state = false,            // нажата/отжата
                  const bool              back = false,             // на заднем плане
                  const bool              selection = false,        // выделить для перемещений
                  const bool              hidden = true,            // скрыт в списке объектов
                  const long              z_order = 0)              // приоритет на нажатие мышью
  {
//--- сбросим значение ошибки
   ResetLastError();
//--- создадим кнопку
   if(!ObjectCreate(chart_ID, name, OBJ_BUTTON, sub_window, 0, 0))
     {
      Print(__FUNCTION__,
            ": не удалось создать кнопку! Код ошибки = ", GetLastError());
      return(false);
     }
//--- установим координаты кнопки
   ObjectSetInteger(chart_ID, name, OBJPROP_XDISTANCE, x);
   ObjectSetInteger(chart_ID, name, OBJPROP_YDISTANCE, y);
//--- установим размер кнопки
   ObjectSetInteger(chart_ID, name, OBJPROP_XSIZE, width);
   ObjectSetInteger(chart_ID, name, OBJPROP_YSIZE, height);
//--- установим угол графика, относительно которого будут определяться координаты точки
   ObjectSetInteger(chart_ID, name, OBJPROP_CORNER, corner);
//--- установим текст
   ObjectSetString(chart_ID, name, OBJPROP_TEXT, text);
//--- установим шрифт текста
   ObjectSetString(chart_ID, name, OBJPROP_FONT, font);
//--- установим размер шрифта
   ObjectSetInteger(chart_ID, name, OBJPROP_FONTSIZE, font_size);
//--- установим цвет текста
   ObjectSetInteger(chart_ID, name, OBJPROP_COLOR, clr);
//--- установим цвет фона
   ObjectSetInteger(chart_ID, name, OBJPROP_BGCOLOR, back_clr);
//--- установим цвет границы
   ObjectSetInteger(chart_ID, name, OBJPROP_BORDER_COLOR, border_clr);
//--- отобразим на переднем (false) или заднем (true) плане
   ObjectSetInteger(chart_ID, name, OBJPROP_BACK, back);
//--- переведем кнопку в заданное состояние
   ObjectSetInteger(chart_ID, name, OBJPROP_STATE, state);
//--- включим (true) или отключим (false) режим перемещения кнопки мышью
   ObjectSetInteger(chart_ID, name, OBJPROP_SELECTABLE, selection);
   ObjectSetInteger(chart_ID, name, OBJPROP_SELECTED, selection);
//--- скроем (true) или отобразим (false) имя графического объекта в списке объектов
   ObjectSetInteger(chart_ID, name, OBJPROP_HIDDEN, hidden);
//--- установим приоритет на получение события нажатия мыши на графике
   ObjectSetInteger(chart_ID, name, OBJPROP_ZORDER, z_order);
//--- успешное выполнение
   return(true);
  }
//+------------------------------------------------------------------+
 

b4215, где пункт меню обновления на бету?


 
fxsaber #:

b4215, где пункт меню обновления на бету?


update menu disapeared, but clicking on "About" makes it check for update (as can be verified on the journal tab log)

 
rrocchi #:

update menu disapeared, but clicking on "About" makes it check for update (as can be verified on the journal tab log)

2024.03.09 06:50:49.030 LiveUpdate      check for release version

No beta.