![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Быстрее.
Она делает то же самое - возвращает значение функции. Но предварительно ещё и проверки делает.
Внутри самой функции ведь тоже есть проверки на переданное значение имени символа, а от него - либо "если указан обычный строковый параметр вместо Symbol(), _Symbol или NULL, то производятся проверки по полной программе и ещё запрос свойств", либо используются значения текущего символа из кэша без дополнительных проверок.
Зачем вы их ещё раз делаете, и при этом утверждаете, что это ускоряет получение данных? Не понимаю логику таких рассуждений.
К слову, я всегда так делаю в своих функциях, но не считаю, что это как-то ускоряет получение данных, а наоборот - замедляет из-за проверок значения переданного имени символа в своей функции.
Зачем вы их ещё раз делаете, и при этом утверждаете, что это ускоряет получение данных?
Вы же сами процитировали объяснение.
Записи Symbol(), _Symbol - эквивалентны NULL (там, где допускется NULL вместо имени символа)
В MT4 аналогично? И в MT5-Тестере как с этим?
К слову, я всегда так делаю в своих функциях
Покажите, пожалуйста.
Вы же сами процитировали объяснение.
Именно - это всё делается внутри штатной функции. Зачем дублировать ещё и снаружи?
Именно - это всё делается внутри штатной функции. Зачем дублировать ещё и снаружи?
Значит, Вы не поняли объяснения. Разная скорость у этих двух вызовов.
Покажите, пожалуйста.
Все функции и методы, где так делается у меня?
Их слишком много.
Все функции и методы, где так делается у меня?
Одного достаточно.
Значит, Вы не поняли объяснения. Разная скорость у этих двух вызовов.
Я всё вроде бы понял. Естественно, она разная. Чем же вы её ускорили? Вы передаёте в функцию значение не текущего символа в одном из случаев - если не_Symbol.
Вот в случае передачи в функцию вышеперечисленного значения, функция не проводит проверок, а берёт значение текущего символа из кэша.
В остальных случаях она запрашивает данные указанного символа с проверкой "по полной программе" + его наличие в обзоре рынка. Ваша "быстрая" функция не избавляет от этих проверок при запросе данных от неродного символа. Так и где ускорение?
Всего два варианта в вашей функции при её вызове if(SymbolInfoTickFast(Symbol(), tick_array)) {}
Другой разговор, если вы (по своей привычке дефайнить всё, что двигается) создаёте строковую переменную для текущего символа, то да - вы тут вынуждены делать проверки и заменять свою макроподстановку на предопределённую переменную, либо на вызов Symbol()
Чем же вы её ускорили?