Please, read this topic (https://www.mql5.com/en/docs/standardlibrary/technicalindicators/cindicators/cindicator)
You forgot to call method
imacd.Refresh(OBJ_ALL_PERIODS);
You should call Refresh method every time you want to get the most fresh data of indicator.
Documentation on MQL5: Standard Library / Classes for working with Indicators / Base classes / CIndicator
- www.mql5.com
Standard Library / Classes for working with Indicators / Base classes / CIndicator - Documentation on MQL5
alexvd:
Please, read this topic (https://www.mql5.com/en/docs/standardlibrary/technicalindicators/cindicators/cindicator)
You forgot to call method
You should call Refresh method every time you want to get the most fresh data of indicator.
Thank you very much ,i feel technical class is easy to use .
l like mql5!

You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
generaly , if you want to get indicator data, you can use the code such as:
double macd[];
int macdHandle=iMACD(Symbol(),PERIOD_CURRENT,12,26,9,PRICE_CLOSE);
ArraySetAsSeries(macd,true);
CopyBuffer(macdHandle,0,0,100,macd);
printf("%s %f %f %f",Symbol(),macd[0],macd[1],macd[2]);
now ,l see class CiMACD that is technical indicator class ,in order to get data from it ,
i use the code such as:
CiMACD imacd;
imacd.Create(NULL,PERIOD_CURRENT,12,26,9,PRICE_CLOSE);
printf("%d ,%d ,%d",imacd.FastEmaPeriod(),imacd.SlowEmaPeriod(),imacd.SignalPeriod());
printf("%f, %f",imacd.Main(0),imacd.Signal(0));
return(0);
but the result is that imacd.main(0) and imacd.Signal(0) are empty,i study help mq5 referances and have
no resolution ,l wish someone can help me ,thank you !