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

 

MetaTrader 5 x64 build 3779 на Windows 11 build 22621.1778.

При открытии (двойном клике) новостей от поставщика "Claws and Horns" в открывающемся окне ничего не отображается, либо в окне мелькает надпись "Загрузка ..." после чего отображается пустое окно.

При этом содержимое новостей от других поставщиков у этого же брокера отображается полностью.

Данная проблема только на ПК, в мобильном терминале эти новости отображаются полноценно со всеми изображениями/графиками.

Связано ли это с проблемами на сервере (-ах) брокера ?

Подключаюсь в частности к: Network '******': authorized on RoboForex-Pro through Netherlands (ping: 152.12 ms, build 3320)

И заметил, что версия серверов брокера явно не последняя (у других брокеров видел версию 3550). Обновление серверной части брокера кем инициируется ? Не метаквотами ?

Или нужно юзерам "стучаться" в техподдержку брокера с просьбами об обновлении серверов ?

 

Здравствуйте. Хотелось бы иметь способ, а лучше - параметр, чтоб узнать часовой сдвиг брокера, в тч в нерабочее время.

Нужно для корректного отображения объектов на графике объектов которые берутся из базы данных.

Нужно для мт4 и мт5.

А так приходится использовать костыли которые могут еще и не сработать.

 
Andrei Sokolov #:

Здравствуйте. Хотелось бы иметь способ, а лучше - параметр, чтоб узнать часовой сдвиг брокера, в тч в нерабочее время.

Нужно для корректного отображения объектов на графике объектов которые берутся из базы данных.

Нужно для мт4 и мт5.

запрос напрямую в базу, или через php ?

 
Vitaly Muzichenko #:

запрос напрямую в базу, или через php ?

Использую dll написанную на C#, если это имеет какое-то значение.

 

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

Ошибки, баги, вопросы

fxsaber, 2023.06.01 22:20

Просьба высказаться по решению простой торговой задачи в MT5.


  • Есть советник без OnTrade-функций. Он должен просто сообщать тикет любого отложенного ордера в OnTick, следующим за его удалением.
  • При этом не должно быть громоздких вычислений. Это очень важный пункт, т.к. история удаленных ордеров может быть в сотни тысяч отложек.


Для тех, кто знает MT4, нужен аналог такого кода на MQL5.

void DeleteOrders()
{
  static int PrevTotal = OrdersHistoryTotal();
  
  const int Total = OrdersHistoryTotal();
  
  while (PrevTotal < Total)
    if (OrderSelect(PrevTotal++, SELECT_BY_POS, MODE_HISTORY) && (OrderType() > OP_SELL))
      Alert(OrderTicket());
}

Лобовое решение.

void DeleteOrders()
{
  static int PrevTotal = HistorySelect(0, INT_MAX) ? HistoryOrdersTotal() : 0;
  
  if (HistorySelect(0, INT_MAX))
  {
    const int Total = HistoryOrdersTotal();
    
    if (PrevTotal < Total)
    {
      ulong Array[][2];
      
      ArrayResize(Array, Total);
      
      for (int i = 0; i < Total; i++)
      {
        const ulong Ticket = HistoryOrderGetTicket(i);

        Array[i][0] = HistoryOrderGetInteger(Ticket, ORDER_TIME_DONE_MSC);
        Array[i][1] = Ticket;
      }
            
      ArraySort(Array);
      
      while (PrevTotal < Total)
      {
        const ulong Ticket = Array[PrevTotal++][1];
        
        if (HistoryOrderGetInteger(Ticket, ORDER_TYPE) > ORDER_TYPE_SELL)
          Alert(Ticket);
      }
    }    
  }
}

Выделил ресурсоемкий кусок кода.


Поэтому простейшая задача в MQL5 решается безумно дорого.

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

Ошибки, баги, вопросы

Vitaly Muzichenko, 2023.06.02 02:56

Задача: забрать последние 10 ордеров с истории в том порядке, в каком происходила торговля, а не рандомно, как получится.

Так было не всегда.

 
fxsaber #:

Лобовое решение.

Выделил ресурсоемкий кусок кода.


Поэтому простейшая задача в MQL5 решается безумно дорого.

Так было не всегда.

Я уже заметил, что в мт5 сломали сортировку отложек

 
Vitaly Muzichenko #:

Я уже заметил, что в мт5 сломали сортировку отложек

Все вопросы по этому поводу с лёгкостью можно решить, если MQ сделают возможность функцией HistorySelect() получать список в bd SQLite… В bd можно сортировать как душе угодно и выборку делать как пожелает мизинец левой ноги.

Но у MQ в приоритете матрицы векторы и искусственный с отрицательным IQ

 
Alexey Viktorov #:

Все вопросы по этому поводу с лёгкостью можно решить, если MQ сделают возможность функцией HistorySelect() получать список в bd SQLite… В bd можно сортировать как душе угодно и выборку делать как пожелает мизинец левой ноги.

Но у MQ в приоритете матрицы векторы и искусственный с отрицательным IQ

Это сортировать не нужно даже в мт4

Все торговые ордера и позиции нужно по-умолчанию вносить в историю по времени закрытия/удаления, именно на них и строятся торговые системы, что с позициями пока так и происходит - пока ещё не сломали.

А вот Лимит-ордера = сломали, дали им наинизший приоритет

Любая сортировка - это убийство

PS. Как говорит Ренат "выстрел себе в ногу". Но почему-то этот выстрел сами и организовали в последних билдах.
 
fxsaber #:

Поэтому простейшая задача в MQL5 решается безумно дорого.

А если не сортировать массив каждый раз, а держать его отсортированным, вставляя ордера в нужное место со сдвигом остального, и сдвигая при удалении ордера?

 
JRandomTrader #:

А если не сортировать массив каждый раз, а держать его отсортированным, вставляя ордера в нужное место со сдвигом остального, и сдвигая при удалении ордера?

Будет здорово, если поделитесь быстрым рабочим решением.