- Create a Data Collector Class;

- Add Support for Save Logs in Alert Class;
- Add Propper inputs for Handle Saving Logs in EA and Expert Class;
- remove x-trade.manager Class Data Collector and use General Developed Data Collector;
- Add Support for Reading Fles in Data Collector Class for Support Configuration Parsing;
- Remove XCBaseAlert class and add Support for get XCAlert instance reference pointer as Dependency Injection in all used classed and Refactor all Changes;
- Apply Fix some UnImplemented Event Handlers on Ea Expert Class of XCATBEA and also change Event Handler Binding to Collection Based Model;
- Test all Functionalities ...
- Apply Some Fixes on Prevent Double Saing Same Log Messages ...
This commit is contained in:
2025-06-05 05:35:47 +03:30
parent 4e941f3a65
commit e46cac2ab1
12 changed files with 2107 additions and 927 deletions
@@ -22,10 +22,10 @@
//
// Imports ...
#include "../../Classes/x-saherelm.x-alert.class.mq5"
#include "../../Classes/x-saherelm.x-data.collector.class.mq5"
#include "../../Classes/x-saherelm.x-poi.drawer.class.mq5"
#include "../../Classes/x-saherelm.x-trade.class.mq5"
#include "../../Libraries/x-saherelm.x-poi.lib.mq5"
#include "../Classes/xcatbea.x-data.collector.class.mq5"
#include "../Libraries/xcatbea.lib.mq5"
#include "../Libraries/xcatbea.signaller.lib.mq5"
@@ -1594,27 +1594,29 @@ struct XCATBEATrade
//
// Implementations ...
class XCXCATBEATradeManager : public XCBaseAlert
class XCXCATBEATradeManager : public XCBase
{
//
// Public ...
public:
//
// Props ...
XCAlert *alert;
XCTrade *trader;
bool drawSignal;
XCPOIDrawer *drawer;
XTimeTracker timeTracker;
XCXCATBEADataCollector *collector;
XCDataCollector *collector;
//
// Constructors ...
XCXCATBEATradeManager(
XCTrade *&_trader,
string _path = NULL // Base Path
XCAlert *_alert,
XCTrade *_trader //
)
{
//
alert = _alert;
trader = _trader;
drawSignal = true;
drawer = new XCPOIDrawer();
@@ -1644,15 +1646,12 @@ class XCXCATBEATradeManager : public XCBaseAlert
SaveTrades(false);
//
// Normalizing Collector Path ...
if (!IsValid(_path))
{
_path = "X121XCATBEATradeManager" + "\\" + trader.mAccount.GetCompany();
}
collector = new XCDataCollector();
//
collector = new XCXCATBEADataCollector();
collector.Path(_path);
// Setting Collector Path ...
string mPath = alert.GetPrefix() + "\\" + trader.mAccount.GetCompany();
collector.Path(mPath);
}
//
@@ -1666,8 +1665,15 @@ class XCXCATBEATradeManager : public XCBaseAlert
timeTracker.Clean();
//
ZeroMemory(alert);
ZeroMemory(trader);
//
delete drawer;
ZeroMemory(drawer);
//
delete collector;
ZeroMemory(collector);
}
@@ -2283,7 +2289,7 @@ class XCXCATBEATradeManager : public XCBaseAlert
{
//
string message = signal.GetMessage("Provided");
SendAlert(message);
alert.SendAlert(message);
}
//
@@ -2474,7 +2480,7 @@ class XCXCATBEATradeManager : public XCBaseAlert
}
//
SendAlert(message);
alert.SendAlert(message);
}
//
@@ -3183,10 +3189,10 @@ class XCXCATBEATradeManager : public XCBaseAlert
//
string message =
(IsValid(prefix)
? prefix + "\n"
? prefix + " | "
: "") +
"Account Balance: " + ToString(balance) + currency;
SendAlert(message);
alert.SendAlert(message);
}
//
@@ -3199,7 +3205,7 @@ class XCXCATBEATradeManager : public XCBaseAlert
}
//
SendAlert(message);
alert.SendAlert(message);
}
//
@@ -3595,7 +3601,7 @@ class XCXCATBEATradeManager : public XCBaseAlert
{
//
string message = iInfo.GetRestrictionDescription(restrictionsPeriod);
SendAlert(message);
alert.SendAlert(message);
}
SaveRestrictions(iInfo);