162 lines
2.7 KiB
Plaintext
162 lines
2.7 KiB
Plaintext
///////////////////////////////////////////////////////
|
|
//
|
|
// SaherElm IT Center MQL5 Logger Library
|
|
// ---------------------------------------
|
|
// Name: XLogger
|
|
// Description: provides Logging 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 "Logging";
|
|
input bool enableLogging = true; // Enable Logging
|
|
//
|
|
// END Inputs ...
|
|
//
|
|
|
|
//
|
|
// Including Models ...
|
|
#include "x-saherelm.models.lib.mq5"
|
|
|
|
//
|
|
// START Global Definitions: Variables, Properties and etc ...
|
|
//
|
|
string logTag = "X-Logger"; // LogTag
|
|
//
|
|
// END Global Definitions: Variables, Properties and etc ...
|
|
//
|
|
|
|
//
|
|
// START Provided Functions ...
|
|
//
|
|
//
|
|
// Logging a Message ...
|
|
void LogMessage(string message)
|
|
{
|
|
//
|
|
if (!enableLogging)
|
|
{
|
|
return;
|
|
}
|
|
|
|
//
|
|
Print(logTag, " > ", message);
|
|
}
|
|
void LogMessage(string tag, string message)
|
|
{
|
|
//
|
|
if (!enableLogging)
|
|
{
|
|
return;
|
|
}
|
|
|
|
//
|
|
Print(tag, " > ", message);
|
|
}
|
|
|
|
//
|
|
// Logging an Array ...
|
|
void LogArray(int &array[])
|
|
{
|
|
//
|
|
if (!enableLogging)
|
|
{
|
|
return;
|
|
}
|
|
|
|
//
|
|
Print(logTag, ">");
|
|
ArrayPrint(array);
|
|
}
|
|
void LogArray(double &array[])
|
|
{
|
|
//
|
|
if (!enableLogging)
|
|
{
|
|
return;
|
|
}
|
|
|
|
//
|
|
Print(logTag, ">");
|
|
ArrayPrint(array);
|
|
}
|
|
void LogArray(string &array[])
|
|
{
|
|
//
|
|
if (!enableLogging)
|
|
{
|
|
return;
|
|
}
|
|
|
|
//
|
|
Print(logTag, ">");
|
|
ArrayPrint(array);
|
|
}
|
|
|
|
//
|
|
// Convert a Signal to String Message ...
|
|
string SignalToString(XSignal &signal)
|
|
{
|
|
//
|
|
string result = "";
|
|
|
|
//
|
|
result += (signal.type == X_SIGNAL_LONG ? "Buy" : "Sell") + " Signal provided on (" + signal.symbol + " _ " + EnumToString(_Period) + ") by this comment: " + signal.comment;
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
//
|
|
// Convert an Executed Signal to String Message ...
|
|
string ExecutedSignalToString(XSignal &signal)
|
|
{
|
|
//
|
|
string result = "";
|
|
|
|
//
|
|
result += (signal.type == X_SIGNAL_LONG ? "Buy" : "Sell") + " Signal Executed provided on (" + signal.symbol + " _ " + EnumToString(_Period) + ") by this comment: " + signal.comment;
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
//
|
|
// Logging Signal ...
|
|
void LogSignal(XSignal &signal)
|
|
{
|
|
//
|
|
string message = SignalToString(signal);
|
|
|
|
//
|
|
LogMessage(message);
|
|
}
|
|
|
|
//
|
|
// Log Signal Execution ...
|
|
void LogExecutedSignal(XSignal &signal)
|
|
{
|
|
//
|
|
string message = ExecutedSignalToString(signal);
|
|
|
|
//
|
|
LogMessage(message);
|
|
}
|
|
//
|
|
// END Provided Functions ...
|
|
//
|