876
level - номер уровня (0-31).
value - значение для указанного уровня.
Использование горизонтальных уровней бывает очень удобно в тех случаях, когда
необходимо зрительно определить находится ли индикаторная линия выше или ниже
некоторых заданных значений. Представленный ниже простой индикатор рассчитывает
разницу между максимальной и минимальной ценами бара. События на рынке
представляют интерес для пользователя (условно, в данном примере), если индикаторная
линия находится выше уровня 0.001 или ниже уровня -0.001. Пример индикатора,
отображающего разницу High и Low (linelevel.mq4).
//--------------------------------------------------------------------
// linelevel.mq4
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------- 1 --
#property indicator_separate_window // Индик. рисуется в отдельн. окне
#property indicator_buffers 1 // Количество буферов
#property indicator_color1 Red // Цвет линии
double Buf_0[]; // Открытие индикаторного массива
//--------------------------------------------------------------- 2 --
int init() // Специальная функция init()
{
SetIndexBuffer(0,Buf_0); // Назначение массива буферу
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Стиль линии
SetIndexLabel (0,"Разница High и Low");
SetLevelValue (0, 0.0010); // Задан уровень горизонт. линии
SetLevelValue (1,-0.0010); // Задан ещё один уровень
return; // Выход из спец. ф-ии init()
}
//--------------------------------------------------------------- 3 --
int start() // Специальная функция start()
{
int i, // Индекс бара
Counted_bars; // Количество просчитанных баров
Counted_bars=IndicatorCounted(); // Количество просчитанных баров
i=Bars-Counted_bars-1; // Индекс первого непосчитанного
while(i>=0) // Цикл по непосчитанным барам
{
Buf_0[i]=High[i]-Low[i]; // Значение 0 буфера на i-ом баре
if(Open[i]>Close[i]) // Если свеча чёрная..