Программы, написанные на MetaQuotes Language 5, имеют различные свойства и предназначение:
- Советник — это механическая торговая система (МТС), имеющая
привязку к определенному графику. Советник запускается на выполнение при
возникновении события,
которое он может обработать: события инициализации и деинициализации,
событие прихода нового тика, событие от таймера, событие от изменения
стакана цен, события от графика и пользовательские события.
Советник может не только работать в режиме информирования о возможности совершить сделку, но и автоматически совершать сделки на торговом счете, направляя их прямо на торговый сервер. Советники хранятся в директории каталог_терминала\MQL5\Experts. - Пользовательский индикатор —
технический индикатор, самостоятельно написанный пользователем в
дополнение к индикаторам, уже интегрированным в клиентский терминал.
Пользовательские индикаторы, также как и встроенные, не могут
автоматически торговать и предназначены только для реализации
аналитических функций.
Пользовательские индикаторы не могут использовать функции для работы с графиками и графическими объектами. Пользовательские индикаторы хранятся в директории каталог_терминала\MQL5\Indicators - Скрипт — программа, предназначенная для одноразового выполнения каких-либо действий. В отличие от экспертов, скрипты не обрабатывают никаких событий, кроме события запуска (для этого в скрипте должна быть функция-обработчик OnStart). Скрипты хранятся в директории каталог_терминала\MQL5\Scripts
- Библиотека — библиотека пользовательских функций, предназначенная
для хранения и распространения часто используемых блоков
пользовательских программ. Библиотеки не могут самостоятельно
запускаться на выполнение.
Библиотеки хранятся в директории каталог_терминала\MQL5\Libraries
Советник имеет полный доступ к чарту и может использовать любые функции управления объектами на нем. То есть, рисовать с помощью объектов может.
Но у индикаторов, которые специально предназначены для отрисовки длинных последовательностей, есть масса уникальных и экономичных режимов отрисовки:
Идентификатор |
Описание |
Буферов значений |
Буферов цвета |
DRAW_NONE |
Не отрисовывается |
1 |
0 |
DRAW_LINE |
Линия |
1 |
0 |
DRAW_SECTION |
Отрезки |
1 |
0 |
DRAW_HISTOGRAM |
Гистограмма от нулевой линии |
1 |
0 |
DRAW_HISTOGRAM2 |
Гистограмма на двух индикаторных буферах |
2 |
0 |
DRAW_ARROW |
Отрисовка стрелками |
1 |
0 |
DRAW_ZIGZAG |
Стиль Zigzag допускает вертикальные отрезки на баре |
2 |
0 |
DRAW_FILLING |
Цветовая заливка между двумя уровнями |
2 |
0 |
DRAW_BARS |
Отображение в виде баров |
4 |
0 |
DRAW_CANDLES |
Отображение в виде свечей |
4 |
0 |
DRAW_COLOR_LINE |
Разноцветная линия |
1 |
1 |
DRAW_COLOR_SECTION |
Разноцветные отрезки |
1 |
1 |
DRAW_COLOR_HISTOGRAM |
Разноцветная гистограмма от нулевой линии |
1 |
1 |
DRAW_COLOR_HISTOGRAM2 |
Разноцветная гистограмма на двух индикаторных буферах |
2 |
1 |
DRAW_COLOR_ARROW |
Отрисовка разноцветными стрелками |
1 |
1 |
DRAW_COLOR_ZIGZAG |
Разноцветный ZigZag |
2 |
1 |
DRAW_COLOR_BARS |
Разноцветные бары |
4 |
1 |
DRAW_COLOR_CANDLES |
Разноцветные свечи |
4 |
1 |
Спасибо за ответ.
Я спрашиваю исходя из предположения, что часть математики в советнике и индикаторе совпадает - и никак не могу понять каких соотношений стоит придерживаться при написании программ.
Я спрашиваю исходя из предположения, что часть математики в советнике и индикаторе совпадает - и никак не могу понять каких соотношений стоит придерживаться при написании программ.
Если нужен индикатор, то создаете индикатор через визард и кладете его в нужный каталог. Если нужен торгующий эксперт - создаете его.
Главным образом типы программ разделяются по каталогам, где они лежат (MQL5/Indicators, MQl5/Experts и тд). Это сделано для того, чтобы интерфейс программы мог разумно показывать в нужных местах списки индикаторов, скриптов и экспертов.
Если бы все программы были свалены в одно место и не имели явных различий, то тогда бы во всех местах терминала трейдерам пришлось бы смотреть на пару сотен программ, не понимая каких они типов.
Если нужен индикатор, то создаете индикатор через визард и кладете его в нужный каталог. Если нужен торгующий эксперт - создаете его.
Главным образом типы программ разделяются по каталогам, где они лежат (MQL5/Indicators, MQl5/Experts и тд). Это сделано для того, чтобы интерфейс программы мог разумно показывать в нужных местах списки индикаторов, скриптов и экспертов.
Если бы все программы были свалены в одно место и не имели явных различий, то тогда бы во всех местах терминала трейдерам пришлось бы смотреть на пару сотен программ, не понимая каких они типов.
Пользовательские индикаторы не могут использовать функции для работы с графиками и графическими объектами.
странно как то. я что баг эксплуатирую у меня индикатор из одних графических объектов состоит. добавляет их и удаляет. Все работает
Индикаторы давно уже могут управлять графическими объектами - это в документации старая информация осталась.
Обязательно исправим.
Как я понимаю - индикаторы не умеют торговать - т.е. обращаться к соответствующим функциям.
Могу ли я в советнике использовать возможности рисования на графике?
Почему возникло разделение на 2 типа программ? Отчего не делать все в одной используя или нет те или иные функции?
Я новичок в MQL - поясните пожалуйста.
На мой взгляд самое большое различие индикаторов и советников состоит в:
1. Советник на график по идеи можно добавить только один, а индюков (в зависимости от их начинки и задачи) несколько;
2. Индикаторы не не умеют на прямую обращаться к торговым функциям (не дано им торговати).
Лень смотреть могут они вызывать скрипты или нет, будем считать нет (а хочется)...
PS
Если часть математики совпадает (или ее можно вынести в индюки), то оптимальным вариантом буде это и сделать. Предполагаю, что в этом вопросе есть ряд ограничений...
Индикаторы давно уже могут управлять графическими объектами - это в документации старая информация осталась.
Обязательно исправим.
На мой взгляд самое большое различие индикаторов и советников состоит в:
1. Советник на график по идеи можно добавить только один, а индюков (в зависимости от их начинки и задачи) несколько;
2. Индикаторы не не умеют на прямую обращаться к торговым функциям (не дано им торговати).
Лень смотреть могут они вызывать скрипты или нет, будем считать нет (а хочется)...
PS
Если часть математики совпадает (или ее можно вынести в индюки), то оптимальным вариантом буде это и сделать. Предполагаю, что в этом вопросе есть ряд ограничений...
Самое большое отличие в том, что индикатор критичен ко времени исполнения, т.к. событие OnCalculate вызывается на каждом тике. И если производить слишком сложные расчеты, терминал начинает "тормозить".
Советнмк использует событие NewTick почитайте.
И кроме этого разница в обработке события OnDeinit.
Самое большое отличие в том, что индикатор критичен ко времени исполнения, т.к. событие OnCalculate вызывается на каждом тике. И если производить слишком сложные расчеты, терминал начинает "тормозить".
Советнмк использует событие NewTick почитайте.
И кроме этого разница в обработке события OnDeinit.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Как я понимаю - индикаторы не умеют торговать - т.е. обращаться к соответствующим функциям.
Могу ли я в советнике использовать возможности рисования на графике?
Почему возникло разделение на 2 типа программ? Отчего не делать все в одной используя или нет те или иные функции?
Я новичок в MQL - поясните пожалуйста.