mql5/Include/Indicators/Donchian.mqh

37 lines
865 B
MQL5
Raw Permalink Normal View History

2025-08-16 12:30:04 -04:00
class CDonchian
{
private:
string m_symbol;
ENUM_TIMEFRAMES m_tf;
int m_period;
public:
CDonchian(): m_symbol(""), m_tf(PERIOD_CURRENT), m_period(20) {}
bool Init(const string symbol, const ENUM_TIMEFRAMES tf, const int period)
{
m_symbol = symbol; m_tf = tf; m_period = MathMax(1, period);
return true;
}
double Upper(const int shift)
{
int count = m_period;
double maxH = -DBL_MAX;
for(int i=0;i<count;i++)
{
double h = iHigh(m_symbol, m_tf, shift+i);
if(h>maxH) maxH=h;
}
return maxH;
}
double Lower(const int shift)
{
int count = m_period;
double minL = DBL_MAX;
for(int i=0;i<count;i++)
{
double l = iLow(m_symbol, m_tf, shift+i);
if(l<minL) minL=l;
}
return minL;
}
};