Скачать MetaTrader 5

Фракталы массивы

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
amirjan
512
amirjan 2014.02.11 08:19 
Друзья помогите написать ! Фракталы up и low заносятся в матрицу и сравниваются, если up_old< up_new && low_old<low_new то buy, для sell наоборот. Еще фильтр по фракталам, если идут 2фрактала up подряд то выбираем больший, аналогично для low, также отсеиваются фракталы с up low одновременно.
Maxim Kyzminsky
366
Maxim Kyzminsky 2014.02.11 11:50  

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

Дано:

стат.массив double array1[3]={1,14,5}

при неком условии мы находим новое значение, к примеру 291

Вопрос:

как все значения сместить влево на 1 т.е. как их переписать что бы получилось array1[3]={14,5,291} и так при каждом новом значении мы перезаписываем весь массив.

ЗЫ или покажите ветку где это обсуждалось.Спасибо!

Maxim Kyzminsky
366
Maxim Kyzminsky 2014.02.11 12:20  
НАрод направте на правильный путь меня...где искать ответ на мой вопрос?! :)
Dmitry Fedoseev
43472
Dmitry Fedoseev 2014.02.11 12:50  
DanLett:
НАрод направте на правильный путь меня...где искать ответ на мой вопрос?! :)

Функция ArrayCopy(ar,ar,0,1);

Да в конце концов можно тупо через цикл for сместить все элементы.

Maxim Kyzminsky
366
Maxim Kyzminsky 2014.02.12 06:21  

Integer
:

Функция ArrayCopy(ar,ar,0,1);

не подходит, надо создавать еще 1 массив (т.е. в общем 2 массива) на до что бы всегда 1 был...

через for можно краткий пример...?! Спасибо

Artyom Trishkin
Модератор
77335
Artyom Trishkin 2014.02.12 06:28  
DanLett:

Integer
:

Функция ArrayCopy(ar,ar,0,1);

не подходит, надо создавать еще 1 массив (т.е. в общем 2 массива) на до что бы всегда 1 был...

через for можно краткий пример...?! Спасибо

А что же вам мешает копировать один массив сам в себя?
Alexander
2441
Alexander 2014.02.12 06:41  

Можно так

for(int cnt=2;cnt>0;cnt--)
         {
         ar[cnt]=ar[cnt-1];
         }
      ar[0]=  new; 
Maxim Kyzminsky
366
Maxim Kyzminsky 2014.02.12 07:20  

при аррейкопи выдает a1=5.110135783716587e-210 a2=-9.255965341222513e+061 a3=10.0

   double ar[3];

   if(Bid<Low[0]) //это условие для проверки
     {
      ArrayCopy(ar,ar,0,1,2); //копируем 2 элемента в массиве
      ar[2]=5.0;              //3й присваеваем некое значение
     }
   else
     {
      ArrayCopy(ar,ar,0,1,2); //тут тоже самое
      ar[2]=10.0;
     }

и вообще не смещает значения...поправте пожалуйсто меня

ЗЫ при компиляции первые две переменные 0(ноль) а последняя = либо 5 либо 10 ну по условию...а дальше начинается

"бред - a1=5.110135783716587e-210 a2=-9.255965341222513e+061 a3=10.0" откуда беруться 5.110135783716587e-210 и 9.255965341222513e+061 ?!

Maxim Kyzminsky
366
Maxim Kyzminsky 2014.02.12 10:03  
подскажите что я делаю не правильно, зарание спасибо
Ilyas
1209
Ilyas 2014.02.12 10:40  
DanLett:
подскажите что я делаю не правильно, зарание спасибо

Очень похоже на ошибку, разбираемся.
Vladimir Gomonov
8283
Vladimir Gomonov 2014.02.12 10:59  
mql5:

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