Liv Опубликовано 2 июня, 2007 Жалоба Поделиться Опубликовано 2 июня, 2007 (изменено) Для начала давайте сравним два кусочка кода.Первый:MQLif (a==1) Event=1;if (a==2) Event=3; if (Event==1) OpOrder();if (Event==3) ClOrder(); Правда, не очень понятно... Конечно, когда писалось, то было всё понятно, но по прошествии даже двух дней можно потерять нить... А теперь второй:MQL#define ДвижениеВверх 1#define ДвижениеВнииз 2 #define МожноПокупать 1#define НужноЗакрывать 3 if (a==ДвижениеВверх) Событие=МожноПокупать;if (a==ДвижениеВниз) Событие=НужноЗакрывать; if (Событие==МожноПокупать) OpOrder();if (Событие==НужноЗакрывать) ClOrder(); Вот теперь будет всё понятно даже через 10 лет и совершенно неважно какие цифры кроются в используемых константах, лишь бы они различались внутри групп использования. А для того, что бы постоянно не переписывать одни и те же константы при создании скриптов/индикаторов/советников, нужно выделить их в один заголовочный файл и после вставлять его во все свои произведения. Для информации, количество записаных констант в заголовочном файле никак не влияют на размер скомпиллированного файла, на скорость компилляции и исполнения. Т.е. в заголовочный файл можно писать своих констант сколько угодно, на все случаи жизни и работы :) . Значит будем создавать заголовочный файл. Они имеют расширение .MQH. Создание заголовочного файла происходит по тому же сценарию, что и файл библиотеки (см. Создание библиотек), только в окне выбирается пункт "Заголовочный файл (*.MQH)". Сам файл компилляции не требует, ибо вставляется текстом в модуль перед компилляцией, где все константы заменяются соответствующими цифрами. Вставляется готовый заголовочный файл в модуль очень просто:MQL/* в начале модуля добавляем такую строку */#include <мои_константы.mqh>/* или такую */#include "мои_константы.mqh" Как я уже говорил в топике "Основы языка MQL", если имя файла заключено в угловые скобки, то файл будет искаться в каталоге experts\include, а если имя файла заключено в кавычки, то такой файл должен лежать вместе с тем модулем, куда он вставляется. Изменено 2 июня, 2007 пользователем Liv Ссылка на комментарий Поделиться на другие сайты Поделиться
Liv Опубликовано 2 июня, 2007 Автор Жалоба Поделиться Опубликовано 2 июня, 2007 И так, начинаем.....Все константы будут сгруппированы по назначению.MQL/* движение */#define ДвижениеФлэт 0#define ДвижениеВверх 1#define ДвижениеВниз 2#define ВершинаНаверху 3#define ВершинаВнизу 4#define ДостигнутМаксимум 5#define ДостигнутМинимум 6#define Перекрестие 7 /* события */#define СобытийНет 0#define ВозможнаПокупка 1#define Покупка 2#define ВозможнаПродажа 3#define Продажа 4 Предлагайте свои константы для дополнения. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения