Вопросы от "чайника" - страница 268

 
DC2008:

Не уверен, но скорее всего из-за этого: 

У меня нет ArrayResize, для INDICATOR_DATA и INDICATOR_CALCULATIONS размер устанавливает терминал, и рисует с 0-го бара


Тогда получается, что не работают все ArrayInitialize(массив,EMPTY_VALUE); даже для нулевого бара?



 
Silent:

У меня нет ArrayResize, для INDICATOR_DATA и INDICATOR_CALCULATIONS размер устанавливает терминал, и рисует с 0-го бара

У Вас то может и нет, а вот массивы динамические и на каждом таймфрейме разное количество баров! Переходя с одного на другой изменяются размеры массивов (это делается без Вашего участия) и Вы видите мусор.

Документация по MQL5: Доступ к таймсериям и индикаторам / Bars
Документация по MQL5: Доступ к таймсериям и индикаторам / Bars
  • www.mql5.com
Доступ к таймсериям и индикаторам / Bars - Документация по MQL5
 
Silent:

Тогда получается, что не работают все ArrayInitialize(массив,EMPTY_VALUE); даже для нулевого бара?

В Вашем случае - это последний элемент массива (хоть и находится на 0 баре), т.к. по-умолчанию индексация идёт слева на право.

 
DC2008:

У Вас то может и нет, а вот массивы динамические и на каждом таймфрейме разное количество баров! Переходя с одного на другой изменяются размеры массивов (это делается без Вашего участия) и Вы видите мусор.

Вроде логично. Тогда инициализация индикаторных буферов в ините вообще бессмысленна, всё надо в OnCalculate делать

DC2008:

В Вашем случае - это последний элемент массива (хоть и находится на 0 баре), т.к. по-умолчанию индексация идёт слева на право.

точно, не перевернул ещё.

 
Спасибо всем!
 

Исправил ошибку, перевернул массивы, всяко изгалялся с ArrayInitialize (пока оставил)...

в ините, похоже, от мусора избавится не реально. Его даже PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,countBars); не останавливает, может в начале графика появится, может в конце.

Оставлю в прицепе, может разработчики заглянут.

PS но появление мусора в одном и том же месте на графике после удаления индикатора и/или перекомпиляции - это жесть.

такая красота...


Файлы:
 
Silent:

Исправил ошибку, перевернул массивы, всяко изгалялся с ArrayInitialize (пока оставил)...

в ините, похоже, от мусора избавится не реально. Его даже PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,countBars); не останавливает, может в начале графика появится, может в конце.

Оставлю в прицепе, может разработчики заглянут.

PS но появление мусора в одном и том же месте на графике после удаления индикатора и/или перекомпиляции - это жесть.

такая красота...

Вот так, вроде работает как Вам надо:

void OnDeinit(const int reason)
  {
   ArrayResize(USDBuffer,1);
   ArrayResize(EURBuffer,1);
   ArrayResize(GBPBuffer,1);
   return;
  }
 
DC2008:

Вот так, вроде работает как Вам надо:

Не, так тоже мусорит, по цифрам в левом верхнем углу сразу видно.

Заработало чисто после переноса этих строк в OnCalculate

   ArrayInitialize(USDBuffer,EMPTY_VALUE);
   PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,countBars);
   ArrayInitialize(EURBuffer,EMPTY_VALUE);
   PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,countBars);
   ArrayInitialize(GBPBuffer,EMPTY_VALUE);
   PlotIndexSetInteger(2,PLOT_DRAW_BEGIN,countBars);

Ваша версия, похоже, правильная. Мусор из-за авторесайза массивов. И вроде даже понятно, почему он повторяется.

Если терминал меняет размер, скажем, с 1 000 до 10 000, он выделяет один и тот же кусок неочищенной памяти, и тут хоть заперезагружай индикатор - с 1 001-ой по 9 999-ую ячейки как были с левыми значениями, так и остаются.

upd пока одна непонятка осталась: почему при изменении чего-нить в функции f_comment (цвет менял) и последующей компиляции изменения не применяются до перезагрузки индика в терминале.

Файлы:
 
Возможно ли построить в отдельном окне свечной график параметров какого-то инструмента? Например  у брокера "Открытие"  есть инструмент  RTS-9.13 и для него построить график ордеров на покупку,  значения которых отображаются в окне "обзор рынка"
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
vicleo:
Возможно ли построить в отдельном окне свечной график параметров какого-то инструмента? Например  у брокера "Открытие"  есть инструмент  RTS-9.13 и для него построить график ордеров на покупку,  значения которых отображаются в окне "обзор рынка"
Брокера и попросите).
Причина обращения: