Below code is buggy. Anyone here can solve the Sidus-EMA.mq4 attached by GreatYves.
if (
( // Conditions for up signal for EMA-Sidus crosses
(( FasterEMAnow > fasterSidusEMAnow && FasterEMAnow > slowerSidusEMAnow ) ||
( SlowerEMAnow > fasterSidusEMAnow && SlowerEMAnow > slowerSidusEMAnow )) &&
( FasterEMAprevious <= fasterSidusEMAprevious || FasterEMAprevious <= slowerSidusEMAprevious ) &&
( SlowerEMAprevious <= fasterSidusEMAprevious || SlowerEMAprevious <= slowerSidusEMAprevious ) &&
// RSI > 50 &&
// CCI > 0 &&
UpTunnel
)
)
{ // IF all that above is correct, then do this:
UpTunnel=false;
DownTunnel=false;
Signal=true;
CrossUp[i] = Low[i] - Range*1.6;
if(i<=2 && Alerts && !upalert)
{
Alert (Symbol()," ",Period()," Mins Sidus LONG ");
if ( Email_Alerts ) { SendMail("Sidus LONG "+Symbol(),""); }
upalert=true;
downalert=false;
}
}
if (
( // Conditions for down signal for EMA-Sidus crosses too
(( FasterEMAnow < fasterSidusEMAnow && FasterEMAnow < slowerSidusEMAnow ) ||
( SlowerEMAnow < fasterSidusEMAnow && SlowerEMAnow < slowerSidusEMAnow )) &&
( FasterEMAprevious >= fasterSidusEMAprevious || FasterEMAprevious >= slowerSidusEMAprevious ) &&
( SlowerEMAprevious >= fasterSidusEMAprevious || SlowerEMAprevious >= slowerSidusEMAprevious ) &&
// RSI < 50 &&
// CCI < 0 &&
DownTunnel
)
)
{ // IF all that above is correct, then do this:
UpTunnel=false;
DownTunnel=false;
Signal=true;
CrossDown[i] = High[i] + Range*1.2;
if(i<=2 && Alerts && !downalert)
{
Alert (Symbol()," ",Period()," Mins Sidus SHORT ");
if ( Email_Alerts ) { SendMail("Sidus SHORT "+Symbol(),""); }
downalert=true;
upalert=false;
}
}
}
return(0);
}
if (
( // Conditions for up signal for EMA-Sidus crosses
(( FasterEMAnow > fasterSidusEMAnow && FasterEMAnow > slowerSidusEMAnow ) ||
( SlowerEMAnow > fasterSidusEMAnow && SlowerEMAnow > slowerSidusEMAnow )) &&
( FasterEMAprevious <= fasterSidusEMAprevious || FasterEMAprevious <= slowerSidusEMAprevious ) &&
( SlowerEMAprevious <= fasterSidusEMAprevious || SlowerEMAprevious <= slowerSidusEMAprevious ) &&
// RSI > 50 &&
// CCI > 0 &&
UpTunnel
)
)
{ // IF all that above is correct, then do this:
UpTunnel=false;
DownTunnel=false;
Signal=true;
CrossUp[i] = Low[i] - Range*1.6;
if(i<=2 && Alerts && !upalert)
{
Alert (Symbol()," ",Period()," Mins Sidus LONG ");
if ( Email_Alerts ) { SendMail("Sidus LONG "+Symbol(),""); }
upalert=true;
downalert=false;
}
}
if (
( // Conditions for down signal for EMA-Sidus crosses too
(( FasterEMAnow < fasterSidusEMAnow && FasterEMAnow < slowerSidusEMAnow ) ||
( SlowerEMAnow < fasterSidusEMAnow && SlowerEMAnow < slowerSidusEMAnow )) &&
( FasterEMAprevious >= fasterSidusEMAprevious || FasterEMAprevious >= slowerSidusEMAprevious ) &&
( SlowerEMAprevious >= fasterSidusEMAprevious || SlowerEMAprevious >= slowerSidusEMAprevious ) &&
// RSI < 50 &&
// CCI < 0 &&
DownTunnel
)
)
{ // IF all that above is correct, then do this:
UpTunnel=false;
DownTunnel=false;
Signal=true;
CrossDown[i] = High[i] + Range*1.2;
if(i<=2 && Alerts && !downalert)
{
Alert (Symbol()," ",Period()," Mins Sidus SHORT ");
if ( Email_Alerts ) { SendMail("Sidus SHORT "+Symbol(),""); }
downalert=true;
upalert=false;
}
}
}
return(0);
}
The future depends on what we do in the present.