Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Спасибо, то, что нужно
За исключением одного "но" - помогите выбраться из 3 сосен - осталось не понятно как именно (или какие именно) буферы связаны с данным рядом баров или линией ?
Например, если мы в индикатор введем параметр задающий "Рисовать бары или линию" для первого значения (ряда_баров/линии) индикатора, то что ?
при переключении с баров на линию произойдет смещение буферов по отношению к индексам ?
остался открытым вопрос "Как буфер "привязан" к конкретной линии/ряду_баров индикатора ?"
Стили рисования в MQL5
...
При наличии нескольких типов графических построений в ваших индикаторах, порядок индексов буферов при связывании индикаторных буферов с массивами при помощи функции SetIndexBuffer(), должен быть организован в порядке возрастания в соответствии с буферными паттернами.
При использовании дополнительных буферов для сохранения промежуточных данных, необходимых для вычислений, эти дополнительные буферы должны быть связаны при помощи функции SetIndexBuffer() после всех буферов, предназначенных для отображения.
...
При наличии нескольких типов графических построений в ваших индикаторах, порядок индексов буферов при связывании индикаторных буферов с массивами при помощи функции SetIndexBuffer(), должен быть организован в порядке возрастания в соответствии с буферными паттернами.
При использовании дополнительных буферов для сохранения промежуточных данных, необходимых для вычислений, эти дополнительные буферы должны быть связаны при помощи функции SetIndexBuffer() после всех буферов, предназначенных для отображения.
Исходя из этого, правильно ли сделать вывод:
"Нельзя сделать программное переключение типа отрисовки одной из "линий" индикатора, затрагивающее буфферные патерны", так ?
Т.е. нельзя одну из линий индикатора отрисовать барами ( и наоборот) при смене параметра индикатора.
Правильный вывод ?
Если да, то как обойти это ограничение ?
Это, имхо и к сожалению, всего лишь привязка МАССИВА_ДАННЫХ к 0 буферу
А вот буфер к номеру линии/ряда_отображения индикатора ЯВНО не понятно как привязать
Исходя из этого, правильно ли сделать вывод:
"Нельзя сделать программное переключение типа отрисовки одной из "линий" индикатора, затрагивающее буфферные патерны", так ?
Не понял.
Nik107:
Т.е. нельзя одну из линий индикатора отрисовать барами ( и наоборот) при смене параметра индикатора.
При смене параметра индикатора происходит переиницилизация индикатора.
Все свойства буферов и параметры их отображения находятся в OnInit() , так, что все в ваших руках :)
Это, имхо и к сожалению, всего лишь привязка МАССИВА_ДАННЫХ к 0 буферу
А вот буфер к номеру линии/ряда_отображения индикатора ЯВНО не понятно как привязать
Для невнимательных повторяю, найдите 6 отличий в этих двух кодах:
ЗЫ ладно ещё более локализую различия
//--- вот этот код указывает на 0 буфер indicator_label1 indicator_type1 indicator_color1 indicator_style1 indicator_width1
//--- вот этот код указывает на 1 буфер indicator_label2 indicator_type2 indicator_color2 indicator_style2 indicator_width2
ЗЗЫ а теперь ещё более локально
//--- 0 1 1 1 1 1
//--- 1 2 2 2 2 2
Действительно, сразу не понял в чем задача. Тогда может так:
Так же как и в червёрке рисуют разноцветный буффер. Создаёте два буфера. Обоим указываете уровень нерисуемого значение.
и двумя чередующимися буферами отрисовываете. Как только какой-то из буферов не нужен, ему присваиваете значение указанное в PLOT_EMPTY_VALUE.
таким образом видимым в любой момент будет только один буффер.
(под буфером баров я подразумеваю объеденённые в одно понятие 5 или 4 массива данных)
В пятерке не нужно создавать два буфера для отрисовки цветов, для этого достаточно создать один буфер который хранит индекс цвета. Но для этого нужно использовать соответствующее свойство
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
Посмотрите как написан индикатор TTrendMagic там для расчета всего один буфер, а рисует разным цветом.
Количество цветов задаеться этими свойствами
PLOT_COLOR_INDEXES
Количество цветов
int
PLOT_LINE_COLOR
Индекс буфера, содержащего цвет отрисовки
color модификатор=номер индекса цвета
Советую почитать статьи:
Построение кода индикаторов с несколькими индикаторными буферами для начинающих
Цветные индикаторы - создание и применение
Как написать индикатор на основе другого индикатора
Построение мультивалютного индикатора с применением множества промежуточных индикаторных буферов
Стили рисования в MQL5
Создание индикатора с возможностями графического управления
Как написать индикатор рисующий:
2. и линии в том же окне
Повторяю "на пальцах": Нужно чтобы в окне одно значение отображалось барами, другие линиями. Свойства отображения должны задаваться ТОЛЬКО ПРОГРАММНО.
В пятерке не нужно создавать два буфера для отрисовки цветов, для этого достаточно создать один буфер который хранит индекс цвета. Но для этого нужно использовать соответствующее свойство