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

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Как узнать основной источник потребления памяти? Сейчас по той же памяти предоставляемые данные сравнимы с TaskManager Windows. Раньше можно было четко локализовывать проблемы. Теперь - нет. Что-то будет меняться в этом направлении? Если предоставление этих данных тормозит, то предлагаю обновлять их раз в 5-10 секунд.
Так как в терминале память и хендлы используются в совместных кешах, их нельзя четко приписать к потокам.
Так как в терминале память и хендлы используются в совместных кешах, их нельзя четко приписать к потокам.
В билдах 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));
}
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
По прежнему жду комментариев от разработчиков
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Новая версия платформы MetaTrader 5 build 3490: мобильная версия веб-терминала и новые методы матриц в MQL5
Aleksey Vyazmikin, 2022.11.05 11:05
Так как тема о вчерашнем обновлении терминала самоликвидировалась пока я писал сообщение, то спрошу тут.
Итак, в последнем обновлении появилась возможность выбирать устройства для работы с OpenCL в терминале, в частности разрешать их продавать в клауд и использовать для оптимизации на локальных компьютерах и в своей сети, в связи с этим вопросы:
1. Как программе на MQL5 принудительно указать, какое устройство использовать для вычислений?
2. Как привязать устройство к конкретному агенты? Ведь очевидно, что при оптимизации только один агент будет рационально использовать устройство, в противном случае будет большая очередь.
3. Как в клауде рассчитывается стоимость устройства - на скринах видел там на порядок другой оценочный коэффициент?
4. Как в клауде выбрать агентов с нужным мне устройством - ведь у карт разная архитектура, и возможно, что мне достаточно старого и дешёвого поколения для вычислений, так как в моих задачах прирост будет минимален.
И тут же спрошу, если при отправке кода на исполнение в OpenCL через стандартный класс указать число задач в локальной группе более 10 то вычисления не происходят - возвращается массив с нулями, при этом этот показатель влияет на точность расчетов, что как то не логично.
Какое там значение ставиться по умолчанию, зависит ли оно как то от архитектуры самой карты?