Скачать MetaTrader 5

Мужики, работает или нет стиль DRAW_COLORLINE в MQL4 для построения разноцветных индикаторных линий?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Eugene Myzrov
812
Eugene Myzrov  

Че-то я никак не могу понять, пытался взять из документации простой пример индикатора,
рисующего разными цветами линию по ценам закрытия баров Close.
https://www.mql5.com/ru/docs/customind/indicators_examples/draw_color_line
В MT5 этот пример скомпилировался без ошибок и нормально работает.

Далее попробовал скомпилировать этот индикатор в MT4.
Сначала компилятор ругнулся на директиву #property indicator_type1 DRAW_COLOR_LINE
Убрал лишний знак подчеркивания (заменил DRAW_COLOR_LINE на DRAW_COLORLINE) и компилятор известил меня, что ошибок нет.
Положил индикатор на график, но он ничего не рисует, и главное никакой реакции в логах.

Помогите разобраться, работает стиль DRAW_COLORLINE в MT4 или нет?

TarasBY
1739
TarasBY  

Отсюда:

indicator_typeN

int

Стиль рисования индикатора. N - номер графической серии, нумерация с 1

в новой версии справки:

indicator_typeN

int

Вид графического построения, указываемый с помощью значения из ENUM_DRAW_TYPE. N - номер графической серии, нумерация с 1

В обоих вариантах обращение к стилям рисования:

Константа

Значение

Описание

DRAW_LINE

0

Простая линия

DRAW_SECTION

1

Отрезки между непустыми значениями линии

DRAW_HISTOGRAM

2

Гистограмма

DRAW_ARROW

3

Стрелки (символы)

DRAW_ZIGZAG

4

Отрезки между непустыми значениями чётной и нечётной линий (зигзаг)

DRAW_NONE

12

Отсутствие какого-либо рисования

DRAW_COLOR_LINE в этом списке отсутствует (впервые слышу).

НО, для раскраски линий используется другое свойство:

indicator_colorN

color

Цвет для вывода линии N, где N - номер графической серии; нумерация с 1

и существует оно уже в MQL4 давно.

Eugene Myzrov
812
Eugene Myzrov  
Стиль DRAW_COLOR_LINE действительно отсутствует в этом списке, поскольку этот стиль из арсенала MQL5. Но вот стиль DRAW_COLORLINE компилятор с MQL4 понимает без проблем. Да вы сами попробуйте начните вводить в редакторе слово DRAW_ и редактор подскажет и предложит на выбор DRAW_COLORLINE или DRAW_COLORCANDLE.

Проблема в том, что пример из документации индикатора, рисующего разными цветами линию по ценам закрытия баров Close, изначально подготовленный для MQL5, после небольшой правки  (замены стиля DRAW_COLOR_LINE на DRAW_COLORLINE) компилируется без ошибок в терминале MT4, а работать отказывается. Ссылка на пример из документации индикатора, рисующего разными цветами линию по ценам закрытия баров Close https://www.mql5.com/ru/docs/customind/indicators_examples/draw_color_line


У меня вопрос, если компилятор не ругается на файл *.mq4, то почему не работает скомпилированный без ошибок файл *.ex4?

Я так подозреваю, что разработчики внедрили в язык MQL4 почти весь новый синтаксис языка MQL5, а реализацию оставили на "потом", т.е. новый компилятор с MQL4 понимать-понимает новые конструкции языка (в том числе и новый стиль DRAW_COLORLINE),  а код для них строить не умеет. Если это действительно так, то пусть разработчики об этом честно скажут, чтобы не вводить в заблуждение пользователей языка MQL4.
Не отсюда ли и различие в названии стилей DRAW_COLOR_LINE для MQL5 и DRAW_COLORLINE для MQL4?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий