Puga/PugaFiles/Zone.mqh

43 lines
1.6 KiB
MQL5
Raw Permalink Normal View History

2025-05-30 16:18:30 +02:00
class Zone
{
private:
MqlRates rate[];
double close;
int ZoneNumber;
public:
double Close(string SymbolToTrade)
{
ArraySetAsSeries(rate, true);
CopyRates(SymbolToTrade, PERIOD_M1, 0, 1, rate);
return(close = rate[0].close);
}
int zone(string SymbolToTrade, ENUM_POSITION_TYPE typeHell, int counterHell, ENUM_POSITION_TYPE typeLock, int counterLock, double opLock, double AvPrice, double LastPrice)
{
if((counterLock > 0 && typeLock == POSITION_TYPE_BUY && Close(SymbolToTrade) <= opLock && Close(SymbolToTrade) >= AvPrice) || (counterLock > 0 && typeLock == POSITION_TYPE_SELL && Close(SymbolToTrade) >= opLock && Close(SymbolToTrade) <= AvPrice))
{
return(ZoneNumber = 1);//Black
}
else
if((counterLock > 0 && typeLock == POSITION_TYPE_BUY && Close(SymbolToTrade) <= LastPrice && Close(SymbolToTrade) > opLock) || (counterLock > 0 && typeLock == POSITION_TYPE_SELL && Close(SymbolToTrade) >= LastPrice && close < opLock))
{
return(ZoneNumber = 2);//Green
}
else
if((counterHell >= 2 && typeHell == POSITION_TYPE_BUY && Close(SymbolToTrade) < LastPrice) || (counterHell >= 2 && typeHell == POSITION_TYPE_SELL && Close(SymbolToTrade) > LastPrice))
{
return(ZoneNumber = 3);//Red
}
else
{
return(ZoneNumber = 0);
}
}
};
//+------------------------------------------------------------------+