43 lines
1.6 KiB
MQL5
43 lines
1.6 KiB
MQL5
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);
|
|
}
|
|
}
|
|
};
|
|
//+------------------------------------------------------------------+
|