Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
А что сейчас используется вместо "IsExpertEnabled()" и "IsLibrariesAllowed()", что-то не нашел в справке нечего подобного?
Одними TERMINAL_TRADE_ALLOWED, TERMINAL_DLLS_ALLOWED, TERMINAL_EMAIL_ENABLED и TERMINAL_FTP_ENABLED на мой взгляд не обойтись...
PS
Предлагаю добавить еще TERMINAL_EXPERT_ENABLED и TERMINAL_LIB_ALLOWED
PPS
Хотя в поиске у справочника (4 релиз) есть упоминание о "TERMINAL_EXPERTS_ENABLED", только вот незадача без описания и детальной информации.
Справочник выкидывает в раздел с описанием "ENUM_TERMINAL_INFO_INTEGER" и на этом все завершается (к сожалению).....
Наконец выделил пару часов на написание примера. Большую часть времени заняли комментарии в программе.
На классы разводить не стал так как пример маленький, а вынос кода по разным модулям при таком объеме кода только усложнит понимание алгоритма.
Суть задачи следующая выдается список доступных в market watch инструментов далее собирается массив из имен этих инструментов плюс по каждому инструменту заводятся по 9 мувингов. Для наглядности результаты выкладываются в виде массива кнопок в окне вызвавшего их инструмента.
Как правильно написать этот код на MQL5 без использования Sleep?
В приложенном коде нет проверки доступности исторических данных для всех символов, предоставляемых сервером, и не делается попыток исправить.
Вы смешиваете два таких понятия, как вычисление индикатора на исторических данных и подкачка необходимых данных. Необходимо разделить работу на две части:
Кроме того, непонятно, почему для приложенного скрипта должно быть критичным время выполнения? А если предполагается все эти вычисления делать в эксперте (то есть, опять таки нет необходимости получить сразу всё и сразу на первом же тике ), то опять-таки время не критично.
Вы просто пишете код, не задумываясь - есть ли данные для расчета, можно ли вообще получить эти данные, какое количество данных достаточно и так далее. А в этом варианте скрипт и не должен работать корректно.
Чуть позже я выложу более правильный вариант.
Как и ожидалось MQL5 в упор не видит TERMINAL_EXPERTS_ENABLED, исправьте пожалуйста поскорей...
Наконец выделил пару часов на написание примера. Большую часть времени заняли комментарии в программе.
На классы разводить не стал так как пример маленький, а вынос кода по разным модулям при таком объеме кода только усложнит понимание алгоритма.
Суть задачи следующая выдается список доступных в market watch инструментов далее собирается массив из имен этих инструментов плюс по каждому инструменту заводятся по 9 мувингов. Для наглядности результаты выкладываются в виде массива кнопок в окне вызвавшего их инструмента.
Как правильно написать этот код на MQL5 без использования Sleep?
В приложенном коде нет проверки доступности исторических данных для всех символов, предоставляемых сервером, и не делается попыток исправить.
Вы смешиваете два таких понятия, как вычисление индикатора на исторических данных и подкачка необходимых данных. Необходимо разделить работу на две части:
Да уж пожалуйста дайте пример получения достаточной глубины всех необходимых таймфреймов в начале работы эксперта, чтобы не было сообщения об отсутствии данных. Я сейчас для этого вывожу в OnInit графики всех используемых в советнике таймфреймов, хотя эсперт навешен только на одном из них.
Нельзя-ли сначала закачать все данные, а уж потом позволить эксперту работать дальше (всё в программе естественно).
Еще два старых вопрос о главном:
1. Поддерживает ли MT5 и MQL5 в своем текущем состоянии общение с DLL и как это правильно сделать?
Просто пробовал переписать свои библиотеки и подключить их при помощи mqh-файла, не вышло :(
При компиляции секции выскакивает следующая ошибка (DLL лежит в каталоге Libraries).
unexpected end of program
no executable file produced
Точно такой результат получается если обращаться к системным DLL из состава Windows XP или ex5-файлам...
Вот такой код вроде в 4 работает, а в 5 не хочет....
2. Доступно ли в текущий момент работа при помощи DDE (что-то не найду даже намеков на это)?
В советнике использовались следующие функции: IsDemo, IsTesting, IsOptimization и IsStopped.
Как их теперь реализовать?
Как и ожидалось MQL5 в упор не видит TERMINAL_EXPERTS_ENABLED, исправьте пожалуйста поскорей...
Этой константы больше нет, так в MQL5 кнопка "Запретить/разрешить эксперта" относится именно к совершению торговых операций (а не к запрету работы эксперта), сам эксперт в любом случае получает все тики и продолжает работу.
Да уж пожалуйста дайте пример получения достаточной глубины всех необходимых таймфреймов в начале работы эксперта, чтобы не было сообщения об отсутствии данных. Я сейчас для этого вывожу в OnInit графики всех используемых в советнике таймфреймов, хотя эсперт навешен только на одном из них.
Нельзя-ли сначала закачать все данные, а уж потом позволить эксперту работать дальше (всё в программе естественно).
Можно, пример будет выложен завтра.
Наконец выделил пару часов на написание примера. Большую часть времени заняли комментарии в программе.
На классы разводить не стал так как пример маленький, а вынос кода по разным модулям при таком объеме кода только усложнит понимание алгоритма.
Суть задачи следующая выдается список доступных в market watch инструментов далее собирается массив из имен этих инструментов плюс по каждому инструменту заводятся по 9 мувингов. Для наглядности результаты выкладываются в виде массива кнопок в окне вызвавшего их инструмента.
Как правильно написать этот код на MQL5 без использования Sleep?
Работает и без слип, время выполнения - 0 миллисекунд.
2. Доступно ли в текущий момент работа при помощи DDE (что-то не найду даже намеков на это)?
Про DDE говорили - его не будет. :-(
А жаль...
-