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

 

Может кто проверить, работает ли ограничение отрисовки в индикаторе?

PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,r+s-1);

Уже отсюда готовый индик скачал, всё равно рисует на всю историю.

Upd разобрался. Его надо запихать в OnCalculate и задать адекватное значение (rates_total-n).

 
pavelrev:

В будние, когда есть котировки, то же самое. 

Иногда проскакивает и оно показывает то, что нужно, но при смене ТФ или поступлении новой котировки опять начинает выдавать ерунду.

Ну, если никто не в курсе, пишите автору статьи (в комменты), не откликнется - в сервисдеск.
 

Пытаюсь нарисовать шаблон мультивалютного индикатора.

Объявил буферы, инициализацировал (EMPTY_VALUE), откуда рисовать... вроде всё сделал. В OnInit. В OnCalculate пока ничего нет.

Запускаю - получаю мусор в окне индикатора на разных кусках графика.

Что не так?

upd и ещё. При изменении параметров в функции f_comment и перекомпиляции коммент не меняется, изменения вступают в силу только после того, как удалил и снова кинул индикатор на график. Это нормально?

ps перезалил файлик

Файлы:
 
Silent:

Пытаюсь нарисовать шаблон мультивалютного индикатора.

Объявил буферы, инициализацировал (EMPTY_VALUE), откуда рисовать... вроде всё сделал. В OnInit. В OnCalculate пока ничего нет.

Запускаю - получаю мусор в окне индикатора на разных кусках графика.

Что не так?

У себя при запуске этого кода, мусора не наблюдаю. Попробуйте удалить с графика все копии индикатора и загрузить их на график снова.
 
tol64:
У себя при запуске этого кода, мусора не наблюдаю. Попробуйте удалить с графика все копии индикатора и загрузить их на график снова.
По таймфреймам пощёлкайте, не всегда появляется, и не на всех тф.
 

Неделю с ним сижу, выкинул всё, только пустые массивы оставил, всё равно периодически рисует из пустых буферов... бред какой то.

 
Silent:

Неделю с ним сижу, выкинул всё, только пустые массивы оставил, всё равно периодически рисует из пустых буферов... бред какой то.

Пощёлкал по таймфреймам. По началу мусор вылез. Потом пропал и больше не воспроизводится. 

Возможно сложноуловимый микробаг. )) Но ничего страшного. Можно (даже нужно) просто более жёстко вести контроль (на всякий случай). При расчёте значений для индикаторных буферов проблем не возникнет. А там, где значения должны быть пустыми просто ещё раз указывайте пустое значение уже для конкретного элемента массива.

Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
  • 2010.10.25
  • Nikolay Kositsin
  • www.mql5.com
Статья о традиционных и не совсем традиционных алгоритмах усреднения, упакованных в максимально простые и достаточно однотипные классы. Они задумывались для универсального использования в практических разработках индикаторов. Надеюсь, что предложенные классы в определенных ситуациях могут оказаться достаточно актуальной альтернативой громоздким, в некотором смысле, вызовам пользовательских и технических индикаторов.
 
Silent:

Неделю с ним сижу, выкинул всё, только пустые массивы оставил, всё равно периодически рисует из пустых буферов... бред какой то.

Один баг нашёл:

   SetIndexBuffer(0,USDBuffer,INDICATOR_DATA);
   SetIndexBuffer(1,EURBuffer,INDICATOR_DATA);
   SetIndexBuffer(2,GBPBuffer,INDICATOR_DATA);
   SetIndexBuffer(0,xUSDBuffer,INDICATOR_CALCULATIONS); // 3
   SetIndexBuffer(1,xEURBuffer,INDICATOR_CALCULATIONS); // 4
   SetIndexBuffer(2,xGBPBuffer,INDICATOR_CALCULATIONS); // 5
Но мусора не наблюдал ни до ни после правки. Просто пустое окно.
 
tol64:

Пощёлкал по таймфреймам. По началу мусор вылез. Потом пропал и больше не воспроизводится. 

Возможно сложноуловимый микробаг. )) Но ничего страшного. Можно (даже нужно) просто более жёстко вести контроль (на всякий случай). При расчёте значений для индикаторных буферов проблем не возникнет. А там, где значения должны быть пустыми просто ещё раз указывайте пустое значение уже для конкретного элемента массива.

Хех... надо будет ещё попринтовать, где это, в INDICATOR_DATA или в INDICATOR_CALCULATIONS

Прикол в том, что после удаления индикатора и новой установки на график мусор рисуется в тех же местах, где и был. Тоже фича...

Контроль, это понятно. Визуально всё равно увижу, если врать начнёт. А вот так вызовешь какой нить индик, - и его значения пересчитывать?

Как то кривенько...

MetaDriver:

Один баг нашёл:

Но мусора не наблюдал ни до ни после правки. Просто пустое окно.

Спасибо, пропустил, пока копипастил.

Мусор появляется, нестабильно и не на всех тф (или не в зоне видимости, надо чарт влево посмотреть), но он есть.

upd его тут еще видно, должно, я так понимаю, быть по 0,000000 0,000000... везде


 
Silent:

Неделю с ним сижу, выкинул всё, только пустые массивы оставил, всё равно периодически рисует из пустых буферов... бред какой то.

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

из справки:

Инициализация массива выражением ArrayInitialize(array, init_val) не означает инициализацию этим же значением и элементов резерва, выделенного для этого массива. При последующих увеличениях размера массива array функцией ArrayResize() в пределах текущего резерва, в конец массива добавляются элементы, значения которых не определены и, чаще всего, не равны init_val.

Причина обращения: