Самообучение языку MQL5 с полного нуля - страница 85

 
Renat Akhtyamov #:

Вы просто растерялись, т.к. информации через край.

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

Поройтесь в кодбазе, сопоставьте любому маленькому коду документацию и все будет

Один из самых важных комментариев. Рабочая схема, всё так и есть, сам пользуюсь уже как недельку)

 

Здравствуйте, подскажите чайнику.

Какими методами в массив можно добавить новый елемент в начало или конец массива?  А также удалить первый  или последний элемент? Что-то вроде  unshift,  shift  ,  push,  pop в джаваскрипте?  

Или я не в той теме вопрос задал?

 
odyn #:

Здравствуйте, подскажите чайнику.

Какими методами в массив можно добавить новый елемент в начало или конец массива?  А также удалить первый  или последний элемент? Что-то вроде  unshift,  shift  ,  push,  pop в джаваскрипте?  

А документацию читать не пробовали?

bool  ArrayRemove(
   void&        array[],            // массив любого типа
   uint         start,              // с какого индекса начинаем удалять
   uint         count=WHOLE_ARRAY   // количество элементов
   );
bool  ArrayInsert(
   void&        dst_array[],          // массив-приемник
   const void&  src_array[],          // массив источник
   uint         dst_start,            // индекс в массиве-приемнике для вставки
   uint         src_start=0,          // индекс в массиве-источнике для копирования
   uint         count=WHOLE_ARRAY     // количество вставляемых элементов
   );
 
odyn #:

Здравствуйте, подскажите чайнику.

Какими методами в массив можно добавить новый елемент в начало или конец массива?  А также удалить первый  или последний элемент? Что-то вроде  unshift,  shift  ,  push,  pop в джаваскрипте?  

Или я не в той теме вопрос задал?

Не в той, лучше в этой

В статическом массиве, есть здесь такие никак, тока обнулить значения в ненужных ячейках и учитывать индекс, в динамическом перезаписать в новый массив как нужно и изменить размер тока.

Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
  • 2023.09.05
  • www.mql5.com
В этой ветке я хочу начать свою помощь тем, кто действительно хочет разобраться и научиться программированию на новом MQL4 и желает легко перейти н...
 
Alexey Viktorov #:

А документацию читать не пробовали?

Для статических массивов вроде не работает.

 
odyn #:

Здравствуйте, подскажите чайнику.

Какими методами в массив можно добавить новый елемент в начало или конец массива?  А также удалить первый  или последний элемент? Что-то вроде  unshift,  shift  ,  push,  pop в джаваскрипте?  

Или я не в той теме вопрос задал?

Нет здесь такого - все собственными силами - масштабировать массив, перемещать по нему данные...

 
Valeriy Yastremskiy #:

Для статических массивов вроде не работает.

А зачем это применять в статическом массиве?

 
Alexey Viktorov #:

А документацию читать не пробовали?

Спасибо! Большое!

 
Alexey Viktorov #:

А зачем это применять в статическом массиве?

Иногда нужно убрать первый элемент, приходится сдвигать нумерацию, если лень переписать как нужно.

А так, конечно динамический массив правильней, но громоздко для меня, ресайз, сайз, ресайз)))

В общем неправильно делаю, где можно объявляю стат массив размера побольше, и иницилизирую нулем перед записью от мусора, а гоняю цикл на заведомо меньшем размере.

 
Valeriy Yastremskiy #:

Иногда нужно убрать первый элемент, приходится сдвигать нумерацию, если лень переписать как нужно.

А так, конечно динамический массив правильней, но громоздко для меня, ресайз, сайз, ресайз)))

В общем неправильно делаю, где можно объявляю стат массив размера побольше, и иницилизирую нулем перед записью от мусора, а гоняю цикл на заведомо меньшем размере.

В общем с массивами вы не дружите, а зря.

Есть такая примочка как копирование массива «сам в себя»…

Допустим имеем массив из 3 элементов и при появлении нужного значения надо нулевой удалить, а новый записать в последний индекс.

/********************Script program start function*******************/
void OnStart()
 {
  double open[3];
  CopyOpen(_Symbol, PERIOD_D1, 1, 3, open);
  ArrayPrint(open);
  ArrayCopy(open, open, 0, 1);
  open[2] = iOpen(_Symbol, PERIOD_D1, 0);
  ArrayPrint(open);
  DebugBreak();
 }/******************************************************************/

результат

2023.09.06 15:51:29.671 !!0 (GBPUSD,H1) 1.26728 1.25900 1.26208
2023.09.06 15:51:29.671 !!0 (GBPUSD,H1) 1.25900 1.26208 1.25623