Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Создавай интересные темы на форуме по автоматическому трейдингу!
Danogas
10
Danogas 2013.04.26 05:02 

Здравствуйте, коллеги! Помогите, пожалуйста решить задачку. Хочу создать массив, в который бы занеслись максимумы и минимумы последних Count недель и Count дней.

Вот чего наваял)))

void FindLevels()

   {

    double Lev[];                                                                                                  создаю массив

    for (int i=1;i<=Count+1;i++)                                                                           записываю первую половину массива (недельные хай и лоу)

        {double H=NormalizeDouble(iHigh(NULL,Period_W1,i),Digits);                               определяю хай

         double L=NormalizeDouble(iLow(NULL,Period_W1,i),Digits);                                лоу

         Lev[i*2-2]=H;                                                                                            заношу в массив

         Lev[i*2-1]=L;

        }

    for (i=Count+1;i<=Count*2;i++)                                                                     вторая половина массива (дневные хай/лоу)

        {double h=NormalizeDouble(iHigh(NULL,Period_D1,i-Count),Digits);

         double l=NormalizeDouble(iLow(NULL,Period_D1,i-Count),Digits);

         Lev[i*2-2]=h;

         Lev[i*2-1]=l;

        }

     Alert(ArraySize(Lev));                                                                                      проверяю результат((((((((((((((((

И как не ломал голову - Alert все равно возвращает 0. Т.е. данные в массив не заносятся и он остается пустым. 

Константин
66
Константин 2013.04.26 05:30  
ArrayResize в помощь
Danogas
10
Danogas 2013.04.26 05:35  
dualbit:
ArrayResize в помощь

То есть перед тем как заносить данные в массив, надо ресайз делать на 2 элемента?
costy_
2456
costy_ 2013.04.26 05:36  
Danogas:

То есть перед тем как заносить данные в массив, надо ресайз делать на 2 элемента?


ага, сколько баров хай лоу

//+------------------------------------------------------------------+
void FindLevels()
  {
   double Lev_W1[], Lev_D1[];//создаю массив
   ArrayResize(Lev_W1,iBars(Symbol(),PERIOD_W1));
   ArrayResize(Lev_D1,iBars(Symbol(),PERIOD_D1));
//----
   for(int i=0;i<iBars(Symbol(),PERIOD_W1)-1;i++)//записываю первую половину массива(недельные хай и лоу)
     {
      double H=NormalizeDouble(iHigh(NULL,PERIOD_W1,i),Digits);//определяю хай
      double L=NormalizeDouble(iLow(NULL,PERIOD_W1,i),Digits);//лоу
//----
      Lev_W1[i]=H;//заношу в массив
      Lev_W1[i]=L;
     }
//----
   for(i=0;i<iBars(Symbol(),PERIOD_D1)-1;i++)//вторая половина массива(дневные хай/лоу)
     {
      double h=NormalizeDouble(iHigh(NULL,PERIOD_D1,i),Digits);
      double l=NormalizeDouble(iLow(NULL,PERIOD_D1,i),Digits);
//----
      Lev_D1[i]=h;
      Lev_D1[i]=l;
     }
//----
   Alert("Lev_W1  "+ArraySize(Lev_W1));
   Alert("Lev_D1  "+ArraySize(Lev_D1));
  }
//+------------------------------------------------------------------+
Danogas
10
Danogas 2013.04.26 05:45  
costy_:


ага, сколько баров хай лоу

 


Ну так много баров мне не надо)) А за подсказку с ресайзом всем СПАСИБО))) Сработало)))

ArrayResize(Lev,ArraySize(Lev)+2); 

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