Бета-версия платформы MetaTrader 5 build 1625: Пользовательские финансовые инструменты - страница 8
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
И речь не обязательно о сторонних пользователях, не знакомых с реализацией класса. Ты сам можешь где-то в программе случайно сделать приравнивание объектов, и компилятор такое пропустит без ошибок.
Да, теперь, например, из способов определения, что структура является сложной, остался только вариант с попыткой запихнуть ее в union.
Если компилятор ругается - сложная, нет - простая.
В 1626 этот код компилируется до 2-х секунд на
У кого-нибудь воспроизводятся тормоза (см. комментарий в коде)?
Мой рекорд
Достиг нажиманием на F7 раз 20. Все разы были по 150 мс, а один такой.Мне бы ваши проблемы)
Vladimir Karputov:
Так проверку по числовому значению ввёл в пример, чтобы понять, почему после Stopp loss нет захода в
и оказалось, что DEAL_REASON_SL имеет значение '9', но вот внутри OnTradeTransaction()
возвращает '4', а должно возвращать '9'.
Rashid Umarov:
Причину нашли и исправили, спасибо за сообщение!
Как я понял в билд 1626 это изменение ещё не попало. Правильно?
Нет, не попало
Программист, со всеми вытекающими обязательствами. Бездумно скопировали сложный объект, значит сами виноваты.
Неявный оператор копирования - это не memcpy, а реальное конструирование каждого сложного объекта внутри структуры или класса.
Я вот не пойму, что за муха вас укусила? Столько лет действовал строгий запрет на неявное присвоение сложных объектов, все понимали что это продиктовано требованиями надёжности и определённости в отношении поведения программы. Потому всё было чётко и контролируемо. А теперь вы вдруг в одночасье переменили своё мнение на противоположное, да ещё и с такой категоричностью, будто всегда так считали. Может объясните?
Вышел билд 1627: теперь в режиме отладки на реальных данных (F5 в редакторе MetaEditor) или если накинуть советник на график в OnTradeTransaction можно отловить свойство DEAL_REASON. В режиме отладки на исторических данных пока свойство DEAL_REASON не работает.
Я вот не пойму, что за муха вас укусила? Столько лет действовал строгий запрет на неявное присвоение сложных объектов, все понимали что это продиктовано требованиями надёжности и определённости в отношении поведения программы. Потому всё было чётко и контролируемо. А теперь вы вдруг в одночасье переменили своё мнение на противоположное, да ещё и с такой категоричностью, будто всегда так считали. Может объясните?
Никакой мухи нет как и никаких проблем с безопасностью. Вы просто придумываете проблемы там, где их нет. В управляемом/managed языке все под контролем. Ошибетесь и среда исполнения это отследит и остановит программу по критической ошибке.
Мы резко упростили жизнь разработчикам в подавляющем объеме простых случаев. Это язык программирования для разработчиков со всеми вытекающими последствиями.