Бета-версия платформы MetaTrader 5 build 6030: Интеграция с ИИ, Passkey и удобная работа с кодом в MetaEditor - страница 2

 
Nikolai Semko #:
11 раз!!! О нет, это ужасный результат. Должно быть в несколько тысяч раз быстрее, особенно при частом использовании.
Напрасно Вы вынесли это отдельной функцией.  В моем классе и всей этой библиотеке не было ничего лишнего. Если кратко, то по сути все ChartGet функции были вынесены за скобки, а у Вас они внутри скобок. 

Каюсь 😊

Всё-же, хотелось чтобы штатные функции преобразования работали супер-быстрее, сейчас они работают со скоростью бега моей 89-летней бабки.

 
Vitaly Muzichenko #:

Каюсь 😊

Всё-же, хотелось чтобы штатные функции преобразования работали супер-быстрее, сейчас они работают со скоростью бега моей 89-летней бабки.

Займемся.
 
Renat Fatkhullin #:
Займемся.
Это будет очень круто, если вы пофиксите эту боль. Можете меня активно использовать, так как я плотно погружен в эту проблематику.  
При решении этой проблемы многие разработчики и пользователи сразу явно заметят, что многие индикаторы перестали лагать и стали очень отзывчивыми. 
 


во время активной загрузки данных (через таймер) происходит что-то странное, раньше этого не было. 
Я бы подумал что в моем коде проблемы, но я нарисовал три объекта - три вертикальные красные линии, привязанные ко времени и они во время загрузки исчезают сдвигаются в другое место, хотя сам чарт не сдвигается
демонстрация этого:



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

 
Nikolai Semko #:


во время активной загрузки данных (через таймер) происходит что-то странное, раньше этого не было. 
Я бы подумал что в моем коде проблемы, но я нарисовал три объекта - три вертикальные красные линии, привязанные ко времени и они во время загрузки исчезают сдвигаются в другое место, хотя сам чарт не сдвигается
демонстрация этого:
после полной загрузки данных все проблемы исчезают

У меня "что-то" постоянно дёргает CHARTEVENT_CHART_CHANGE

  if(id==CHARTEVENT_CHART_CHANGE) {
    //Print(id);
  }

Пока не разбирался, но ранее это не замечал - может смотрел плохо.

На соседнем чарте стоит индикатор постоянно получая данные онлайн с нескольких символов, как только его удаляю - CHARTEVENT_CHART_CHANGE больше не срабатывает, хотя отношения к нему не имеет, и к соседнему чарту тоже.

 
MetaQuotes:

В четверг 16 июля 2026 года будет выпущена обновленная версия платформы MetaTrader 5 в бета-режиме.

  1. MQL5: Добавлена функция SymbolInfoCommissions для получения данных о комиссиях торгового инструмента Каждый элемент массива commissions описывает отдельное правило начисления комиссии. Общие условия применения комиссии задаются полями структуры MqlCommission, а конкретные значения и диапазоны комиссии — массивом уровней tiers.
Ну наконец то! Прям праздник!
 
Aleksandr Slavskii #:
Ну наконец то! Прям праздник!

Там такой конструктор, Я покрутил его и решил дождаться пока появится энтузиаст и соберёт на нем готовое решение. Пока использую чтение комиссии с истории.

Как знаем, комиссий есть несколько видов, поэтому свеженаписанное решение нужно будет отлаживать не один месяц.

Вот некоторые, и это только часть

--

FH      0       01:54:13.632    eLSMC (EURUSD,M30)          [mode_range] [mode_charge] [mode_entry] [mode_direction] [mode_profit] [currency] [tiers]
HH      0       01:54:13.632    eLSMC (EURUSD,M30)      [0]            0             2            0                0             0 "USD"          ...
IF      0       01:55:00.433    eLSMC (EURUSD,M30)          [mode] [volume_type] [value] [min_value] [max_value] [range_from]    [range_to] [currency]
FJ      0       01:55:00.433    eLSMC (EURUSD,M30)      [0]      0             1 3.50000     0.00000     0.00000      0.00000 1000000.00000 "USD"  
QK      0       01:58:44.031    eLSMC (AAPL.NAS,M30)        [mode_range] [mode_charge] [mode_entry] [mode_direction] [mode_profit] [currency] [tiers]
OD      0       01:58:44.031    eLSMC (AAPL.NAS,M30)    [0]            0             2            0                0             0 "USD"          ...
FH      0       01:58:44.031    eLSMC (AAPL.NAS,M30)        [mode] [volume_type] [value] [min_value] [max_value] [range_from] [range_to] [currency]
GE      0       01:58:44.031    eLSMC (AAPL.NAS,M30)    [0]      6             1   0.020       0.020       0.000        0.000   1000.000 "USD"  

 
//--- перебираем все правила комиссии
   for(int i=0;i<total;i++)
     {
      //--- выводим основные параметры правила комиссии:
      //--- валюту, режим выбора диапазона и режим начисления
      PrintFormat("Rule %d: currency=%s, range mode=%d, charge mode=%d",
                  i,
                  commissions[i].currency,
                  commissions[i].mode_range,
                  commissions[i].mode_charge);
 
      //--- получаем количество уровней комиссии в текущем правиле
      int tiers_total=ArraySize(commissions[i].tiers);
 
      //--- перебираем уровни комиссии
      for(int j=0;j<tiers_total;j++)
        {
         //--- выводим параметры уровня комиссии:
         //--- способ расчета, значение, диапазон применения и валюту
         PrintFormat("  Tier %d: mode=%d, value=%G, range=%G - %G, currency=%s",
                     j,
                     commissions[i].tiers[j].mode,
                     commissions[i].tiers[j].value,
                     commissions[i].tiers[j].range_from,
                     commissions[i].tiers[j].range_to,
                     commissions[i].tiers[j].currency);
        }
     }
В примере Документации какая-то нелюбовь к штатной ArrayPrint.
Документация по MQL5: SymbolInfoCommissions / Получение рыночной информации
Документация по MQL5: SymbolInfoCommissions / Получение рыночной информации
  • www.mql5.com
Возвращает правила начисления комиссии для указанного торгового инструмента. Параметры name [in]  Имя символа. Если параметр равен NULL ...
 
Nikolai Semko #:
во время активной загрузки данных (через таймер) происходит что-то странное, раньше этого не было. 
Мигание объектов-линий при загрузке котировок уже несколько лет в МТ5
 
Alain Verleyen #:

Вызов кода для этой функции?

Нам нужен полноценный код, который компилируется и запускается. Я не буду гадать.


2026.07.17 10:55:47.678 Test (GBPUSD,H1)         1 Y 379  1.34496
2026.07.17 10:55:47.678 Test (GBPUSD,H1)         2 Y 379  1.34496
2026.07.17 10:55:47.679 Test (GBPUSD,H1)         3 Y 379  1.34490
2026.07.17 10:55:47.679 Test (GBPUSD,H1)         4 Y 379  1.34490

Возможно проблема в следующем

График высота 810 пикселей

График разность цен фин инструмента 1,35575 - 1,33295 = 0,0228     >   0.0228 / _Point 5 = 2280

То есть на один пиксель по координате Y идет 3 значения цены.

В теории ChartXYToTimePrice() на один и тот же пиксель должна возвращать одну и туже цену, но почему то цена скачет.

Файлы:
Test.mq5  3 kb