TesterEA_by_fxsaber/Experts/fxsaber/TesterEA/ZigZag.mqh

52 lines
No EOL
905 B
MQL5

#include "Tick.mqh"
struct ZIGZAG
{
private:
bool FlagUP;
int MinMax;
public:
const int MinPips;
ZIGZAG ( const int iMinPips = 0 ) : FlagUP(true), MinMax(0), MinPips(iMinPips)
{
}
bool Calc( const MqlTick &tick )
{
bool Res = false;
const TICK Tick = tick;
if (this.FlagUP)
{
if (Tick.bid > this.MinMax)
this.MinMax = Tick.bid;
else if (Res = (this.MinMax - Tick.ask >= this.MinPips))
{
this.MinMax = Tick.ask;
this.FlagUP = false;
}
}
else
{
if (Tick.ask < this.MinMax)
this.MinMax = Tick.ask;
else if (Res = (Tick.bid - this.MinMax >= this.MinPips))
{
this.MinMax = Tick.bid;
this.FlagUP = true;
}
}
return(Res);
}
double GetLastZZ( void ) const
{
return(this.MinMax * _Point);
}
};