last ...
This commit is contained in:
@@ -26,6 +26,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-signaller.class.mq5"
|
||||
#include "../Classes/x-saherelm.x-target.class.mq5"
|
||||
#include "../Classes/x-saherelm.x-trade-manager.class.mq5"
|
||||
@@ -121,13 +122,14 @@ class XCBaseExpert : public XCBase
|
||||
// Requirements ...
|
||||
|
||||
//
|
||||
XCAlert *eaAlert; // EA Scope Alert Handler ...
|
||||
XCGuard *eaGuard; // EA Scope Guard Handler ...
|
||||
XCTrade *eaTrader; // EA Scope Trade Handler ...
|
||||
XCVolume *eaVolume; // EA Scope Voluem Handler ...
|
||||
XCTarget *eaTarget; // EA Scope Target Handler ...
|
||||
XTimeTracker eaTimeTracker; // EA Scope Time Tracker ...
|
||||
XCTradeManager *eaTradeManager; // EA Scope Trade Manager Handler ...
|
||||
XCAlert *eaAlert; // EA Scope Alert Handler ...
|
||||
XCGuard *eaGuard; // EA Scope Guard Handler ...
|
||||
XCTrade *eaTrader; // EA Scope Trade Handler ...
|
||||
XCVolume *eaVolume; // EA Scope Voluem Handler ...
|
||||
XCTarget *eaTarget; // EA Scope Target Handler ...
|
||||
XTimeTracker eaTimeTracker; // EA Scope Time Tracker ...
|
||||
XCTradeManager *eaTradeManager; // EA Scope Trade Manager Handler ...
|
||||
XCPositionDrawer *eaPositionDrawer; // EA Scope Position Drawer ...
|
||||
|
||||
//
|
||||
// Specified Event Handlers ...
|
||||
@@ -349,6 +351,10 @@ class XCBaseExpert : public XCBase
|
||||
// Initialize Target Handler ...
|
||||
eaTarget = new XCTarget(eaTrader, eaAlert);
|
||||
|
||||
//
|
||||
// Init Position Drawer ...
|
||||
eaPositionDrawer = new XCPositionDrawer(eaTrader);
|
||||
|
||||
//
|
||||
// Initialize Trae Manager ...
|
||||
eaTradeManager = new XCTradeManager(
|
||||
@@ -452,6 +458,11 @@ class XCBaseExpert : public XCBase
|
||||
delete eaTradeManager;
|
||||
ZeroMemory(eaTradeManager);
|
||||
|
||||
//
|
||||
eaPositionDrawer.Destroy();
|
||||
delete eaPositionDrawer;
|
||||
ZeroMemory(eaPositionDrawer);
|
||||
|
||||
//
|
||||
eaTimeTracker.Clean();
|
||||
|
||||
@@ -494,6 +505,10 @@ class XCBaseExpert : public XCBase
|
||||
// Manage Trades ...
|
||||
eaTradeManager.Manage();
|
||||
|
||||
//
|
||||
// Manage Positions Drawings ...
|
||||
eaPositionDrawer.Update();
|
||||
|
||||
//
|
||||
int count = ArraySize(eaSignallers);
|
||||
bool has = IsValidSize(count);
|
||||
@@ -567,6 +582,8 @@ class XCBaseExpert : public XCBase
|
||||
*/
|
||||
void HandleOnSignalExecuted(XSignal &signal)
|
||||
{
|
||||
//
|
||||
eaPositionDrawer.AddExecutedSignal(signal);
|
||||
eaTradeManager.target.AddExecutedSignal(signal);
|
||||
}
|
||||
|
||||
@@ -675,6 +692,7 @@ class XCBaseExpert : public XCBase
|
||||
{
|
||||
//
|
||||
eaTradeManager.HandleSL(deal);
|
||||
eaPositionDrawer.HandleStopLossTriggered(deal);
|
||||
UpdatePanelPositionButtons();
|
||||
}
|
||||
|
||||
@@ -686,8 +704,9 @@ class XCBaseExpert : public XCBase
|
||||
void virtual HandleOnTakeProfitTriggered(const XDeal &deal)
|
||||
{
|
||||
//
|
||||
eaTradeManager.HandleTP(deal);
|
||||
UpdatePanelPositionButtons();
|
||||
eaTradeManager.HandleTP(deal);
|
||||
eaPositionDrawer.HandleOnTakeProfitTriggered(deal);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -704,8 +723,13 @@ class XCBaseExpert : public XCBase
|
||||
)
|
||||
{
|
||||
//
|
||||
eaTradeManager.HandleForceClose(position);
|
||||
UpdatePanelPositionButtons();
|
||||
eaTradeManager.HandleForceClose(position);
|
||||
eaPositionDrawer.HandleOnPositionForceClosed(
|
||||
ticket,
|
||||
position,
|
||||
comment //
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -776,6 +800,12 @@ class XCBaseExpert : public XCBase
|
||||
const string comment //
|
||||
)
|
||||
{
|
||||
//
|
||||
eaPositionDrawer.HandleOnPositionModified(
|
||||
ticket,
|
||||
profit,
|
||||
comment //
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -2025,6 +2025,7 @@ class XCMarketPatternDetector : public XCBase
|
||||
// Support and Resistance ...
|
||||
int supportAndResistanceValidationLength = 21,
|
||||
int supportAndResistanceLoopbackLength = 50 //
|
||||
//
|
||||
)
|
||||
{
|
||||
//
|
||||
@@ -2394,7 +2395,8 @@ class XCMarketPatternDetector : public XCBase
|
||||
bool has = ToSupportBox(
|
||||
iSwing,
|
||||
iZone,
|
||||
bar.time //
|
||||
bar.time,
|
||||
supportAndResistanceValidationLength //
|
||||
);
|
||||
if (has)
|
||||
{
|
||||
@@ -2417,7 +2419,7 @@ class XCMarketPatternDetector : public XCBase
|
||||
supportAndResistanceValidationLength,
|
||||
supportAndResistanceLoopbackLength //
|
||||
);
|
||||
if (isMomentum)
|
||||
if (isResistance)
|
||||
{
|
||||
//
|
||||
iPattern = X_BAR_PATTERN_RESISTANCE;
|
||||
@@ -2426,7 +2428,8 @@ class XCMarketPatternDetector : public XCBase
|
||||
bool has = ToResistanceBox(
|
||||
iSwing,
|
||||
iZone,
|
||||
bar.time //
|
||||
bar.time,
|
||||
supportAndResistanceValidationLength //
|
||||
);
|
||||
if (has)
|
||||
{
|
||||
|
||||
@@ -408,6 +408,10 @@ class XCTradeManager : public XCBase
|
||||
// Handle Restrictions ...
|
||||
HandleRestrictions();
|
||||
|
||||
//
|
||||
// Managing Targets ...
|
||||
target.Manage();
|
||||
|
||||
//
|
||||
// Check Contains Trades for Managing ...
|
||||
bool has = HasChild(trades);
|
||||
|
||||
Reference in New Issue
Block a user