Новая версия платформы MetaTrader 5 build 4040: Улучшения и исправления - страница 6

 

Исправьте пож-ста функцию MQL5InfoInteger() в СБ %MQL5\Include\Indicators\Series.mqh:

//+------------------------------------------------------------------+
//| Checks data by specified symbol's timeframe and                  |
//| downloads it from server, if necessary                           |
//+------------------------------------------------------------------+
bool CSeries::CheckLoadHistory(const int size)
  {
//--- don't ask for load of its own data if it is an indicator
   if(MQL5InfoInteger(MQL5_PROGRAM_TYPE)==PROGRAM_INDICATOR && Period()==m_period && Symbol()==m_symbol)
      return(true);
   if(size>TerminalInfoInteger(TERMINAL_MAXBARS))
     {
      //--- Definitely won't have such amount of data
      printf(__FUNCTION__+": requested too much data (%d)",size);
      return(false);
     }
   m_first_date=0;
   if(CheckTerminalHistory(size))
      return(true);
   if(CheckServerHistory(size))
      return(true);
//--- failed
   return(false);
  }

По идее лучше так:

//+------------------------------------------------------------------+
//| Checks data by specified symbol's timeframe and                  |
//| downloads it from server, if necessary                           |
//+------------------------------------------------------------------+
bool CSeries::CheckLoadHistory(const int size)
  {
//--- don't ask for load of its own data if it is an indicator
   if(MQLInfoInteger(MQL_PROGRAM_TYPE)==PROGRAM_INDICATOR && Period()==m_period && Symbol()==m_symbol)
      return(true);
   if(size>TerminalInfoInteger(TERMINAL_MAXBARS))
     {
      //--- Definitely won't have such amount of data
      printf(__FUNCTION__+": requested too much data (%d)",size);
      return(false);
     }
   m_first_date=0;
   if(CheckTerminalHistory(size))
      return(true);
   if(CheckServerHistory(size))
      return(true);
//--- failed
   return(false);
  }
 
Скажите пожалуйста, стоит ли ждать каки-то фиксов для МТ5 на MacOS, массовая проблема с работой МТ5. Не подключается к торговому счету, вылетает из приложения через несколько минут после использования... Пробовал всевозможные способы фикса, ничего не выходит, заходил с разных макбуков, проблема одна и та же
 
Denis Kirichenko #:

Исправьте пож-ста функцию MQL5InfoInteger() в СБ %MQL5\Include\Indicators\Series.mqh:

И здесь.

bool CAppDialog::CreateCommon(const long chart,const string name,const int subwin)
 
avoronkin #:
Скажите пожалуйста, стоит ли ждать каки-то фиксов для МТ5 на MacOS, массовая проблема с работой МТ5. Не подключается к торговому счету, вылетает из приложения через несколько минут после использования... Пробовал всевозможные способы фикса, ничего не выходит, заходил с разных макбуков, проблема одна и та же

Сообщите максимально подробные детали, пожалуйста:

  • точные версии операционки
  • процессор и объем памяти
  • стартовые строчки терминала с указанием версий и конфигов
  • журналы терминала перед падением (если есть)
  • при каких действиях происходят падения
  • влияют ли установленные кастомные индикаторы или эксперты
  • при установке программы соглашались ли на установку дополнительных компонентов Mono и Gecko? без них будут падения на отображении HTML контента в Маркете


 
avoronkin #:
Скажите пожалуйста, стоит ли ждать каки-то фиксов для МТ5 на MacOS, массовая проблема с работой МТ5. Не подключается к торговому счету, вылетает из приложения через несколько минут после использования... Пробовал всевозможные способы фикса, ничего не выходит, заходил с разных макбуков, проблема одна и та же

Вот ответ на ваш пост в другой ветке - пост

Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2023.11.01
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы
 
Добрый день, господа, я использую Google Translate, чтобы опубликовать это. Начиная с версии MT5 4053, я наблюдаю странное поведение, которое заставляет меня думать, что могут быть две ошибки.

1. Проблема связана с HistoryDealGetInteger: при использовании с параметром ENUM_DEAL_PROPERTY_INTEGER со значением DEAL_ORDER он возвращает 0, хотя я могу проверить, что и сделка, и ордер (оба с идентификатором 2 при бэктесте) существуют.
2. При открытии ордера и закрытии позиции я получаю DEAL_ENTRY_IN для обоих.

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

Поэтому я добавлю сюда 3 файла.
Log_Build_4040 — лог работы советника на версии 4040.
«Log_Build_4055» — это журнал запуска советника версии 4055, который показывает странное поведение.
«MetaTrader BugReport Build 4053» — это файл советника. Я постарался отрезать как можно больше шаблонного текста, чтобы добраться до сути этой предполагаемой проблемы.

Большое спасибо за вашу помощь! Хорошего дня. Продолжайте хорошую работу.


 
b4055, сломали HistoryDealGetInteger в Тестере.
void OnDeinit( const int )
{
  if (HistorySelect(0, INT_MAX))
//  if (HistoryDealSelect(1)) // OK
  {
    Print(HistoryDealGetInteger(1, DEAL_TICKET)); // 0
    Print(_LastError); // 4755
  }
}
Строка для поискаOshibka 079.
 
Это ограничение разве верно в данном случае?
class A {};

struct B
{
  A* Pointer;
};

void OnStart()
{
  const string FileName = "Tmp.bin";
  B a[1];

  FileSave(FileName, a); // 'a' - structures or classes containing objects are not allowed
}
 

Последняя релизная MT5. При попытке передать явный int в ChartGetString компилятор обругает


Хотя в документации указано, что

int   prop_id            // идентификатор свойства 

Баг или фича? Не проверял, но похоже, что в других аналогичных функциях аналогично.

 
traveller00 #:

Баг или фича? Не проверял, но похоже, что в других аналогичных функциях аналогично.

ChartGetString(0, (ENUM_CHART_PROPERTY_STRING)0);
Логично было бы выдывать warning.