Ошибки, баги, вопросы - страница 3724

 
Anton #:

Ваш скрипт инициирует полную нагрузку ядра CPU на таком кастомном символе.

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

Новая версия платформы MetaTrader 5 build 5640: Улучшения темной темы и Markdown в MetaEditor

fxsaber, 2026.02.26 11:43

input datetime inOffsetTime = (D'2020.01.01' - D'2000.01.01'); // 20 лет

void OnStart()
{  
  MqlRates Rates[];
  const int Size = CopyRates(_Symbol, PERIOD_M1, 0, INT_MAX, Rates);    
  
  // https://www.mql5.com/ru/forum/1111/page3716#comment_59264186
  if (Size > 0)
  {
//    ArrayPrint(Rates, _Digits, NULL, 0, 5);
    
    const string Name = _Symbol + "c";
    
    CustomSymbolCreate(Name, NULL, _Symbol);
    ResetLastError();

    // Сдвинули на 20 лет вперед.
    for (int i = Size; (bool)i--;)
      Rates[i].time += inOffsetTime;
    
    if (CustomRatesReplace(Name, 0, LONG_MAX, Rates) == Size)    
      ChartOpen(Name, PERIOD_CURRENT);
    else
      Print("Error " + (string)_LastError);
  }
}



Зависание воспроизводится каждый раз после перезагрузки Терминала (b5677).

 
Jack_the_singer #:
При уже открытой позиции (по-крайней мере в неттинге) пропала возможность нормально выставить ордер, какой хочешь. Например, жмёшь кнопку выставления ордера, появляется Buy Limit ниже цены. Двигаешь его выше цены, он превращается в sell limit. А превратить его в buy stop - НИКАК! Кнопки на вашем нововведении, плашке этой внизу, неактивны. То есть ордер не выставить ВООБЩЕ
Это поправили во втором за сегодня обновлении, спасибо. Остальное, увы, пока осталось в испорченном по сравнению с тем, что было, виде.
 Хорошо бы: 
1)вернуть при выставлении ордера две опции buy и sell вместо четырёх совершенно лишних buy stop, buy limit, sell stop, sell limit. Система прекрасно выбирала это сама, не возлагая на юзера эту вдруг свалившуюся мороку. Это ж однозначный выбор, зависящий от того, выше ордер или ниже текущей цены, там незачем 4 варианта предлагать.
2)вернуть, чтобы при этом выборе не двигалась линия ордера, вот просто вообще, стояла бы как вкопанная, как и было раньше.
3)вернуть, чтобы при цене даже вне экрана - линия ордера всё же появлялась бы на экране, а не в неведомой дали.
4)вернуть, чтобы котировки можно было рассортировать один раз, и все вновь добавляемые счета наследовали бы этот выбор. А ещё лучше иметь возможность это сохранять в файл или ещё как-то, иначе при каждой переустановке приложения или очистке временных файлов результат этой возни пропадает.
 Спасибо!
 
В гугл плее в ответ на аналогичную жалобу вижу ответ разработчика: "Сервер Mt5 поддерживает 6 типов отложенных ордеров + рыночные ордера. Доступность ордеров зависит от брокера. В терминале все эти типы поддерживались изначально."
 Кстати, жалоб про это там много больше одной, людям стало хуже, а, судя по этому ответу-отписке, опять у разработчиков всё тип-топ, и проблемы индейцев шерифа не волнуют.
 Ну давайте чуть голову включим, а, ребят?
 Не о том речь, поддерживает десктоп или моб. приложение типы ордеров buy stop, buy limit, sell stop, sell limit. Ну вы что думаете, до того, как вы всё поломали, приложение их не поддерживало, что ли? Поддерживало и раньше! Но если у меня линия ордера ВЫШЕ линии текущей цены, он может быть ТОЛЬКО buy stop либо sell limit, и НЕ может быть sell stop и buy limit. Ну и наоборот. Так что достаточно выставить линию цены в нужное место и выбрать buy/sell, а эти stop и limit приложение может САМО определить, как и было раньше. Это НЕЗАЧЕМ выбирать из ЧЕТЫРЁХ вариантов, драматически усложняя трейдеру жизнь этим и ещё тем, что линия ордера от этого теперь сбивается. Не было вообще никаких сложностей, пока вы их не создали сами! Просят вернуть к нормальному виду - в ответ тупка, уж простите.
 Ну я не знаю, если такие элементарные рассуждения непонятны, ну обратитесь к той светлой голове, кто разработал всё это раньше. Он явно всё это сечёт, хотя не уверен, что вы это сможете понять, если уже раз 5 не понимаете меня, я уж и так, и эдак разъяснил, уже бы и дурак понял.
 
 Прошу прощения у уважаемого сообщества за много сообщений, но реально важные вещи для трейдеров, пользующихся моб. приложением, и судя по отзывам - не для меня одного.
 Ещё там же, в гугл плей, ответ разработчика: "Вы можете напрямую выбрать ордер, а можете как и раньше выбрать, например, Buy Stop и, сдвинув ценовой уровень, превратить его в Sell Stop."
 Нет! Не как раньше! Раньше НЕ НАДО БЫЛО выбирать Buy Stop (ломая башку каждый раз, его выбрать или Buy Limit), раньше можно было выбрать BUY! Ну поймите вы разницу, из двух простейших опций выбирать, или из 4-х менее простых, когда там счёт иногда на доли секунды идёт!
 Смотрите, как было. Двигаешь ордер, куда надо, выбирашь buy/sell. Всё! Элементарно. Пара движений пальцем, доля секунды. Ну чем было плохо? Да ничем! Прекрасно было! Интуитивно, как свет включить в ванной! Нет, надо было поломать, а теперь упрямиться!
 А теперь как? Допустим, пробуем также. Двигаем ордер, куда надо... дальше надо сидеть и думать, выбрать buy limit или buy stop. Если выбрал неверно, линия ордера улетит под линию цены, начинай сначала эти тыкания. Если выбрал верно, она всё равно сдвинется! То есть то, что ты выставил, псу под хвост! Ну, не чувствуете уже запах дебилизма? Остальные варианты стали столь же неудобные и неинтуитивные. Хорошо, что они вам нравятся, но это явно от того, что сами вы не торгуете: трейдеру стало крайне неудобно, об этом вам пишут в ряде отзывов на эти замечательные обновления!
 
MrBrooklin #:

Всем доброго вечера и хорошего настроения!

Уважаемые разработчики, в настоящий момент пользуюсь MT5 build 5660. Почему-то в тестере стратегий во вкладке Параметры при попытке ввести точку на русскоязычной раскладке клавиатуры, ничего не получается. Чтобы ввести точку в дробное число, например, 0.01 или 3.88 и т.п. нужно обязательно!!! перейти на англоязычную раскладку клавиатуры, что жутко не удобно для работы. Это, вообще, баг или нет?

Прошу обратить внимание на этот момент!

С уважением, Владимир.

Привет Владимир. А какую клавишу нажимаешь? Попробуй клавишу между «ю» и shift справа

 
Просьба сделать подписывание на обновление обсуждений в блог-записях. Спасибо.
 

Уважаемая команда MetaQuotes!

Я использую HTTP-запросы для взаимодействия с различными сайтами.
через функции 
WebRequest и низкоуровневые сокеты ( SocketCreate,  SocketTlsSend  и т.д.).

В последнее время я столкнулся с серьезной проблемой: современные сайты и провайдеры интернет-безопасности (такие как Cloudflare, PerimeterX и др.)
внедряют системы анализа трафика на основе 
TLS-отпечатков (JA3/JA4 fingerprints).
Эти системы позволяют идентифицировать клиента не только по User-Agent, но и по тому, как именно его библиотека устанавливает защищенное соединение
(набор предлагаемых шифров, порядок расширений и т.д.).

Суть проблемы

Я провел тестирование TLS-отпечатка, который генерирует терминал MetaTrader 5, с помощью сервиса  tls.browserleaks.com .
Результат (полученный как через 
WebRequest, так и через нативные TLS-сокеты) оказался уникальным и не соответствующим ни одному известному браузеру.
Вот полученные мной данные (JA3- и JA4-отпечатки):

{
  "ja3_hash": "9074e3d564dc087937581c4145a84882",
  "ja4": "t13d270900_4671029857cd_ec3737a46c99",
  "user_agent": "MetaTrader 5 Terminal/5.5660 (Windows NT 11.0.22631; x64)"
  // ... (полный ответ прилагается в файле)
}

Проблема в том, что этот отпечаток легко детектируется системами защиты как не-браузерный, что приводит к:

  1. Блокировке запросов или возврату ошибок 403/429.

  2. Невозможность автоматизации там, где официальное API недоступно или ограничено.

  3. Необходимости использовать внешние прокси-сервисы для подмены TLS-отпечатка, что усложняет инфраструктуру и увеличивает задержки.

Я понимаю, что терминал MetaTrader использует системный стек TLS (SChannel на Windows) в целях безопасности и стабильности.
Однако, в текущих реалиях, когда сайты активно борются с небраузерным трафиком, отсутствие контроля над TLS-отпечатком
становится критическим недостатком для разработчиков MQL- программ.

Предложение

Учитывая, что ваша платформа уже поддерживает сложные механизмы безопасности, такие как Extended Authentication с использованием SSL-сертификатов,
я уверен, что вы понимаете важность гибкой настройки сетевых параметров.
Я хотел бы предложить рассмотреть возможность добавления функций для управления TLS-отпечатком, например:

  1. Расширение параметров  WebRequest . Добавить необязательный параметр, позволяющий выбрать "профиль" TLS-соединения.

  2. Новые функции для сокетов. Ввести аналог  SocketTlsSetProfile(int socket, string profile)  для установки кастомного профиля.


Такое нововведение позволит легитимным программам на MQL5 выглядеть в глазах сайтов как обычный браузерный трафик,
что значительно упростит разработку и повысит стабильность автоматизации.

Файлы:
 
MrBrooklin #:

Всем доброго вечера и хорошего настроения!

Уважаемые разработчики, в настоящий момент пользуюсь MT5 build 5660. Почему-то в тестере стратегий во вкладке Параметры при попытке ввести точку на русскоязычной раскладке клавиатуры, ничего не получается. Чтобы ввести точку в дробное число, например, 0.01 или 3.88 и т.п. нужно обязательно!!! перейти на англоязычную раскладку клавиатуры, что жутко не удобно для работы. Это, вообще, баг или нет?

Прошу обратить внимание на этот момент!

С уважением, Владимир.

Если не хотите переключать раскладку на английскую, можете поменять настройки разделителя дробной части. 

Поменяйте запятую на точку.

В русскоязычной раскладке по умолчанию разделитель запятая.

 
Alexey Viktorov #:

Привет Владимир. А какую клавишу нажимаешь? Попробуй клавишу между «ю» и shift справа

Привет, Алексей! У меня хоть и достаточно почтенный возраст, но не до такой степени, чтобы не видеть и не нажать на эту клавишу с точкой. ))

С уважением, Владимир.

 
Aleksandr Slavskii #:

Если не хотите переключать раскладку на английскую, можете поменять настройки разделителя дробной части. 

Поменяйте запятую на точку.

В русскоязычной раскладке по умолчанию разделитель запятая.

Спасибо, Александр, за совет.

С уважением, Владимир.