# Problem with Average of N numbers

507

I have this following code volume average. But its showing wrong data & data is changing in every tick into really big larger value. Not sure what is the problem here.

```int A = 0, HTP[2000];
for(int k=0;k<=13;k++)
{
startbarindex[k] = iBarShift(P[k],PERIOD_M1,(iTime(P[k],PERIOD_D1,Bar)));

for(int p = 1; p <= startbarindex[k]; p++)
{
HTP[p] = (int) iVolume(P[k],PERIOD_M1,p);
A += HTP[p];
}
Average[k] = (int) A / startbarindex[k];
}```

Thank you in advance.

15592

1. Set A to zero inside the k loop.
2. Unless you use HTP[] elsewhere, remove it and sum directly to A.
4908

iVolume returns a long, so you should change A to a long and remove the first cast (I would also change the Average array to be long and remove the second cast)

```for(int k = 0; k <= 13; k++)
{
long A = 0;

startbarindex[k] = iBarShift(P[k], PERIOD_M1, iTime(P[k], PERIOD_D1, Bar));

for(int p = 1; p <= startbarindex[k]; p++)
{
A += iVolume(P[k], PERIOD_M1, p);
}
Average[k] = A / startbarindex[k];
}```
507

jamescater:

iVolume returns a long, so you should change A to a long and remove the first cast (I would also change the Average array to be long and remove the second cast)

Thank you both WHRoeder & jamescater