Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
@Anton, во многих штатных функциях можно вместо символа указывать NULL. Влияет ли это на скорость выполнения?
Или никакой разницы для Терминала/Тестера?
Записи Symbol(), _Symbol - эквивалентны NULL (там, где допускется NULL вместо имени символа)
В данном случае не производится лишняя проверка на существование текущего символа, на присутствие текущего символа в Обзоре рынка и лишний вызов свойств текущего символа, так как свойства текущего символа кешируются
То есть, если указан обычный строковый параметр вместо Symbol(), _Symbol или NULL, то производятся проверки по полной программе и ещё запрос свойств
Записи Symbol(), _Symbol - эквивалентны NULL (там, где допускется NULL вместо имени символа)
В данном случае не производится лишняя проверка на существование текущего символа, на присутствие текущего символа в Обзоре рынка и лишний вызов свойств текущего символа, так как свойства текущего символа кешируются
Слава, можете прокомментировать: на акциях цена тика в спецификации символа выставлена '0'. И вот, что говорит поддержка:
"Получили подтверждение от технического отдела. Сообщаем, что параметр "Цена тика" для акций нет возможности заполнить. Значение будет указано по умолчанию - 0.
Спасибо за обращение!"
Это действительно так? Именно в Спефицикации символа цена тика стоит ноль именно для акций?
Слава, можете прокомментировать: на акциях цена тика в спецификации символа выставлена '0'. И вот, что говорит поддержка:
"Получили подтверждение от технического отдела. Сообщаем, что параметр "Цена тика" для акций нет возможности заполнить. Значение будет указано по умолчанию - 0.
Спасибо за обращение!"
Это действительно так? Именно в Спефицикации символа цена тика стоит ноль именно для акций?
Да. Есть нюансы.
При выставленном нуле надо считать самостоятельно. Спросите вашего брокера про формулу
Проблема получения СВЕЖИХ тиков без пропусков сейчас решается только через CopyTicks*. Это очень громоздкий механизм для данной распространенной задачи.
К слову сказать, из свежих сегодняших логов с последней релизной версии МТ5:
Это висели 3 советника на 1 символе, каждый на своём чарте. При том, что запрос идёт на каждом тике. Такие выбросы бывают, конечно, нечасто, но по сути 1 запрос новых тиков, пришедших с прошлого тика, выполнялся 700 мс.
Не является.
Вы всегда в любом месте любой программы будете ловить рандомные задержки. Начните следить за всем и ужаснетесь реалиям Windows. Я это уже несколько раз объяснял в деталях.
Мы тоже в свое время удивлялись, когда ловили рандомные выбросы 60-80 мс вместо 0 мс на системных WinAPI функциях.
Сейчас мы массово переводим большую часть своих Windows решений на специально обезжиренные Windows Server 2019 Core версии, а .NET Core веб-проекты на Линукс. Это дает громадную экономию по системным ресурсам и серьезно снижает системные задержки.
Первым этапом обезжиривания MataTrader 5 терминалов начали внедрять таск менеджер, чтобы на лету следить за потреблением ресурсов. Для себя у нас больше информации собирается.
Уже выяснилось, что мы:
Вот еще бы не плохо и терминал под линя )))
Да. Есть нюансы.
При выставленном нуле надо считать самостоятельно. Спросите вашего брокера про формулу
Через SymbolInfoXXXX все корректно. Вопрос был почему утверждают, что для акций именно в Спецификации выставляется '0'. Говорят мол и так понятно - что один тик равен одному центу. Но ведь это не повод лепить в Спецификацию '0'?
Внутри функции еще нужно перейти к соответствующему символу тику. Это время на анализ string-переменной. С NULL такого делать ненужно.
Я тогда еще проверял - никакой существенной разницы по быстродействию не обнаружил. Можете сами перепроверить
если указан обычный строковый параметр вместо Symbol(), _Symbol или NULL, то производятся проверки по полной программе и ещё запрос свойств
Спасибо за информацию! Получается, что лучше делать так:
Спасибо за информацию! Получается, что лучше делать так:
Даже без технических подробностей и представить не мог как можно иначе делать в своих функциях...
Чем эта конструкция должна быть быстрее штатного SymbolInfoTick() ?
Чем эта конструкция должна быть быстрее штатного SymbolInfoTick() ?
Быстрее.