Trabalho concluído
![](https://c.mql5.com/i/avatar/avatar_na2.png)
![](https://c.mql5.com/i/avatar/avatar_na2.png)
Termos de Referência
MT5 indicator that sends pop up alerts based on overbought and oversold conditions.
I want alerts for:
1st RSI Period = 14
1st RSI Oversold = 70
1st RSI Overbought = 70
2nd RSI Period = 2
2nd RSI Oversold = 99
2nd RSI Overbought = 01
The alerts should be on the following timeframes with true/false switch on separate lines such as:
M30 = True/False
H1 = True/False
H4 = True/False
D1 = True/False
W1 = True/False
Alerts should be triggered on the closing price.
I also need to turn on or off Buy Alerts & Sell Alerts so I will need:
Trigger Buy Alerts - True/False
Trigger Sell Alerts - True/False
I need it to only give 1 alert per symbol. The alert message should read:
Symbol - Company name - Buy (RSI Period) (RSI Reading) (Timeframe) or
Symbol - Company name - Sell (RSI Period) (RSI Reading) (Timeframe)
I want to be able to select with true/false the charts it will monitor:
Major Forex = True/False
Minor Forex = True/False
US Shares = True/False
UK Shares = True/False
Cryptos = True/False
If I have selected US Shares = true, then it will monitor all US shares and whichever closes above Overbought, it will send a sell alert if it is activated. Similarly if it closes below 30 then it will send a Buy Alert.
I already have some security code for the indicator which you simply insert:
bool _b_security_account__PC = false; //Account Security On/Off
if(_b_security_account__PC)
{
string str__TERMINAL_DATA_PATH = TerminalInfoString(TERMINAL_DATA_PATH);
int int_index__n200 = StringFind(str__TERMINAL_DATA_PATH, "Users", 0);
int int_index__n201 = StringFind(str__TERMINAL_DATA_PATH, CharToString(92), (int_index__n200 + StringLen("Users")) + 1);
int int_All_String = StringLen(str__TERMINAL_DATA_PATH);
string string_Namber_Terminal = StringSubstr(str__TERMINAL_DATA_PATH, int_index__n200 + (StringLen("Users") + 1), int_index__n201 - (int_index__n200 + (StringLen("Users") + 1)));
string string__Name_PC="SHAKIR";
if(string_Namber_Terminal == string__Name_PC)
{
}
else
{
Print("Indicator Not Valid On This Account – To Purchase License Please Contact shakir.elahi@gmail.com");
Alert("Indicator Not Valid On This Account – To Purchase License Please Contact shakir.elahi@gmail.com");
return(INIT_FAILED);
}
}
//==============================================================================================
bool _b_security_account=false; //Account Security On/Off
if(_b_security_account)
{
int num=2100033965; //Accout number
if((int)AccountInfoInteger(ACCOUNT_LOGIN)==num)
{
}
else
{
Print("Indicator Not Valid On This Account – To Purchase License Please Contact shakir.elahi@gmail.com");
Alert("Indicator Not Valid On This Account – To Purchase License Please Contact shakir.elahi@gmail.com");
return(INIT_FAILED);
}
}
//==============================================================================================
bool _b_security_expiry__Time = false; //Indicator Expiry On/Off
if(_b_security_expiry__Time)
{
string DemoStr="2023.10.22 01:00"; //Expiry date/time
bool Expire=TimeCurrent()>StringToTime(DemoStr);
if(Expire)
{
Print("Indicator Has Expired – To Renew License Please Contact shakir.elahi@gmail.com");
Alert("Indicator Has Expired – To Renew License Please Contact shakir.elahi@gmail.com");
return(INIT_FAILED);
}
}