[MQL4] Функции размера свечи и тела свечи

romanzif

Постоялец
Команда форума
Администратор
Форекс робот VolnaFX
Монет
23,220
Если вы разрабатываете советник на MQL4 в котором нужно замерять размер свечи с тенями или тела свечи, то вам могут пригодиться эти две простые функции.

Например можно добавить фильтр если размер свечи больше или меньше определенного значения, то пропускать вход.

Код:
//+------------------------------------------------------------------+
double CandleSize(int shift) // размер свечи от Хай до Лоу в пипсах
{
   return(High[shift] - Low[shift]); // в функцию передаём какую свечу измерять
}
//+------------------------------------------------------------------+
double CandleBodySize(int shift) // возвращает размер тела свечи в пипсах
{
   if (Open[shift] > Close[shift]) // если свеча медвежья 
   {
      return(Open[shift] - Close[shift]);       
   }
  
   if (Open[shift] < Close[shift]) // если свеча бычья
   {
      return(Close[shift] - Open[shift]);       
   }
  
   return(Point); // если у свечи Открытие = Закрытие то возвращаем 1 пипс
}
//+------------------------------------------------------------------+
 

Konung

Новенький
Форумчанин
Монет
752
Роман, я бы функцию сократил до одной строчки и получал бы целое значение
(н-р: 0.9930-0.9926=0.0004)
double CandleBodySize(int shift) возвращает 0.0004
int CandleBodySize(int shift) возвращает 4
Хотя все зависит от контекста решаемой задачи

int CandleBodySize(int shift) // возвращает размер тела свечи в пипсах
{
return(MathAbs(Open[shift] - Close[shift])/Point);
}
//+------------------------------------------------------------------+
 

romanzif

Постоялец
Команда форума
Администратор
Форекс робот VolnaFX
Монет
23,220
Хорошее решение, спасибо.
Часто забываю про MathAbs.
 

Сигналы

Заработок онлайн

Верх