Помогите найти ошибку...

 
Почему пременные массива остаються равными 0, хотя промежуточная не равна ну естественно выражение то же верно считается?.


datetime Last=0,LastLim=1800,lastcheck=0;
double Max_Profit,Koef=0.00,H[],L[],P=0;
int pl=0,K,K2,i,Signal,shift;
int start()
{
i=0;
if (Bars>300)
shift=300;else shift=Bars;

if (lastcheck+24*3600<CurTime())
{

while (TimeHour(Time[shift])==1) shift--;
B14=shift;
for (shift=B14;shift>10;shift=shift-24)
{i++;
P=High[Highest(NULL,0,MODE_HIGH,24,shift)];
H[i]=P;
P=Low[Lowest(NULL,0,MODE_LOW,24,shift)];
L[i]=P;
Comment("B14=",B14,"Shift=",shift,"H=",High[Highest(NULL,0,MODE_HIGH,24,shift)],"L=",
P,H[i],L[i]);

}
lastcheck=CurTime();
B14=i;
}
 
А почему Вы думаете, что массивы автоматически ресайзятся?
Это же язык С, где все надо контролировать самому.
 
Намек понял!