Помогите с сортировкой массива!

 

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

Этим индикатором пытался более встречающиеся уровни на пути пары, но ничего не вышло...

#property indicator_chart_window

extern int MaxLimit = 1000;
int i, z, f, q, n, j, mass, p1, p2, p;
double ysrednenie=0.005;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init(){return(0);}
int start()
  {
   int handle1 = FileOpen("OneLevels.txt", FILE_CSV|FILE_WRITE, '\t');
   int handle = FileOpen("Levels.txt", FILE_CSV|FILE_WRITE, '\t');
   double d1 = Low[iLowest(NULL, 0, MODE_LOW, MaxLimit, 0)];
   double d2 = High[iHighest(NULL, 0, MODE_HIGH, MaxLimit, 0)];
   for (double d = d1; d <= d2; d += Point)
     {
       double a = 0.0;
       for(int o = 0; o < MaxLimit; o++)
           if(d > Low[o] && d < High[o])
               a+=1;
     } 
     return(0);
     string numbers=DoubleToStr(d,Digits);
  string mass1[] = numbers;
    for (int k=0; k<ArraySize(mass1); k++)
     {
      FileWrite(handle, mass1[k]); 
      }
       double srednee = Ask;
     z=1;f=0;
while(z<=n) 
    {
        for(q=z;q<=n;q++)
        {
        if((MathAbs(mass1[i][0]-mass1[i+f+1][0]))<ysrednenie)
            {
             f=f+1;
             mass[f][0]=mass1[z+1+f][0];
                     mass[f][1]=mass1[z+1+f][1];
         }
         }
            for (j=2; j<=f; j++)
            { 
            for (i=1; i!=j; i++)
                 {
             if (mass[i][1]<mass[i+1][1])
                  {
                     p=mass[i][0];p1=mass[i][1];
                      mass[i][0]=mass[i+1][0];mass[i][1]=mass[i+1][1];
                      mass[i+1][0]=p;mass[i+1][1]=p1;
                  }
            }
            }
                p2=p2+1;
                ArraySort[p2]=mass[1][0];
        z=z+f;
        f=0;
        
    }
    
FileWrite (handle1, "Первая группа: ");
p=0;
for(j=1; j<p2; j++)
{
if(srednee>ArraySort[j])
FileWrite (handle1, ArraySort[j]" ,");
if(srednee<ArraySort[j])
{
if(p==0) 
FileWrite (handle1, "Вторая группа: ");
p=1;
FileWrite (handle1, ArraySort[j]", ");
}
}
            FileClose (handle1);
            FileClose (handle);
        return(0);
  }
 
string mass1[] = numbers;
 

Нет это не помогает, сделал так:

double numbers=NormalizeDouble(d,Digits);

int q;
double mass1[1000];
mass1[q]=numbers;

Но все равно ничего не работает, в чем же проблемы кода а?
 
Na100yaschiy:

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

Этим индикатором пытался более встречающиеся уровни на пути пары, но ничего не вышло...

#property indicator_chart_window

extern int MaxLimit = 1000;
int i, z, f, q, n, j, mass, p1, p2, p;
double ysrednenie=0.005;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init(){return(0);}
int start()
  {
   int handle1 = FileOpen("OneLevels.txt", FILE_CSV|FILE_WRITE, '\t');
   int handle = FileOpen("Levels.txt", FILE_CSV|FILE_WRITE, '\t');
   double d1 = Low[iLowest(NULL, 0, MODE_LOW, MaxLimit, 0)];
   double d2 = High[iHighest(NULL, 0, MODE_HIGH, MaxLimit, 0)];
   for (double d = d1; d <= d2; d += Point)
     {
       double a = 0.0;
       for(int o = 0; o < MaxLimit; o++)
           if(d > Low[o] && d < High[o])
               a+=1;
     } 
     return(0);

А почему он должен писать. Доходит до return(0); и все.

 
Na100yaschiy:

Нет это не помогает, сделал так:

double numbers=NormalizeDouble(d,Digits);

int q;
double mass1[1000];
mass1[q]=numbers;

Но все равно ничего не работает, в чем же проблемы кода а?

Если не помагает, сделайте как и было;-)

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