Можно ли программно изменить количество индикаторных буферов?
Вижу просто несметные орды желающих ответить на мой вопрос ... лес рук ... ладно, похоже ничего вразумительного не дождусь, поэтому решение пока только такое :
CSymbol * s; s = Currencies.At(0); if (s) SetIndexBuffer(0, Currency1, INDICATOR_DATA); s = Currencies.At(1); if (s) SetIndexBuffer(1, Currency2, INDICATOR_DATA); // если данные для буфера не пустые - индексируем его int maxBars = 0 - TerminalInfoInteger(TERMINAL_MAXBARS); s = Currencies.At(0); if (!s) PlotIndexSetInteger(0, PLOT_SHIFT, maxBars); s = Currencies.At(1); if (!s) PlotIndexSetInteger(1, PLOT_SHIFT, maxBars); // если пустые, то чтобы рандомные значения не выводились - смещаем их за пределы экрана
Вопрос решен.
Мдааа.
Стиль рисования DRAW_NONE + EMPTY_VALUE в значениях.
- www.mql5.com
Можно попробовать обозначить неиспользуемые как INDICATOR_CALCULATIONS
https://www.mql5.com/ru/docs/constants/indicatorconstants/customindicatorproperties
- www.mql5.com
спасибо всем за ответы, но переделывать мне уже лениво :)
все равно индикатор в открытом доступе, он не для продажи, и так работает нормально
Приветы,
Собственно вопрос в теме - если директивы компилятора устанавливают колифество буферов равным 9, можно ли изменить это число программно в коде индикатора?
Количество индикаторных буферов устанавливается в 9, но кол-во отображаемых данных может быть меньше, например 3, и когда такое случается у меня отображаются на графике линии, которых быть не должно.
Просто устанавливать в 0 оставшиеся 6 пустых буферов нельзя потому из-за масштабирования все линии сжимаются в одну.
Есть идеи?