Новая версия платформы MetaTrader 5 build 3490: мобильная версия веб-терминала и новые методы матриц в MQL5 - страница 14

 
fxsaber #:

Как узнать основной источник потребления памяти? Сейчас по той же памяти предоставляемые данные сравнимы с TaskManager Windows. Раньше можно было четко локализовывать проблемы. Теперь - нет. Что-то будет меняться в этом направлении? Если предоставление этих данных тормозит, то предлагаю обновлять их раз в 5-10 секунд.

Так как в терминале память и хендлы используются в совместных кешах, их нельзя четко приписать к потокам.

 
MetaQuotes #:

Так как в терминале память и хендлы используются в совместных кешах, их нельзя четко приписать к потокам.

В билдах 3460-, однако, память показывалась и довольно адекватно. Понятно, что неадекватно на 100% и суммарно выходило больше, чем на самом деле. Но все же хоть что-то.

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

После обновления MT5 3491 (ActivTrades) появилась ошибка в Netting-аккаунте при использовании CTrade::PositionClose(), которая ведет к открытию новой "противоположной" позиции вместо закрытия старой позиции!

Исходная ситуация: LONG-позиция закрывается одновременно по StopLoss и по решению эксперта через  CTrade::PositionClose(symbol,deviation). Вместо возврата ошибки "позиция не найдена", открывается SELL-позиция. Эксперт работает в режиме Long-Only и не должен открывать Short-позиции в этом контексте.

CTrade.mqh line 440+

      //--- hedging? just send order

      if(IsHedging())

        {

         m_request.position=PositionGetInteger(POSITION_TICKET);

         return(OrderSend(m_request,m_result));

        }

      //--- order send
      if(!OrderSend(m_request,m_result))

Strategy-Tester Log:

2022.11.08 12:16:27.748 2022.11.04 16:26:26   >>> Closing LONG on short condition(ask:10831.53 bid:10830.71) pos #188

2022.11.08 12:16:27.749 2022.11.04 16:26:27   stop loss triggered #188 buy 1.4 UsaTec 10827.53 sl: 10828.03 tp: 11908.82 [#189 sell 1.4 UsaTec at 10828.03]

2022.11.08 12:16:27.749 2022.11.04 16:26:27   deal #189 sell 1.4 UsaTec at 10828.01 done (based on order #189)

2022.11.08 12:16:27.749 2022.11.04 16:26:27   deal performed [#189 sell 1.4 UsaTec at 10828.01]

2022.11.08 12:16:27.749 2022.11.04 16:26:27   order performed sell 1.4 at 10828.01 [#189 sell 1.4 UsaTec at 10828.03]

2022.11.08 12:16:27.750 2022.11.04 16:26:27   market sell 1.4 UsaTec (10827.96 / 10829.03)

2022.11.08 12:16:27.750 2022.11.04 16:26:27   deal #190 sell 1.4 UsaTec at 10827.96 done (based on order #190)

2022.11.08 12:16:27.750 2022.11.04 16:26:27   deal performed [#190 sell 1.4 UsaTec at 10827.96]

2022.11.08 12:16:27.750 2022.11.04 16:26:27   order performed sell 1.4 at 10827.96 [#190 sell 1.4 UsaTec at 10827.96]

2022.11.08 12:16:27.752 2022.11.04 16:26:27   CTrade::OrderSend: market sell 1.40 UsaTec [done at 10827.96]

2022.11.08 12:16:27.752 2022.11.04 16:26:27   Long position by UsaTec to be closed

2022.11.08 12:16:27.752 2022.11.04 16:26:27   CBasicBrain::onPositionClose: CLOSED ..

2022.11.08 12:16:27.752 2022.11.04 16:26:27   CBasicBrain::onPositionOpen: OPENED pos=190


P.S. предыдущая версия 3440 (Sep 2022) не проявляла этой ошибки при неизменных пареметрах эксперта. Играет ли роль Netting/Hedging тип не знаю - в обоих случаях работает OrderSend({..ORDER_TYPE_SELL..}). 
 

По прежнему жду комментариев от разработчиков

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

Новая версия платформы MetaTrader 5 build 3490: мобильная версия веб-терминала и новые методы матриц в MQL5

Aleksey Vyazmikin, 2022.11.05 11:05

Так как тема о вчерашнем обновлении терминала самоликвидировалась пока я писал сообщение, то спрошу тут.

Итак, в последнем обновлении появилась возможность выбирать устройства для работы с OpenCL в терминале, в частности разрешать их продавать в клауд и использовать для оптимизации на локальных компьютерах и в своей сети, в связи с этим вопросы:

1. Как программе на MQL5 принудительно указать, какое устройство использовать для вычислений?

2. Как привязать устройство к конкретному агенты? Ведь очевидно, что при оптимизации только один агент будет рационально использовать устройство, в противном случае будет большая очередь.

3. Как в клауде рассчитывается стоимость устройства - на скринах видел там на порядок другой оценочный коэффициент?

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

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

Какое там значение ставиться по умолчанию, зависит ли оно как то от архитектуры самой карты?

bool  Execute( 
   const int   kernel_index,           // индекс кернела 
   const int   work_dim,               // размерность пространства задач  
   const uint  &work_offset[],         // начальное смещение в пространстве задач  
   const uint  &work_size[],           // общее количество задач  
   const uint  &local_work_size[]      // количество задач в локальной группе  
   );