Особенности языка mql5, тонкости и приёмы работы - страница 239
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Какими способоми можно узнать, есть ли у символа данные, чтобы не оставлять его в окне [Обзор Рынка], если их нет?
SymbolInfoTick.
SymbolInfoTick.
Я пробовал этот вариант. К сожалению, он не походит. Если символ добавляется в окно [Обзор Рынка] в первый раз, то по нему ещё нет данных и SymbolInfoTick возвращает нулевые значения.
Я также протестировал функции CopyXXX, но у них нет таймаута и процесс ожидания данных от сервера длится примерно 45 секунд, что слишком долго.
Нужен быстрый способ, который позволит выяснить, что символ не пригоден для использования. Я имею в виду вот такие случаи:
//---
У таких символов нет данных на сервере и нужен способ определить их, чтобы не добавлять в окно [Обзор Рынка] или удалить их из списка, если они есть.
P.S. Возможно, есть какой-то способ снять блокировку на удаление символов из списка в окне [Обзор Рынка]?
Я пробовал этот вариант. К сожалению, он не походит. Если символ добавляется в окно [Обзор Рынка] в первый раз, то по нему ещё нет данных и SymbolInfoTick возвращает нулевые значения.
Рабочие символы получить элементарно руками.
Я пробовал этот вариант. К сожалению, он не походит. Если символ добавляется в окно [Обзор Рынка] в первый раз, то по нему ещё нет данных и SymbolInfoTick возвращает нулевые значения.
Я также протестировал функции CopyXXX, но у них нет таймаута и процесс ожидания данных от сервера длится примерно 45 секунд, что слишком долго.
Нужен быстрый способ, который позволит выяснить, что символ не пригоден для использования. Я имею в виду вот такие случаи:
//---
У таких символов нет данных на сервере и нужен способ определить их, чтобы не добавлять в окно [Обзор Рынка] или удалить их из списка, если они есть.
P.S. Возможно, есть какой-то способ снять блокировку на удаление символов из списка в окне [Обзор Рынка]?
Я уже лет 6 с этим воюю, и прошу разработчиков навести тут порядок.
К сожалению эта проблема не решена, и на текущий момент бывают такие ситуации когда при обращении любом к финансовому инструменту в первые, вешается терминал.
Какими способоми можно узнать, есть ли у символа данные, чтобы не оставлять его в окне [Обзор Рынка], если их нет?
Я использую такую проверку в цикле:
Но после этого не получается вручную удалить символы из окна [Обзор Рынка] ни по одному ни все сразу, пока эксперт на графике:
Попробуйте проверить время последней котировки.
если 0, то данных нет.
Я просто проверил по открытым графикам.
Можно получить дополнительные данные, переключаясь между серверами. Не знаю, возможно ли это реализовать через код.
Если под "между серверами" имеется в виду "между брокерами", то едва ли, разве что попробовать профилями поиграть.
А вот если бы мне реально надо было бы переключаться между разными серверами одного брокера (у Открытия было много, у Финама - два), я бы сделал это через iptables/nftables и свои bash-скрипты. Но тут мне проще, у меня Linux.
Если под "между серверами" имеется в виду "между брокерами"
.
Да, тут, в принципе, возможно.
Но, поскольку нет возможности из MQL-программы узнать имя и ip сервера, придётся выяснить их вручную, переключая сервера и проверяя, на какой ip идёт соединение.
Далее можно, внося изменения в конфигурацию файрвола, запрещать коннект на какой-то сервер (тут надо пакеты режектить, а не дропать, чтобы избежать таймаута), вынуждая MT переключиться на другой.
Опять же, мне под Linux'ом это сделать несложно, но не представляю, как это сделать в винде.
Попробуйте проверить время последней котировки.
если 0, то данных нет.
Я просто проверил по открытым графикам.
Это также относится к подобному случаю:
Если тики приходят редко, то все такие символы будут исключены.
Рабочие символы получить элементарно руками.
Нет. Нужен полный автомат.
Я уже лет 6 с этим воюю, и прошу разработчиков навести тут порядок.
К сожалению эта проблема не решена, и на текущий момент бывают такие ситуации когда при обращении любом к финансовому инструменту в первые, вешается терминал.
Заметил это только при вызове следующих функций:
//---
Разработчикам терминала:
1. Исключить возможность добавления на торговом сервере символов без данных.
2. Дать возможность отключать блокировку удаления символов из окна [Обзор Рынка] или исправить, если это баг. Сейчас это можно сделать только перезапустив терминал.
3. Для функций типа CopyXXX добавить дополнительный необязательный параметр для установки таймаута (максимальное время ожидания данных от сервера).
Сейчас не могу воспроизвести это. Пока работает без задержки. Но похоже в каких-то случаях такое может быть.
4. Исправить баг с бесконечным ожиданием при использовании функций Bars(), iBars(), SeriesInfoInteger(symbol, PERIOD_M1, SERIES_BARS_COUNT) в случаях, когда:
Попытка удалить программу с графика может вызвать зависание терминала на несколько минут.
5. Исправить баг с бесконечным ожиданием при использовании функций, если нет соединения с сервером:
В этом случае также можно добавить дополнительный необязательный параметр для установки таймаута (максимальное время ожидания данных от сервера).
//---
P.S. Я пока остановился на варианте с проверкой на наличие данных с функциями типа CopyXXX. Но буду наблюдать, проявится ли снова описанная выше проблема.