iMA does not return the right value

 

When I call an indicator like the simple moving average it's not the same as the line shows on the chart.

Here's my code,


Alert("Symbole : ", _Symbol);
Alert("Timeframe : ", PERIOD_CURRENT);
int handle = iMA(_Symbol, PERIOD_CURRENT, 21, 0, MODE_SMA, MODE_CLOSE);
double ma_arr[];
CopyBuffer(handle, 0, 1, 1, ma_arr);
Alert(ma_arr[0]);

For example here, the Alert shows 131,960 while the line shows 132,073. I already check if the indicator is the same one as the one in the code and I also know it's not an index problem because the value printed is not the one on any af the bar of the chart.

 
iamtitouche: When I call an indicator like the simple moving average it's not the same as the line shows on the chart.Here's my code, For example here, the Alert shows 131,960 while the line shows 132,073. I already check if the indicator is the same one as the one in the code and I also know it's not an index problem because the value printed is not the one on any af the bar of the chart.

Your code is getting the current bar, which is still incomplete and constantly changing the close price. Consider the previous bar instead which has already closed and no longer changes.

Also, show a screenshot of how you you are reading the values on the chart.

 

There might be also missing ArraySetAsSeries(true) – this way you will be ensured that the index you use is counted as series of bars (so 0 is the current one and 1 is the last closed etc).

Right now, it’s possible that you get the verse first bar in the history – which is of course completely useless.