Новая версия платформы MetaTrader 5 build 5120: улучшения и исправления - страница 53
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Так и не решена эта проблема в MQL5?
Функция задекларирована, как не меняющая объекты по указателям в массиве. В неё передается массив неконстантных указателей (что не должно ограничивать применимость функции). Почему функция не подходит по прототипу? Если бы было в обратную сторону (массив константных объектов передавался бы в другую функцию, меняющую объекты) - это была бы ошибка.
Пробовал разные явные касты прописать - жалоб компилятора становится только больше.
Так и не решена эта проблема в MQL5?
Функция задекларирована, как не меняющая объекты по указателям в массиве. В неё передается массив неконстантных указателей (что не должно ограничивать применимость функции). Почему функция не подходит по прототипу? Если бы было в обратную сторону (массив константных объектов передавался бы в другую функцию, меняющую объекты) - это была бы ошибка.
Пробовал разные явные касты прописать - жалоб компилятора становится только больше.
Подробнее здесь: https://www.mql5.com/en/forum/457825
Дополнение.
Возможно немного неправильно вас понял. Константные указатели объекты тоже можно, но почему-то только наряду с константным массивом
Дополнение 2.
Ваш код в MT4 компилируется. В MT5 раньше тоже так можно было, судя по всему (пост из кармана ниже). Ну, уже так нельзя, получается (только вместе с константным массивом)
Forum on trading, automated trading systems and testing trading strategies
Passing an array of object pointers
Vladislav Boyko, 2023.11.22 06:44
Так и не решена эта проблема в MQL5?
Функция задекларирована, как не меняющая объекты по указателям в массиве. В неё передается массив неконстантных указателей (что не должно ограничивать применимость функции). Почему функция не подходит по прототипу? Если бы было в обратную сторону (массив константных объектов передавался бы в другую функцию, меняющую объекты) - это была бы ошибка.
Пробовал разные явные касты прописать - жалоб компилятора становится только больше.
Потому что это ссылка! Это ограничение MQL, поскольку в качестве ссылки можно передавать только массив.
Константные указатели объекты тоже можно, но почему-то только наряду с константным массивом
Понятно. В C++ массивы передаются как ссылки, а в случае массива ссылок будет ссылка на ссылку. Поэтому там действительно нужно добавлять const к массиву (то есть второй ссылке), чтобы убедить компилятор, что вы не подмените указатели внутри функции на что-то константное, и тогда после возврата функции это можно будет редактировать, так как оно попадет в неконстантные внешние указатели. В MQL5 массив - это массив (а не двойной/тройной/итд указатель), но если он сам не константный, то получается, что функции разрешено в него записать другой константный указатель, и в результате - в вызывающем коде массив с неконстантными указателями станет содержать ссылку на константный (без явного каста).
Attention! Automatic translation makes the russian "pointer" into english "reference", which is incorrect and mixes these 2 different terms used in C++ and MQL5.
Attention! Automatic translation makes the russian "pointer" into english "reference", which is incorrect and mixes these 2 different terms used in C++ and MQL5.
Значит, нужно в русский текст к спорно-переводимым терминам в скобках добавлять английское соответствие правильному значению слова: "указатель" (pointer), "ссылка" (reference), и т.д.
Хм... гугл правильно переводит:
Здравсвуйте! в справке указано что после устанровки Metatrader5 на MacOs у меня должно быть две папки :
~/Library/Application Support/Metatrader 5
~/Library/Application Support/net.metaquotes.wine.metatrader5
но у себя я вижу. только эту папку :
~/Library/Application Support/net.metaquotes.wine.metatrader5при этом терминал работает, правда с большим количеством глюков(я их описывал выше пост #520) , но работает!
может отсюда и глюки моего терминала?
Добрый день! почему нельзя нормально закодить платформу под UNIX системы, чтоб он работал везде на любой платформе полноценно без всяких эмуляторов типа wine.
Также почему ордера в самом метатрейдере исполняются медленее с задержкой, нежели при коннекте через python, почему к метатрейдеру коннектится только python-3.12 и новее версия неконнектится, хотя новее гораздо шустрее.
Просим сделать нативную кроссплатформенность без эмуляторов, которые работают с задержкой