Ошибки, баги, вопросы - страница 2654
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Кто-нибудь может просветить по такому вопросу:
имеем dll написанную на C# ,но скомпилированную:
- для МТ5 обычный проект C# - Net Framework dll - 64 бит
- для МТ4 обычный проект C# - Net Framework dll - 32 бит, но обернутый в managed C вызовы
исходники dll на 100% идентичные , естественно за исключением обертки для МТ4 ,
ОС Win10-64
ну и сам то вопрос, почему МТ4 совершает вызовы функций ровно в 4 раза быстрее , цифры примерно такие 100 000 вызовов dll на МТ4 7,5 сек , на МТ5 30 сек
Кто-нибудь может просветить по такому вопросу:
имеем dll написанную на C# ,но скомпилированную:
- для МТ5 обычный проект C# - Net Framework dll - 64 бит
- для МТ4 обычный проект C# - Net Framework dll - 32 бит, но обернутый в managed C вызовы
исходники dll на 100% идентичные , естественно за исключением обертки для МТ4 ,
ОС Win10-64
ну и сам то вопрос, почему МТ4 совершает вызовы функций ровно в 4 раза быстрее , цифры примерно такие 100 000 вызовов dll на МТ4 7,5 сек , на МТ5 30 сек
ИМХО. C-runtime в одном случае и виртуальная машина в другом.
В эксперте реализован графический интерфейс. Также реализованы пользовательские события (например, события по изменению графического интерфейса). Произвожу отладку на реальных данных (F5). Как только ставлю точку останова на пользовательское событие - отладчик останавливается, но последующее нажатие на F5 (продолжение отладки) не приводит к изменению в самом графическом интерфейсе. Вопрос: так и должно быть, или это баг отладчика?
Если убрать точку останова (отладка продолжается) - изменения в графическом интерфейсе происходят нормально.
МТ5, билд 2340.
ИМХО. C-runtime в одном случае и виртуальная машина в другом.
там в обоих dll крутится виртуальный .Net
нашел отличия в кодах, в 32-х разрядной сам базовый класс в отдельный поток я сам же выбросил, ибо он ука такая по другому не работает
сделал ту же манипуляцию для МТ5 , ну как бы результата соизмеримые стали ( по три теста ):
МТ5: цикл 100000 , время 8.482981 сек , цикл 100000 , время 8.638789 сек , цикл 100000 , время 8.390046 сек
МТ4: цикл 100000 , время 7.128857 сек , цикл 100000 , время 7.176361 сек , цикл 100000 , время 7.205439 сек
Приветствую ! Всех мужчин ,с праздником !!!!
Никак не пойму , что за странный баг с зигзагообразным отображением эквити в тестере. Открытие брокер фондовая секция , демо . При изменении настройки символа "Способ расчетов" с " Ехchange Stoks" на "Forex" , эквити отображается нормально. Такое же наблюдалось несколько лет назад , хотел попробовать подключить MT5 на фонду, протестировал , испугался и плюнул на все. Сейчас попробовал снова и тоже самое. Как то странно???
Проблема решаема для методов "типизированных" классов-контейнеров, однако ни как не решаема для обычных функций.
Основное противоречие в том, что для передачи структур необходимо использовать передачу по ссылке, а для литералов и временных переменных - передачу по значению.
В результате для обычных lvalue типов получаем ошибку компиляции, так как для вызова подходят обе перегруженные функции.
В качестве частичного решения и только для "примитивных" типов можно соорудить 12 overloaded function:
Но если в функция должна принимать два "универсальных" аргумента, то для реализации потребуется всего 144 overloaded function, тогда как в случаи трех таких аргументов - это целых 1728 overloaded function.
Предложение:
Предоставьте наконец-то возможность пользователям передавать литералы и временные переменные в виде const ref аргументов функций.
Пусть это будет отдельная директива # - не важно...
Дефекты в работе кеша шаблонной функции/класса:
(не исправлено MT5(build 2340)) ** Undefined Behavior, создаешь сложный несколько раз обернутый объект с внутренним типом "С", а там оказывается совсем другой тип данных, может "B", может "int", что хочешь...
(не исправлено MT5(build 2340)) * Compile Error, баг при передаче в качестве const ref template аргумента указателя на функцию.
(не исправлено MT5(build 2340)) * Compile Error, объект B<int> можно создать после объекта класса B<void*>, но если сделать это перед, то возникает ошибка компиляции.
Дефекты в работе шаблонной функции/класса:
(не исправлено MT5(build 2340)) ** Compile Error, баг внутри шаблонной функции, переданный указатель в рамках операции явного приведения типа ведет себя как класс в остальных случаях - как указатель.
(не исправлено MT5(build 2340)) ** Compile Error, баг с генерацией кода шаблонного класса при использовании internal class.
(не исправлено MT5(build 2340)) ** Compile Error, баг при попытке доступа к internal class для шаблонного параметра шаблонной функции.
(не исправлено MT5(build 2340)) * Compile Error, баг при генерации шаблонного метода/класса, процесс "автозаменны" шаблонного параметра выходит за пределы скоупа в основной код программы.
(не исправлено MT5(build 2340)) * Compile Error, баг с отсутствием автоматической генерации кода шаблонного класса, когда шаблонный класс выступает в качестве return value для шаблонного метода.
(не исправлено MT5(build 2340)) * Compile Error, баг при определении internal class - отсутствует возможность явно сослаться на глобальное пространство имен при указании базового класса.
Дефекты в рамках несоответствие приоритетов вызовов перегруженных функций в MQL в сравнении с С++:
(не исправлено MT5(build 2340)) *** Compile Error, когда есть наследование классов A <= B <= C <= D и реализованы две overloading функции, например одна c параметра А*, а вторая с B*, то передача в такую функцию объекта C* или D* в MQL вызывает ошибку компиляции "ambiguous call to overloaded function".
(не исправлено MT5(build 2340)) ** Runtime, Несоответствие приоритетов для вызовов перегруженных шаблонных функций.
Предложения:
ссылка - о предоставлении возможности передавать литералы и временные переменные в виде const ref аргументов функции.
ссылка - при перемещении файлов проекта во вкладке "Project", для перемещаемых файлов, которые открыты и находятся во вкладках ME, автоматически обновлять их путь расположения.
ссылка - о необходимости введения в MQL typedef declaration функциональности.
ссылка - о предоставлении возможности принудительной генерации дефолтных конструкторов копирования и операторов присвоения.
Прошу помощи, совсем не в теме.
В OnChartEvent по нажатию клавиши `C` гашу/восстанавливаю график цены.
И все бы хорошо, но если выбрана не английская раскладка клавиатуры - не работает.
Как сделать определение нажатия клавиши `C` независимым от выбранной раскладки?
Прошу помощи, совсем не в теме.
В OnChartEvent по нажатию клавиши `C` гашу/восстанавливаю график цены.
И все бы хорошо, но если выбрана не английская раскладка клавиатуры - не работает.
Как сделать определение нажатия клавиши `C` независимым от выбранной раскладки?
Нужно проверять lparam
Для ru и для en раскладки (и для строчных и для прописных) lparam будет 67: