Проще написать вариант для iCustom(), специально, чтобы вызывать из советника, тогда на масштаб ничего влиять не будет. А в варианте для графика этот буфер вообще убрать, раз он только для советника.
А индикатор может определить, что он был вызван через iCustom()?
А зачем ему это?
А зачем ему это?
Чтобы определить: показывать или не показывать буфер
Раньше невидимые буферы можно было сделать с помощью функции IndicatorBuffers.
Еще насколько я помню невидимые буферы должны быть обязательно последними по индексам
Раньше невидимые буферы можно было сделать с помощью функции IndicatorBuffers.
Еще насколько я помню невидимые буферы должны быть обязательно последними по индексам
Так и сейчас. У меня были сомнения, что в iCustom() можно получить доступ ко всем буферам. Написал простенький скрипт, проверил. У меня есть индикатор, использующий 11 буферов, но отображаемых только четыре. Ко всем буферам можно получить доступ через iCustom()..
Почитал справку. Новичкам она не в помощь. Везде она вводит в заблуждение.
iCustom
Параметры
mode
[in] Индекс линии индикатора. Может принимать значения от 0 до 7 и соответствовать индексу, указанному при вызове функции SetIndexBuffer().
Здесь должно быть не "Индекс линии", а "Индекс буфера".
Текст "Может принимать значения от 0 до 7 и" надо заменить одним словом "Должен"
"Индекс линии" намекает, что мы можем получить доступ только к отображаемым буферам. Однако, это не так.
SetIndexBuffer
Параметры
index
[in] Номер индикаторного буфера. Нумерация начинается с 0. Номер должен быть меньше значения, объявленного в #property indicator_buffers.
Неправда, что "Номер должен быть меньше значения, объявленного в #property indicator_buffers."
Нужно написать: "Номер должен быть меньше количества буферов, используемых для расчета индикатора."
И, дать определение: "Количество буферов для расчета индикатора определяется свойством #property indicator_buffers, указывающим на количество отображаемых буферов индикатора, но, может быть увеличено путем использования функции IndicatorBuffers"
#property indicator_buffers
indicator_buffers |
int |
Количество буферов для расчета индикатора |
Следует читать "Количество отображаемых буферов индикатора"
Стиль рисования DRAW_NONE поможет. Но только в последнем билде клиентского терминала MT4
Билд 988, работает в этом смысле точно также, как и предыдущие, ничего нового в функционале DRAW_NONE не замечено. Точно так же невидимая линия влияет на масштаб видимых (в отдельном окне).
Лучше всего скрытые буферы, те ни на что не влияют, но доступны через iCustom().
Eugene1:
... линия индикатора не видна, но всё равно влияет на масштаб...
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте!
Мне надо чтобы в индикаторе одна из линий была не видна на экране и не влияла на масштаб.
В то же время советнику должен быть доступен этот буфер индикатора (просто в нём большие числа и остальные линии превращаются в одну прямую возле нуля)
Я использую: INDICATOR_CALCULATIONS для этого буфера, DRAW_NONE,
сокращаю число отрисовок при помощи indicator_plots, по сравнению с indicator_buffers.
В результате линия индикатора не видна, но всё равно влияет на масштаб.
Приведите, пожалуйста, работающий пример, как можно исключить из масштабирования один из буферов индикатора.
Спасибо за участие!