Новая версия платформы MetaTrader 5 build 5430: Улучшенные графики на движке Blend2D - страница 45

 
Maxim Kuznetsov #:

..., лучше бы вообще ничего не трогали..

В редакторе скролл сломали ;-) при всём опыте и практике я даже не представляю как так смогли 

если открыта панель инструменты (ты которая обычно внизу), то перемещение курсора по тексту вниз не скроллит текст - курсор просто убегает в неизведанные дали ЗА ПАНЕЛЬ.

То есть функционально панель закрывает область редактирования.

Не воспроизводится. Билд 5512. На прошлом 5509 тоже не воспроизводится.


 

Баг репорт. Проблема заливки прямоугольников.

b5512

Поломалось тоже не так давно и опять ударило по моему индикатору (маркет профиль). Я конечно могу накостылить, но очевидно, что баг ошибку надо править в терминале тоже.

Проблема: Объект OBJ_RECTANGLE_LABEL перестал отрисовывать фоновую заливку ( OBJPROP_BGCOLOR ), если размер OBJPROP_XSIZE или OBJPROP_YSIZE является отрицательным числом.

Детали: В предыдущих билдах отрицательные значения размера использовались для изменения направления отрисовки объекта относительно точки привязки (Anchor Corner). В текущих билдах при отрицательном размере отрисовывается только рамка ( OBJPROP_COLOR ), а область заливки становится полностью прозрачной, независимо от настроек цвета. На приложенном скриншоте индикатора-теста видно, что левая сторона (отрицательная ширина) не имеет заливки, в отличие от правой.

Как воспроизвести:

  1. Создать OBJ_RECTANGLE_LABEL .

  2. Установить OBJPROP_CORNER в CORNER_RIGHT_UPPER .

  3. Установить OBJPROP_XSIZE в -100 .

  4. Установить OBJPROP_BGCOLOR в clrGreen .

  5. Результат: На графике виден пустой прямоугольник (только контур), заливка отсутствует. Если изменить -100 на 100 , заливка появляется мгновенно.

Индикатор для тестов:

//+------------------------------------------------------------------+
//|                                     MT5_Fill_Bug_Detector_Pro.mq5|
//|                                        Copyright 2026, Gemini    |
//+------------------------------------------------------------------+
#property copyright "Copyright 2026, Gemini"
#property indicator_chart_window
#property indicator_plots 0

input int AxisX      = 500; // Центр композиции (пиксели от правого края)
input int StartY     = 100; // Начальная высота (пиксели от верха)
input int Steps      = 15;  // Количество ярусов

string Prefix = "BugTree_";

int OnInit() { DrawTree(); return(INIT_SUCCEEDED); }

void OnDeinit(const int reason) { ObjectsDeleteAll(0, Prefix); }

int OnCalculate(const int rates_total, const int prev_calculated, const int begin, const double &price[]) 
{ 
   DrawTree(); 
   return(rates_total); 
}

void DrawTree()
{
   int stepY = 22;
   int branchH = 18;

   for(int i=0; i<Steps; i++)
   {
      int y = StartY + (i * stepY);
      int currentW = 40 + (i * 15);
      bool shouldFill = (i % 2 == 0); // Чередуем: один ярус с заливкой, один без      

      // СТОРОНА А (Width > 0) 
      string nameL = Prefix + "Side_A_" + (string)i;
      CreateRect(nameL, AxisX, y, currentW, branchH, clrGreen, shouldFill, "Positive Width (OK)");

      // СТОРОНА B (Width < 0) 
      string nameR = Prefix + "Side_B_" + (string)i;
      CreateRect(nameR, AxisX, y, -currentW, branchH, clrGreen, shouldFill, "Negative Width (BUG)");
   }
   ChartRedraw();
}

void CreateRect(string name, int x, int y, int w, int h, color clr, bool fill, string note)
{
   if(ObjectFind(0, name) < 0)
      ObjectCreate(0, name, OBJ_RECTANGLE_LABEL, 0, 0, 0);

   ObjectSetInteger(0, name, OBJPROP_CORNER, CORNER_RIGHT_UPPER);
   ObjectSetInteger(0, name, OBJPROP_XDISTANCE, x);
   ObjectSetInteger(0, name, OBJPROP_YDISTANCE, y);
   ObjectSetInteger(0, name, OBJPROP_XSIZE, w);
   ObjectSetInteger(0, name, OBJPROP_YSIZE, h);

   // Белая рамка всегда, чтобы видеть "фантомные" объекты слева
   ObjectSetInteger(0, name, OBJPROP_COLOR, clrWhite);
   ObjectSetInteger(0, name, OBJPROP_BGCOLOR, fill ? clr : clrNONE);
   ObjectSetInteger(0, name, OBJPROP_BORDER_TYPE, BORDER_FLAT);
   ObjectSetInteger(0, name, OBJPROP_BACK, false);
   ObjectSetString(0, name, OBJPROP_TOOLTIP, note);
}
 
hini #:

Например, использование моделей распознавания образов для поиска паттернов рыночных трендов,

а также обучение уникальных торговых моделей с использованием тиковых данных и собственных стратегий для совершения сделок — это совершенно другой подход к торговле.

К сожалению, именно такой ответ и ожидал.


Я полностью ЗА ускорение ONNX через CUDA. При этом текущая реальность такова.

  1. В Маркете упоминания ИИ/МО используются только для маркетинга. Лидеры продаж до сих пор примитив. И причина во многом из-за следующих пунктов.
  2. Тестер безумно медленный. ДОКАЗАНО, что ускорение может быть многократным. По теме скорости было только одно изменение - режим по пипсам.
  3. Тестер безумно расточителен к потреблению памяти. Это особенно выделяется на фоне огромного подорожания RAM/SSD. ДОКАЗАНО, что можно проводить оптимизацию с многократно меньшим количеством потребления памяти.
  4. CopyTicks* c MqlTick[] избыточен, т.к. для запроса в Терминале тиковых данных за год снова требуется очень много дорогой RAM. ДОКАЗАНО, что CopyTicks может потреблять памяти многократно меньше.

Как итог, безумное потребление памяти при очень медленной работе в нескольких сценариях. Которые ВЫНУЖДАЮТ создавать примитивные ТС. Например, почти невозможно создавать мультивалютные и мультиордерные стратегии.


Почти закон.

Создание ТС - это ислледовательский процесс. Исследование - это всегда вычисления. Вычисления - Оптимизация. Из-за скорости и конфигурации не можешь оптимизировать - забудь про сложные/интересные ТС.

 
Renat Fatkhullin #:

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

Поздравляю с выходом на новый рынок.

Теперь будем нагонять терминал и редактор.

Жаль, Тестера нет в этом списке.

 

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

Если закрыть терминал и после этого запустить его почти сразу (чаще всего делаю это через ME - F4), то он либо не запускается, либо запускается с паузой в 10-20 секунд.


Сценариев перегрузки много. Но самый простой - случайно закрыл терминал, а запустить его сразу обратно не получается.

 
Artyom Trishkin #:

Не воспроизводится. Билд 5512. На прошлом 5509 тоже не воспроизводится.

непосредственно после обновления до 5512 так получилось. Полную последовательность действий даже и не скажу, редактор ведь запускал не для поиска багов в нём . Быстро писал, компилировал, слегка матерился :-)

вылечилось перезапуском редактора и скрыть/показать "инструменты" (Ctrl-T)

 
fxsaber # :

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

Если закрыть терминал и после этого запустить его почти сразу (чаще всего делаю это через ME - F4), то он либо не запускается, либо запускается с паузой в 10-20 секунд.


Сценариев перегрузки много. Но самый простой - случайно закрыл терминал, а запустить его сразу обратно не получается.

Я уже сталкивался с подобными ситуациями.
 

Очень бы хотелось иметь возможность отключать заливку Advisors, Examples, Free Robots, Free Indicators и т.п. (и signals туда же) при обновлении MT5 во избежание бесполезной траты дискового пространства (а в боевой ВМ его может быть менее 10 ГБ на всё, включая систему) и ресурса SSD.

Ну и в навигаторе лишние папки глаза мозолят и повышают вероятность ошибки.

Все они если и нужны, то на одной машине, где ведётся разработка (и эта машина может быть вообще не торговой).

 
fxsaber #:
Если закрыть терминал и после этого запустить его почти сразу (чаще всего делаю это через ME - F4), то он либо не запускается, либо запускается с паузой в 10-20 секунд.
Это часто случается и с браузером, и с торрент-трекером, например. Они часто довольно долго выгружаются из памяти, освобождают ресурсы. До конца этого процесса новый экземпляр не может запуститься.