Запись bid в массив. Помогите пожалуйста!

 

Здравствуйте. Помогите пожалуйста!

Задача: Записать Bid в статический массив, код для mt4.

Алгоритм: По приходу нового бида записать в M[0] -бид, соответственно  M[1] - значение бида на прошлом тике.

Вот что у меня получилось. Правильно ли произведена запись в массив?

  

if(ArraySize(mas)==0)//массив с нулевого размера
     {
      ArrayResize(mas,9,0);//изменяем размер массива(9 элементов)
     }
   if(ArraySize(mas)==9)//массив не нулевой
     {
      for(int i=8;i>=0;i--)//циклом пройдемся от максимального до минимального элемента
        {
         if(i>=1)
           {
            mas[i]=mas[i-1];//присваиваем i-элементу предыдущее значение
           }
         if(i==0)//если первый элемент
           {
            mas[0]=Bid;//присваиваем нулевому элементу bid
           }
        }
     }
Файлы:
 
да правильно.
однако проще сразу обьявить массив определенной размерности. 
double mas[9];
for(int i=8;i>0;i--) mas[i]=mas[i-1];
mas[0]=Bid;
 
Спасибо, за ответ. Подскажите насколько этот код надежен, не будет ли пропускать тики?
 
Anna Cvarc:
Спасибо, за ответ. Подскажите насколько этот код надежен, не будет ли пропускать тики?
Если будете запускать из OnTick, тики пропускаться не будут. Если у вас в OnTick еще какой-то код лежит, особенно, если со Sleep(), вызывайте RefreshRates() перед запросом котировок.

RefreshRates(); // обновляем данные по Bid
mas[0]=Bid

Если будет что-то непонятно, можете найти меня в скайпе, он есть в профиле. Помочь девушкам в программировании - святое дело ))
 
Alexey Volchanskiy:
Если будете запускать из OnTick, тики пропускаться не будут. Если у вас в OnTick еще какой-то код лежит, особенно, если со Sleep(), вызывайте RefreshRates() перед запросом котировок.

RefreshRates(); // обновляем данные по Bid
mas[0]=Bid

Если будет что-то непонятно, можете найти меня в скайпе, он есть в профиле. Помочь девушкам в программировании - святое дело ))
 OnTick при первом запросе ( исполнении) выполнит всё что у вас в коде и функциях, если будут тики при исполнении он пропустит и только как всё закончено вернется к событию  OnTick :)
 
Пишите данные в циклический буфер и не мучайтесь с копированием по массивам
 
Maxim Kuznetsov:
Пишите данные в циклический буфер и не мучайтесь с копированием по массивам
А как это сделать? Опишите в общих чертах.
Причина обращения: