Ошибки, баги, вопросы - страница 2745
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вопрос по оптимизации. В Тестере на каждом тике нужно получить тик для дальнейшей работы. Делаю это так.
Понятно, что этот вариант будет медленнее:
Но еще тормозит SymbolInfoTick, потому что string-параметр передается не по ссылке.
Возможно ли иметь штатные SymbolInfo*-перегрузки, где string передается по ссылке?
А лучше, конечно, иметь
В Оптимизаторе эти функции вызываются десятки миллиардов раз.
вызов функции Symbol() ВСЕГДА разворачивается в доступ к глобальной переменной _Symbol, как и Digits(), Point(), Period(), GetLastError(), IsStopped(), UninitializeReason()
вызов функции Symbol() ВСЕГДА разворачивается в доступ к глобальной переменной _Symbol, как и Digits(), Point(), Period(), GetLastError(), IsStopped(), UninitializeReason()
А передача string по ссылке?
А передача string по ссылке?
Видимо причина в одной из нерешаемых проблем в MQL - передача литерала в качестве параметра по const ref.
Возможно ли иметь штатные SymbolInfo*-перегрузки, где string передается по ссылке?
А как они помогут?
Все равно возвращается(вызывается) 1, а не 2
А передача string по ссылке?
Строка передаётся по ссылке.
Мы уже давно перешли на "copy_on_write строки" -> при копировании одной строки в другую контент не копируется сразу (как это было раньше), увеличивается количество ссылок на буфер строки
Например, количество ссылок увеличивается при передаче строки по значению, в качестве параметра и уменьшается после вызова.
Когда строка меняется, проверятся счётчик ссылок на буфер и если ссылок больше одной, то изменяемая строка "отцепляется" от старого буфера и ей выделяется новый.
А как они помогут?
Все равно возвращается(вызывается) 1, а не 2
переменная _Symbol константная
Тогда перегрузка тем более не поможет
будет ошибка уже при компиляции
Строка передаётся по ссылке.
Мы уже давно перешли на "copy_on_write строки" -> при копировании одной строки в другую контент не копируется сразу (как это было раньше), увеличивается количество ссылок на буфер строки
Например, количество ссылок увеличивается при передаче строки по значению, в качестве параметра и уменьшается после вызова.
Когда строка меняется, проверятся счётчик ссылок на буфер и если ссылок больше одной, то изменяемая строка "отцепляется" от старого буфера и ей выделяется новый.
Это все на уровне компиляции определяется?
Ошибка компилятора:
Это все на уровне компиляции определяется?
Нет. Во время компиляции это ещё неизвестно.