Ошибки, баги, вопросы - страница 2296
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Проблемы нет... есть ошибка. Тоже не понимаю зачем пытаться за уши притянуть объяснение. Штатный Print имеет следующую сигнатуру:
и тоже умеет конфликтовать с другими функциями (если потребуется)
Сигнатура Print выбивается за пределы возможностей языка MQL5. Если в MQL5 запретят совсем делать перегрузки Print, это не будет ошибкой.
Надеюсь, данный "баг" не мешает Вам создавать ТС и не требует написания костылей.
Замерил производительность Тестера. Для этого на каждом тике открывал и закрывал позицию. Замерял время выполнения 100 тиков. И так прогнал 100 000 тиков. Итого 1000 замеров. Получил такой график
Какие-то всплески замедления почти на одинаковом расстоянии между друг другом. Замерял в режиме Оптимизации. Если не обращать внимание на всплески, то производительность Тестера пляшет на 25%, вместо постоянного значения. Возможно, это снова приколы замера скорости в ОС Windows.
ЗЫ Тот же самый код запустил на MT4
В среднем на обработку одного тика MT4-Тестер затрачивает раза в 1.5-2 меньше времени, чем MT5.
Возможно, всплески через использование генетического алгоритма оптимизации.
В среднем на обработку одного тика MT4-Тестер затрачивает раза в 1.5-2 меньше времени, чем MT5.
Возможно, всплески через использование генетического алгоритма оптимизации.
ГА нет. Оптимизация из двух проходов на одном Агенте.
А это уже чистой воды манипуляции и введение в заблуждение.
Исходник на месте.
В одном случае предупреждение, в другом ошибка
А какая принципиальная разница? В C++ например в обоих случаях ошибка
Прошу помочь знающих людей разобраться в вопросе указателей на экземпляры классов. А то я не въезжаю.
Имеем такой пример скрипта:
При выполнении имеем, как и предпологалось:
если экземпляр класса объявляем так:
A *a= new A;
тогда при выполнении имеем:
т.е. деструктор даже не запускается, память соответственно не освобождается.
Если же экземпляр класса объявляем так:
A a= new A;
то конструктор запускается два раза, деструктор 1 раз, но при этом память не освобождается и имеем тип указателя объекта POINTER_AUTOMATIC , хотя предпологалось POINTER_DYNAMIC
Как добиться всегда выполнения деструктора и правильного выполнения delete
Как добиться всегда выполнения деструктора и правильного выполнения delete.
Смотрите из С++ тему умных указателей и адаптируйте под MQL (https://habr.com/post/140222/).
Может что есть в кодобазе...
Смотрите из С++ тему умных указателей и адаптируйте под MQL (https://habr.com/post/140222/).
Может что есть в кодобазе...
спасибо, но не увидел там ответов на мои вопросы.
Не понимаю, почему деструктор не вызывается при A *a= new A;
спасибо, но не увидел там ответов на мои вопросы.
Не понимаю, почему деструктор не вызывается при A *a= new A;
Результат:
1:POINTER_AUTOMATIC
1:POINTER_DYNAMIC
2:POINTER_DYNAMIC
2:POINTER_AUTOMATIC
спасибо, но не увидел там ответов на мои вопросы.
Не понимаю, почему деструктор не вызывается при A *a= new A;
Создаем оператором new, а удаляем оператором delete