Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1208

 
Maxim Kuznetsov:

а вот не надо сортировать данные как ни попадя и просто так, без глобальной цели.

из текущего проекта: берём (короткий) массив, на выходе имеем индексы элементов в нужном порядке:

void BubleSortIndex5(double &data[5],int &index[5])
{
   for(int i=0;i<5;i++)
      index[i]=i;
   for(int i=0;i<4;i++) {
      for(int j=1;j<5;j++) {
         if (data[index[i]]>data[index[j]]) {
            int tmp=index[i];
            index[i]=index[j];
            index[j]=tmp;
         }
      }
   }
}


на бОльшие массивы надо менять алгоритм сортировки (пузырёк для больших не катит) - поменяйте.

основной посыл - ну не трогайте вы исходные данные. Оперируйте или ссылками или ещё лучше индексами массивов. Иначе информация теряется, которая потом будет ох как нужна

Спасибо большое.    

".....Оперируйте или ссылками или ещё лучше индексами массивов. Иначе информация теряется, которая потом будет ох как нужна...."

Про оперирование ссылками я слышу впервые. Буду признателен если скажете где можно об этом прочитать что бы понять в чем отличие оперирования ссылками от оперирования исходными данными В учебнике Ковалева не помню такой темы.

 

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

Звуковой файл в папке SOUNDS , при выставлении  алерта файл проигрывается нормально, а в индикаторе тишина.

Или для индикаторов специальная папка со звуками нужна?


/---- Основной цикл расчёта индикатора

   for(bar=limit; bar>=0 && !IsStopped(); bar--)
     {
      Range=(high[bar]-low[bar])/_Point;
      IndBuffer[bar]=Range;

      if(Range<5)
      {
         if (prev_calculated > 0 && Flag==0)
         {
          Flag=1;
         }
      }
      if(Range>=Threshold){
         clr=0;
         if (prev_calculated > 0 && Flag==1 )
         {
          Flag=0;

           PlaySound("zummer");


         }
      }

Файлы:
 
ANDREY:

Спасибо большое за быстрый отклик. В моем случае каждое значение элемента массива неповторимо и существует в единственном экземпляре. То есть значение 5 , как и другие значения, не повторяется.

В моем случае значения 5 в не отсортированном массиве может и не быть. То есть в не отсортированном массиве некоторые ячейки могут быть не заполненными. 
Но если значения 5 в не отсортированном массиве не будет , тогда я не смогу указать значение 5 вторым параметром в функции ArrayBsearch() В эту функцию попадают только значения которые обязательно есть в не отсортированном массиве.
Спасибо за помощь

Тогда зачем вам функция ArrayBsearch(), если у вас сортировка массивов вообще не подразумевается? Чтобы найти число вам достаточно простого поочередного сравнения искомого числа с числами в ячейках массива. Если искомого числа нет, то просто вернуть фальшь.

//+------------------------------------------------------------------+
//|                                                  FindInArray.mq4 |
//|                                       Copyright 2020, © Cyberdev |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, © Cyberdev"
#property version   "1.00"
#property strict

#property script_show_inputs

#define size1 2 
#define size2 10

input double value = 5;
input int index = 0;

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int vIndex = -1;

bool searshValue(double & array2D[2][], const int _len, const int _index, const double _value) {
  int i;
  for(i = 0; i < _len; i++) {
    if(NormalizeDouble(array2D[_index][i], _Digits) == NormalizeDouble(_value, _Digits)) {
      vIndex = i;
      return true;
    }
  }
  return false;
}

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart() {
  double array[size1][size2] = {
    {10,9,8,7,6,5,4,3,2,1}, 
    {10,3,8,9,2,1,1,8,8,6}
  };
  
  if(searshValue(array, size2, index, value)) 
    Print("value1 array["+(string)index+"]["+(string)vIndex+"]: ", array[index][vIndex]);
  else
    Print("Value: "+(string)value+" not found!");
}
//+------------------------------------------------------------------+
 
Mihail Matkovskij:

Тогда зачем вам функция ArrayBsearch(), если у вас сортировка массивов вообще не подразумевается? Чтобы найти число вам достаточно простого поочередного сравнение искомого числа с числами в ячейках массива. Если искомого числа нет, то просто вернуть фальшь.

Большое спасибо. Благодаря Вам я узнал ценную для меня информацию и расширил свой кругозор и багаж знаний по MQL4

 
ANDREY:

Большое спасибо. Благодаря Вам я узнал ценную для меня информацию и расширил свой кругозор и багаж знаний по MQL4

Рад был помочь.

 
Mihail Matkovskij:

Тогда зачем вам функция ArrayBsearch(), если у вас сортировка массивов вообще не подразумевается? Чтобы найти число вам достаточно простого поочередного сравнение искомого числа с числами в ячейках массива. Если искомого числа нет, то просто вернуть фальшь.

А правильно я понимаю, что функция 

searshValue ()

Не из языка МQL4 и даже не из  МQL5 ?

 
Mihail Matkovskij:

Рад был помочь.

Побольше бы таких как Вы...... которые помогают с радостью

 
ANDREY:

А правильно я понимаю, что функция 

Не из языка МQL4 и даже не из  МQL5 ?

Посмотрите внимательно пример https://www.mql5.com/ru/forum/160683/page1208#comment_17279150 . Ничего там не нашли?... 

Вот эта функция:

bool searshValue(double & array2D[2][], const int _len, const int _index, const double _value) {
  int i;
  for(i = 0; i < _len; i++) {
    if(NormalizeDouble(array2D[_index][i], _Digits) == NormalizeDouble(_value, _Digits)) {
      vIndex = i;
      return true;
    }
  }
  return false;
}
Вам следует быть немножко внимательней!
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
  • 2020.07.09
  • www.mql5.com
В этой ветке я хочу начать свою помощь тем, кто действительно хочет разобраться и научиться программированию на новом MQL4 и желает легко перейти н...
 

Здравствуйте! Мне нужна помощь,на  этой платформе открыт счет у меня ,через брокерскую компанию,которая не хочет вывести мои средства ,что делать? с.у.Ботагоз

 
Ботагоз Битабарова:

Здравствуйте! Мне нужна помощь,на  этой платформе открыт счет у меня ,через брокерскую компанию,которая не хочет вывести мои средства ,что делать? с.у.Ботагоз

Этот ресурс не имеет никакого отношения к брокерским компаниям.

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