По мере загрузки истории, как будет заполняться массив?

 

Объясните, пожалуйста, по мере загрузки истории и при последующем приходе нового бара, как будет заполняться массив в следующей ситуации:


static datetime prevtime=0;
int start()
{//1
if(prevtime == Time[0]) return(0);
prevtime = Time[0];
int limit;
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;

double GOLD[10][4];int i=0;

for(i=0; i<limit; i++)
{//2
GOLD[i][0]= iOpen("GОLD",PERIOD_M1,i);
GOLD[i][1]= iClose("GОLD",PERIOD_M1,i);
GOLD[i][2]= iHigh("GОLD",PERIOD_M1,i);
GOLD[i][3]= iLow("GОLD",PERIOD_M1,i);

}//2


1) Если массив имеет размер 10*4 по мере загрузки истории при старте будут ли в массив переписываться значения при каждом шаге, или только после загрузки всей истории запишутся последние 10 значений?
2) При последующей работе по приходу нового бара происходит реверсивный сдвиг всех значений в массиве на 1 и запись пришедшего нового значения на освободившееся место, или без сдвига и изменений в массиве перезапись только одного пришедшего нового значения бара, или полная перезапись всего массива по 10 последним барам?

 
Объявление static требуется только на локальном уровне (внутри функции).
Ваш код будет производить кучу ошибок с выходом за границы массива.
1) В данном примере (в вашем коде) нельзя сказать ни да, ни нет. Вставтьте распринтовку и смотрите логи , при этом периодически подкачивайте историю в глубину (конпка "Home")
2) Ничего сдвигаться не будет, автоматическое измнение массивов возможно только для тех массивов, которые связаны с индикаторными буферами функцией SetIndexBuffer(номер_буфера , имя_массива).