А куда добавить? Добавил - выдало 25 ошибок.
Вот после таких высказываний прямо нагрубить хочется ...
Однако у меня в очередной раз хорошее настроение, поэтому разъясню, разжую - если после этого не поймете, то программирование не твой конёк ...
Итак:
1) нам надо масштабировать подвальный индюк, а в большинстве случаев не один - масштабирование надо сделать так, чтобы нуль был всегда по середине.
2) тут отступление надо сделать: значения подвальных могут быть совершенно различными, чтобы их масштабировать их надо привести к единому виду, так чтобы среднее их значение была равно нулю - к примеру всем известный RSI имеет значения от 0 до 100, чтобы сделать и него нуль по середине надо из всех значений вычесть 50, тогда его значения будут в диапазоне от -50 до 50.
3) чтобы сделать нуль по середине, надо чтобы верх и низ графика имел одинаковые значения по амплитуде.
4) в приведённом ранее листинге это делается следующим образом:
4.1)
Этот код выдран из индюшка у которого в подвале изображаются две линии SE и SE2. Эти четыре строчки ищут в массивах этих двух линий минимальные и максимальные индексы значений обоих линий. Глубина поиска ограничена значениями нулевого индекса (самый крайний правый бар) и максимально видимого в окне (самый левый видимый в окне бар). Почему индексы - да потому что только такую возможность даёт язык MQL4.
4.2)
Поскольку у нас две линии в индюшке, то масштабировать надо обе, т.е. нам надо найти максимальные и минимальные значения. На прошлом шаге были найдены индексы этих значений. Теперь получаем сами значения линий и сравниваем между собой, тем самым получаем абсолютные значения индикатора - максимальное и минимальное в видимом окне.
4.3)
Далее нам надо масштабировать так чтобы сверху и снизу нуля было одинаковое расстояние. Но на прошлом шаге мы определили максимальное и минимальное значение, которые могут быть разными. Этой строчкой вычисляется максимальное между найденными на прошлом шаге. Т.к. минимум у нас отрицателен, то сравнивание только абсолютные значения между собой.
4.4)
Этими строчками устанавливаются диапазон отображения подвального графика - его минимальное и максимальное значение. Чуть позже я понял, что конструкция std+/-0.1 применима только для индикаторов со значениями в диапазоне -1 ... +1. Лучше использовать следующую конструкции: для минимального значения std*0.9, для максимального std*1.1
Ну вот и всё ...
Ничего вроде сложного.
С уважением, RomFil