Скачать MetaTrader 5

Можно ли программно изменить количество индикаторных буферов?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Пиши роботов на заказ. Зарабатывай с сервисом Фриланс!
Andy
564
Andy 2013.07.17 01:22 

Приветы,

Собственно вопрос в теме - если директивы компилятора устанавливают колифество буферов равным 9, можно ли изменить это число программно в коде индикатора?

#property indicator_buffers 9
#property indicator_plots 9

Количество индикаторных буферов устанавливается в 9, но кол-во отображаемых данных может быть меньше, например 3, и когда такое случается у меня отображаются на графике линии, которых быть не должно.

Просто устанавливать в 0 оставшиеся 6 пустых буферов нельзя потому из-за масштабирования все линии сжимаются в одну.

Есть идеи?

Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
  • 2010.10.25
  • Nikolay Kositsin
  • www.mql5.com
Статья о традиционных и не совсем традиционных алгоритмах усреднения, упакованных в максимально простые и достаточно однотипные классы. Они задумывались для универсального использования в практических разработках индикаторов. Надеюсь, что предложенные классы в определенных ситуациях могут оказаться достаточно актуальной альтернативой громоздким, в некотором смысле, вызовам пользовательских и технических индикаторов.
Файлы:
buffer.png 292 kb
Andy
564
Andy 2013.07.17 22:44  

Вижу просто несметные орды желающих ответить на мой вопрос ... лес рук ... ладно, похоже ничего вразумительного не дождусь, поэтому решение пока только такое :

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); // если пустые, то чтобы рандомные значения не выводились - смещаем их за пределы экрана

Вопрос решен.

Комбинатор
15923
Комбинатор 2013.07.17 22:52  

Мдааа.

Стиль  рисования DRAW_NONE + EMPTY_VALUE в значениях.

Документация по MQL5: Стандартные константы, перечисления и структуры / Именованные константы / Прочие константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Именованные константы / Прочие константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Именованные константы / Прочие константы - Документация по MQL5
Всеволод
648
Всеволод 2013.07.22 16:17  

Можно попробовать обозначить неиспользуемые как INDICATOR_CALCULATIONS

 

 https://www.mql5.com/ru/docs/constants/indicatorconstants/customindicatorproperties

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Свойства пользовательских индикаторов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Свойства пользовательских индикаторов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Свойства пользовательских индикаторов - Документация по MQL5
Andy
564
Andy 2013.07.22 23:02  

спасибо всем за ответы, но переделывать мне уже лениво :)

все равно индикатор в открытом доступе, он не для продажи, и так работает нормально

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий