С точки зрения грамматики кода различий очень мало.
Убедитесь, что в каждом исходном файле указано #property strict
Вставка #property strict в начале каждого файла гарантирует, что MQL4 будет работать в «строгом» режиме, который обеспечивает более близкое соблюдение стандартов к MQL5,
а не к MQL4 до 2014 года. Без этой строки в МТ4 произойдет непредвиденное поведение.
Для программ, написанных на диалекте MQL4 до 2014 года, вставка этой строки часто приводит к большому количеству ошибок из-за различных методов написания кода. Это следует смягчить, следуя рекомендациям, описанным в этом руководстве и в целом.
Эта строка обычно вставляется, если вы создаете файл в MetaEditor 4, но не вставляется, если вы используете MetaEditor 5, поэтому убедитесь, что эта строка присутствует в каждом исходном файле.
Для настроек используйте входные переменные, а не внешние переменные.
Хотя допустимо в MQL4, extern bool var; стал недействительным для пользовательских настроек в MQL5 с 2017 года. MQL5 требует, чтобы вы использовали input bool var; или же окно настроек не отображается.
Согласно документам MQL5, переменная extern предназначена для использования в качестве общей переменной для исходных файлов, связанных вместе с помощью #include. В MT4 принято использовать внешние переменные в качестве пользовательских настроек, но MT5 прекратил эту практику. Тем не менее, внешние переменные по-прежнему работают в MQL5 по назначению.
input переменные могут быть установлены пользователем только один раз и не могут быть изменены во время выполнения. Если вы используете внешние переменные в качестве пользовательских настроек, вам следует проверить, изменяете ли вы эти внешние переменные на новые значения во время выполнения:
Если вы этого не сделаете, безопасно выполнить поиск и заменить внешние переменные входными переменными.
Если вы меняете внешние переменные extern, вы можете иметь отдельные входные переменные input, а затем копировать значения в ваши текущие внешние переменные extern во время OnInit.
Переменные должны быть инициализированы значением по умолчанию.
В MQL4, если вы объявляете переменную, ее значение неявно инициализируется равным 0 или эквивалентным. Поэтому вы можете написать int startVal; без указания стоимости. В MQL5 это не работает, потому что MT5 не инициализирует переменные за вас — вы должны инициализировать все переменные значением по умолчанию: int startVal = 0;
Подписаться на:
Комментарии к сообщению (Atom)
Разработка PHP и MySQL с использованием Docker
Современные веб-разработчики часто сталкиваются с проблемами настройки окружения для проектов. Docker помогает стандартизировать и ускорить ...
-
хочу предложить Вашему вниманию мою статью что такое социальная сеть ? определение, визуализация а также другие статьи этой же тематики ...
-
Куплю Ваш сайт с уникальным контентом и посещаемостью. предложения на eurweb@gmail.com
Комментариев нет:
Отправить комментарий