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

#mql4 #mql

Вопрос:

Моя логика в моем коде прямо сейчас такова

Шаг 1. Отсканируйте 100 или более свечей без свечей из прошлого

Шаг 2. Соберите и сохраните дату всех 100, чтобы узнать максимум каждой свечи

Шаг 3. Просмотрите все данные о максимумах свечей и найдите те, которые находятся рядом друг с другом (все еще не знаю, как бы я это сделал).

Шаг 4. Сюжетная линия

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

 extern int candleCount = 100;
int totalHigh;
int FinishingTotalHigh;

int totalLow;
int FinishingTotalLow;
// ------------------------------------------------------------------ 
//| Expert initialization function                                   |
// ------------------------------------------------------------------ 
int OnInit()
  {
//---
   
//---
   return(INIT_SUCCEEDED);
  }
// ------------------------------------------------------------------ 
//| Expert deinitialization function                                 |
// ------------------------------------------------------------------ 
void OnDeinit(const int reason)
  {
//---
   
  }
// ------------------------------------------------------------------ 
//| Expert tick function                                             |
// ------------------------------------------------------------------ 
void OnTick()
  {
  totalHigh = 0;
  totalLow = 0;
  
// Initializing the variables.
   double Highest = High[0];
   double Lowest = Low[0];
      Alert("");
      Alert("");
      Alert("");
      Alert("");
      Alert("");
   // Scan the 100 candles and update the values of the highest and lowest.
   for (int i = 0; i <= candleCount; i  )
   {
     
      //Alert(i "Index Data: " High[i]);
      totalHigh = High[i]   totalHigh;
       totalLow = Low[i]   totalLow;
      
      if (High[i] > Highest) Highest = High[i];
      if (Low[i] < Lowest) Lowest = Low[i];
   }
   FinishingTotalHigh = totalHigh/candleCount;
   FinishingTotalLow = totalLow/candleCount;
   // Print the result.

   Alert("Highest price found is " Highest);
   Alert("Lowest price found is " Lowest);
   Alert("TotalHigh: " FinishingTotalHigh);
   Alert("TotalLow: " FinishingTotalLow);
   
   

  }
// ------------------------------------------------------------------  

Комментарии:

1. Вы можете отсортировать высоту свечи (вы имеете в виду высоту?), а затем просто пройтись по массиву и проверить разницу между высотами, а затем сохранить наименьшую разницу или соответствующий индекс в зависимости от того, что вам нужно…

2. @Хавьер Масиас — Что вы подразумеваете под линией ?