last works on Position Drawer Class and Implement it on EA Backtester Expert Class ...

required to Test it's work ...
This commit is contained in:
2025-10-06 18:56:20 +03:30
parent f15e58fbc4
commit 8cc1ca21da
3 changed files with 240 additions and 11 deletions
@@ -24,6 +24,7 @@
#include "../Classes/x-saherelm.x-alert.class.mq5"
#include "../Classes/x-saherelm.x-chart.helper.class.mq5"
#include "../Classes/x-saherelm.x-guard.class.mq5"
#include "../Classes/x-saherelm.x-position.drawer.class.mq5"
#include "../Classes/x-saherelm.x-target.class.mq5"
#include "../Classes/x-saherelm.x-trade.class.mq5"
#include "../Classes/x-saherelm.x-volume.class.mq5"
@@ -82,9 +83,10 @@ class XCBackTesterEA : public XCBase
double volume; // Default volume Per Trade ...
//
XCAlert *eaAlert; // EA Scope Alert Handler ...
XCTrade *eaTrader; // EA Scope Trade Handler ...
XCTarget *eaTarget; // EA Scope Target Manager ...
XCAlert *eaAlert; // EA Scope Alert Handler ...
XCTrade *eaTrader; // EA Scope Trade Handler ...
XCTarget *eaTarget; // EA Scope Target Manager ...
XCPositionDrawer *eaPositionDrawer; // EA Scope Position Drawer ...
//
XCChartHelper *eaChartHelper; // Chart Helper Class ...
@@ -295,6 +297,10 @@ class XCBackTesterEA : public XCBase
// Init Target Managers ...
eaTarget = new XCTarget(eaTrader, eaAlert);
//
// Init Position Drawer ...
eaPositionDrawer = new XCPositionDrawer(eaTrader);
//
// Initial GUI ...
result = InitGUI();
@@ -321,6 +327,11 @@ class XCBackTesterEA : public XCBase
delete eaTarget;
ZeroMemory(eaTarget);
//
eaPositionDrawer.Destroy();
delete eaPositionDrawer;
ZeroMemory(eaPositionDrawer);
//
delete eaTrader;
ZeroMemory(eaTrader);
@@ -359,6 +370,10 @@ class XCBackTesterEA : public XCBase
//
// Managing Targets ...
eaTarget.Manage();
//
// Manage Positions Drawings ...
eaPositionDrawer.Update();
}
/**
@@ -430,6 +445,9 @@ class XCBackTesterEA : public XCBase
//
eaTarget.HandleOnStopLossTriggered(deal);
//
eaPositionDrawer.HandleStopLossTriggered(deal);
}
/**
@@ -445,6 +463,9 @@ class XCBackTesterEA : public XCBase
//
eaTarget.HandleOnTakeProfitTriggered(deal);
//
eaPositionDrawer.HandleOnTakeProfitTriggered(deal);
}
/**
@@ -470,6 +491,13 @@ class XCBackTesterEA : public XCBase
position,
comment //
);
//
eaPositionDrawer.HandleOnPositionForceClosed(
ticket,
position,
comment //
);
}
/**
@@ -572,7 +600,11 @@ class XCBackTesterEA : public XCBase
*/
void HandleOnSignalExecuted(XSignal &signal)
{
//
eaTarget.AddExecutedSignal(signal);
//
eaPositionDrawer.AddExecutedSignal(signal);
}
//