198 lines
3.3 KiB
Plaintext
198 lines
3.3 KiB
Plaintext
///////////////////////////////////////////////////////
|
|
//
|
|
// SaherElm IT Center MQL5 Alert Library
|
|
// --------------------------------------
|
|
// Name: XAlert
|
|
// Description: provides Alerts abilities ...
|
|
//
|
|
//
|
|
// Maintainer:
|
|
// ------------
|
|
// Hadi Khazaee Asl (hadi_khazaee_asl@yahoo.com)
|
|
//
|
|
//////////////////////////////////////////////////////
|
|
//
|
|
// Global Properties ...
|
|
#property library
|
|
#property copyright "Copyright 2023, SaherElm IT Center"
|
|
#property link "https://www.saherelm.ir"
|
|
#property version "1.00"
|
|
#property strict
|
|
|
|
//
|
|
// START Inputs ...
|
|
//
|
|
input group "Alerts";
|
|
input bool enableAlerts = true; // Enable Alerts
|
|
input bool logAlerts = true; // Log Alerts
|
|
input bool terminalAlerts = true; // Terminal Alerts
|
|
input bool mailAlerts = true; // Mail Alerts
|
|
input bool pushAlerts = true; // Push Alerts
|
|
//
|
|
// END Inputs ...
|
|
//
|
|
|
|
//
|
|
#include "x-saherelm.log.lib.mq5";
|
|
|
|
//
|
|
// START Global Definitions: Variables, Properties and etc ...
|
|
//
|
|
string alertPrefix = "X-Alert";
|
|
//
|
|
// END Global Definitions: Variables, Properties and etc ...
|
|
//
|
|
|
|
//
|
|
// START Provided Functions ...
|
|
//
|
|
//
|
|
// Initial Library if required ...
|
|
bool OnInInitAlertLibrary()
|
|
{
|
|
return false;
|
|
}
|
|
|
|
//
|
|
// DeInitial Library if required ...
|
|
void OnDeinitAlertLibrary()
|
|
{
|
|
}
|
|
|
|
//
|
|
// Attach Alert Prefix to Message ...
|
|
string PrepareAlertMessage(string message)
|
|
{
|
|
//
|
|
StringConcatenate(message, alertPrefix, " > ", message);
|
|
|
|
//
|
|
return message;
|
|
}
|
|
|
|
//
|
|
// Logging an Alert ...
|
|
void LogAlert(string message)
|
|
{
|
|
//
|
|
// Validate Args ...
|
|
if (!enableAlerts || !logAlerts)
|
|
{
|
|
return;
|
|
}
|
|
|
|
//
|
|
LogMessage(alertPrefix, message);
|
|
}
|
|
|
|
//
|
|
// Terminal Alert ...
|
|
void TerminalAlert(string message)
|
|
{
|
|
//
|
|
// Validate Args ...
|
|
if (!enableAlerts || !terminalAlerts)
|
|
{
|
|
return;
|
|
}
|
|
|
|
//
|
|
// Prepare Message ...
|
|
message = PrepareAlertMessage(message);
|
|
|
|
// Send Terminal Alert ...
|
|
Alert(message);
|
|
}
|
|
|
|
//
|
|
// Mail Alert ...
|
|
void MailAlert(string message)
|
|
{
|
|
//
|
|
// Validate Args ...
|
|
if (!enableAlerts || !mailAlerts)
|
|
{
|
|
return;
|
|
}
|
|
|
|
//
|
|
// Send Mail Alert ...
|
|
SendMail(alertPrefix, message);
|
|
}
|
|
|
|
//
|
|
// Send Push Notification ...
|
|
void PushAlert(string message)
|
|
{
|
|
//
|
|
// Validate Args ...
|
|
if (!enableAlerts || !pushAlerts)
|
|
{
|
|
return;
|
|
}
|
|
|
|
//
|
|
// Prepare Message ...
|
|
message = PrepareAlertMessage(message);
|
|
|
|
//
|
|
// Send Push Notification Alert ...
|
|
SendNotification(message);
|
|
}
|
|
|
|
//
|
|
// Alert Sending ...
|
|
void SendAlert(string message)
|
|
{
|
|
//
|
|
// Validate Args ...
|
|
if (!enableAlerts)
|
|
{
|
|
return;
|
|
}
|
|
|
|
//
|
|
// Log ...
|
|
if (logAlerts)
|
|
{
|
|
LogAlert(message);
|
|
}
|
|
|
|
//
|
|
// Terminal ...
|
|
if (terminalAlerts)
|
|
{
|
|
TerminalAlert(message);
|
|
}
|
|
|
|
//
|
|
// Mail ...
|
|
if (mailAlerts)
|
|
{
|
|
MailAlert(message);
|
|
}
|
|
|
|
//
|
|
// Push ...
|
|
if (pushAlerts)
|
|
{
|
|
PushAlert(message);
|
|
}
|
|
}
|
|
void SendAlert(
|
|
XSignal &signal, // the Signal Object which requred to Alert
|
|
bool asExecuted = true // determines Alert Signal as Executed Signal or not
|
|
)
|
|
{
|
|
//
|
|
// Prepare Message ...
|
|
string message = asExecuted ? ExecutedSignalToString(signal) : SignalToString(signal);
|
|
|
|
//
|
|
// Do Alerting ...
|
|
SendAlert(message);
|
|
}
|
|
//
|
|
// END Provided Functions ...
|
|
//
|