- DRAW_NONE
- DRAW_LINE
- DRAW_SECTION
- DRAW_HISTOGRAM
- DRAW_HISTOGRAM2
- DRAW_ARROW
- DRAW_ZIGZAG
- DRAW_FILLING
- DRAW_BARS
- DRAW_CANDLES
- DRAW_COLOR_LINE
- DRAW_COLOR_SECTION
- DRAW_COLOR_HISTOGRAM
- DRAW_COLOR_HISTOGRAM2
- DRAW_COLOR_ARROW
- DRAW_COLOR_ZIGZAG
- DRAW_COLOR_BARS
- DRAW_COLOR_CANDLES
DRAW_FILLING
Стиль DRAW_FILLING рисует цветную область между значениями двух индикаторных буферов. Фактически этот стиль рисует две линии и закрашивает пространство между ними одним из двух заданных цветов. Предназначен для создания индикаторов, рисующих каналы. Ни один из буферов не может содержать только пустые значения, так как в этом случае отрисовка не происходит.
Можно задавать два цвета заливки:
- первый цвет для тех областей, где значения в первом индикаторном буфере больше значений во втором индикаторном буфере;
- второй цвет для тех областей, где значения во втором индикаторном буфере больше значений в первом индикаторном буфере.
Цвет заливки можно задавать директивами компилятора или динамически с помощью функции PlotIndexSetInteger(). Динамическое изменение свойств графического построения позволяет "оживить" индикаторы, чтобы они меняли свой вид в зависимости от текущей ситуации.
Индикатор рассчитывается для всех баров, для которых значения обоих индикаторных буферов не равны 0 и не равны пустому значению. Чтобы указать, какое значение следует считать "пустым", установите это значение в свойстве PLOT_EMPTY_VALUE:
#define INDICATOR_EMPTY_VALUE -1.0
|
Отрисовка на барах, которые не участвуют в расчете индикатора, будет зависеть от значений в индикаторных буферах:
- Бары, для которых значения обоих индикаторных буферов равны 0, не участвуют в отрисовке индикатора. То есть область с нулевыми значениями не будет закрашиваться.
- Бары, для которых значения индикаторных буферов равны "пустому значению", участвуют в отрисовке индикатора. Область с пустыми значениями будет закрашиваться таким образом, чтобы соединять области со значащими значениями.
При этом важно отметить, что если "пустое значение" равняется нулю, то бары, не участвующие в расчете индикатора, также будут закрашиваться.
Количество требуемых буферов для построения DRAW_FILLING — 2.
Пример индикатора, рисующего в отдельном окне канал между двумя скользящими средними с разными периодами усреднения. Изменение цвета при пересечении средних визуально показывает смену восходящей и нисходящей тенденций. Цвета меняются случайным образом каждые N тиков. Параметр N вынесен во внешние параметры индикатора для возможности ручной установки (закладка "Параметры" в окне свойств индикатора).
Обратите внимание, первоначально для графического построения plot1 со стилем DRAW_FILLING два цвета задаются с помощью директивы компилятора #property, а затем в функции OnCalculate() новые цвета задаются случайным образом.
//+------------------------------------------------------------------+
|