Разные значения в окнах индикатора MACD и Alert

 
Модифицирую MACD.

Ввожу переменую:
double value[];

Вычисляю значение:
value[i] = iMA(NULL, 0, FastEMA, 0, MODE_EMA, PRICE_CLOSE, i) - iMA(NULL, 0, SlowEMA, 0, MODE_EMA, PRICE_CLOSE, i);

Отображаю значение в левом верхнем углу окна:
int init()
{
IndicatorShortName("CUSTOM_MACD");
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexBuffer(0, value);
}

Вывожу окно Alert для контроля значения:
Alert (Symbol()," ",Period(), value[i]);

Выводимые данные не совпадают. Подскажите пожалуйста: почему?
 

to_c:

Alert (Symbol()," ",Period(), value[i]);

Выводимые данные не совпадают. Подскажите пожалуйста: почему?

чему равно i ? чему равно время бара i ?

с чем сравниваете где правильный расчет?

выводимые данные не совпадают с чем?
 

поставьте одинаковую точность для двух выводов:

https://docs.mql4.com/ru/customind/IndicatorDigits

https://docs.mql4.com/ru/convert/doubletostr

 
sergeev:

чему равно i ?

Оно циклично увеличивается (i++). Это увеличение, в общем-то, и лежит в основе изменения графика в реальном времени.


sergeev:

чему равно время бара i ?

Это не имеет значения. Код MACD универсальный и работает на любом тайм-фрейме.


sergeev:

с чем сравниваете где правильный расчет?

Сравниваю я вовсе не с целью выяснить "правильное значения". Формула расчёта взята из кода MetaQuotes без изменений, а посему в правильности её сомневаться не приходится.


sergeev:

выводимые данные не совпадают с чем?

Друг с другом.
 
to_c:
Оно циклично увеличивается (i++). Это увеличение, в общем-то, и лежит в основе изменения графика в реальном времени.
Это не имеет значения. Код MACD универсальный и работает на любом тайм-фрейме.
Сравниваю я вовсе не с целью выяснить "правильное значения". Формула расчёта взята из кода MetaQuotes без изменений, а посему в правильности её сомневаться не приходится.
Друг с другом.


Раз вы такой умный, так какого ХXХХХ здесь делаете ???

Научитесь разделять пробелом ВСЕ выводимые данные, что бы не EEEEE людям, пытающемся вам помочь, мозг !!!

С праздником.

 
А при чём тут пробел?
 

Сделай так:

Alert (Symbol(),"_____",Period(),"_____", value[0]);

зы

Долбить на каждом тике Символ() и Период() нет никакой необходимости, и это достаточно сделать единожды ---- Но речь здесь не идёт об оптимизации кода.

 
Конечно не идёт!
Я сравниваю выводимые значения value, а не пробелы!!!
Люди, что вы чудите?!
 
to_c:
Конечно не идёт!
Я сравниваю выводимые значения value, а не пробелы!!!
Люди, что вы чудите?!

дайте полный код. покажем где вы в нем начудили.
 
to_c:
Конечно не идёт!
Я сравниваю выводимые значения value, а не пробелы!!!
Люди, что вы чудите?!

Повторю - Если вы такой умный зачем создавали эту тему ???

Вам пытаются помочь (Сделай так: Alert (Symbol(),"_____",Period(),"_____", value[0]);), но кроме тупого тролинга с вашей стороны 0 отдачи. Кому это надо?

(п.с. попался индивидуум не умеющий признавать собственные ошибки, а главное любую критику в свой адрес, даже конструктивную, воспринимает в штрихи,

и как таким кадрам помочь......)

 
Применение ноля вместо текущего значения i действительно исправило ситуацию.

avtomat вам большое спасибо. Вы - единственный, кто в теме.

ALXIMIKS, это я вам повторю: пробелы тут не при чём, ибо сравнивал я значения value. А для того, чтобы мозг можно было "EEEEE" - прежде всего он должен быть.
Причина обращения: