Вопрос: сдвиг индексов в массивах при сдвиге индексов баров - страница 3

 

Читал я читал и ничего не понял. Зачем чесать правое ухо мизинцем левой ноги???

Всё решается тремя строками кода

int arr[4];

/********************Script program start function********************/
void OnStart()
{
   for(int i = 0; i < 10; i++)
    {
     ArrayCopy(arr, arr, 1, 0, ArraySize(arr)-1);
      arr[0] = i;
     Alert("arr[0] ", arr[0], " arr[1] ", arr[1], " arr[2] ", arr[2], " arr[3] " ,arr[3]);
    }
}/********************************************************************/


 
Alexey Viktorov:

Читал я читал и ничего не понял. .....


Да. Это точно.
 
Dmitry Fedoseev:
Да. Это точно.
Уточняю: Не понял зачем перегружать память излишним размером массива???
 
Alexey Viktorov #:
ArrayCopy(arr, arr, 1, 0, ArraySize(arr)-1);

Гениально, спасибо, помогли. Жаль в справке этого примера нет. Искал аналог функции из PineScript array.unshift(target_top, 99.54), ваш вариант просто подарок и работает быстро.

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
      double target_top[];
      
      ArrayResize(target_top,5);
      target_top[0] = 0.2;
      target_top[1] = 1.3;
      target_top[2] = 3.7;
      target_top[3] = 7.1;
      target_top[4] = 4.9;
      
      ArrayPrint(target_top);
      
      ArrayResize(target_top,5+1);
      
      ArrayPrint(target_top);
      
      ArrayCopy(target_top, target_top, 1, 0, ArraySize(target_top)-1);
      
      target_top[0] = 0.0;
      
      ArrayPrint(target_top);
      
      target_top[0] = 99.54;
      
      ArrayPrint(target_top);

  }
//+------------------------------------------------------------------+

2024.03.01 08:42:41.192 test_round (GBPUSD,H1) 0.20000 1.30000 3.70000 7.10000 4.90000

2024.03.01 08:42:41.192 test_round (GBPUSD,H1) 0.20000 1.30000 3.70000 7.10000 4.90000 4.90000

2024.03.01 08:42:41.192 test_round (GBPUSD,H1) 0.00000 0.20000 1.30000 3.70000 7.10000 4.90000

2024.03.01 08:42:41.192 test_round (GBPUSD,H1) 99.54000  0.20000  1.30000  3.70000  7.10000  4.90000


 
Konstantin Efremov #:

 Искал аналог функции из PineScript array.unshift(target_top, 99.54), 

Убогий скриптовый язык как и вся платформа вцелом. Язык явно заточен на новичков чтобы легко и быстро в 3 строчки сделать робота типа MACD Sample или индикатор Moving Average в 1-2 строчки.
Что-то серьезное - это через Ж или вообще никак. Все хранится и компилится у них на сервере, отсюда за каждый чих плати и немало. Про тесте лучше промолчать ...
Единственное что их вывозит - это эффективный пиар.

 
Alexander Sevastyanov #:

Убогий скриптовый язык как и вся платформа вцелом. Язык явно заточен на новичков чтобы легко и быстро в 3 строчки сделать робота типа MACD Sample или индикатор Moving Average в 1-2 строчки.
Что-то серьезное - это через Ж или вообще никак. Все хранится и компилится у них на сервере, отсюда за каждый чих плати и немало. Про тесте лучше промолчать ...
Единственное что их вывозит - это эффективный пиар.

он же броузерный, только для TradingView. 

весь Pine транслируется в JS и исполняется на машине клиента. Отсюда и фичи и ограничения. Ограничений больше, но фичи позволяют простые вещи делать краткими (MT этим не страдает - тут всё объёмное)

 
Maxim Kuznetsov #:

... Ограничений больше, но фичи позволяют простые вещи делать краткими  ...

+++

Язык для дилетантов, школьников. Впрочем как и сама платформа.

Причина обращения: