MetaQuotes Language Введение Язык программирования MQL используется при написании собственных программ-экспертов для автоматизации контроля торговых процессов, при написании собственных индикаторов, а также для реализации собственных торговых стратегий. MQL прост в изучении, использовании и отладке. В состав MQL включено большое количество переменных, необходимых для контроля текущих и прошлых котировок, основные арифметические и логические операции, встроены основные индикаторы и команды по открытию позиций и контролю над ними. 1. Структура программы Все модули должны иметь определённую структуру: команды препроцессора Здесь указываются все команды препроцессора, описание индикаторов и объявление именованых констант объявления переменных Здесь объявляются и (если надо) инициализируются переменные объявления функций Здесь объявляются и описываются все функции, которые будут использованы в модуле функция init() Эта функция всегда автоматически вызывается при начальной инициализации модуля. При необходимости её можно вызвать из любого места модуля. функция deinit() Эта функция вызывается при деинициализации (удаление модуля из памяти). Применяется для удаление объектов, которые были созданы этим модулем и которые уже не нужны. функция start() Это главная функция. Она имеет некоторые особенности: 1. при её отсутствии модуль (скрипт, индикатор или советник) не работает. 2. она вызывается всегда после функции init(). 3. для индикаторов - вызывается всегда, когда окно, к которому прикреплён этот индикатор становится активным. 4. для индикаторов и советников - вызывается после прихода очередного тика. В случае, если функция не отработала полностью, следующий тик может быть не отработан. Все это мы будем изучать более подробно.