add XTargetManager Class and use it in XBacktesterEA Class ...
also i have to implement it's usage on XCExpert Class ... extends XTarget approaches and add support to Distances ...
This commit is contained in:
@@ -23,6 +23,7 @@
|
||||
#include "../Classes/x-saherelm.base.class.mq5"
|
||||
#include "../Classes/x-saherelm.x-alert.class.mq5"
|
||||
#include "../Classes/x-saherelm.x-chart.helper.class.mq5"
|
||||
#include "../Classes/x-saherelm.x-target.manager.class.mq5"
|
||||
#include "../Classes/x-saherelm.x-trade.class.mq5"
|
||||
#include "../Classes/x-saherelm.x-volume.class.mq5"
|
||||
|
||||
@@ -80,8 +81,11 @@ class XCBackTesterEA : public XCBase
|
||||
double volume; // Default volume Per Trade ...
|
||||
|
||||
//
|
||||
XCAlert *eaAlert; // EA Scope Alert Handler ...
|
||||
XCTrade *eaTrader; // EA Scope Trade Handler ...
|
||||
XCAlert *eaAlert; // EA Scope Alert Handler ...
|
||||
XCTrade *eaTrader; // EA Scope Trade Handler ...
|
||||
XCTargetManager *eaTargetManager; // EA Scope Target Manager ...
|
||||
|
||||
//
|
||||
XCChartHelper *eaChartHelper; // Chart Helper Class ...
|
||||
|
||||
//
|
||||
@@ -273,6 +277,23 @@ class XCBackTesterEA : public XCBase
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Signal Executed Event Handlers ...
|
||||
count = ArraySize(mOnSignalExecutedEventHandlers);
|
||||
has = IsValidSize(count);
|
||||
if (has)
|
||||
{
|
||||
//
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
eaTrader.AddOnSignalExecutedEventHandler(mOnSignalExecutedEventHandlers[i]);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Init Target Managers ...
|
||||
eaTargetManager = new XCTargetManager(eaTrader);
|
||||
|
||||
//
|
||||
// Initial GUI ...
|
||||
result = InitGUI();
|
||||
@@ -294,6 +315,11 @@ class XCBackTesterEA : public XCBase
|
||||
*/
|
||||
void HandleOnDeInit()
|
||||
{
|
||||
//
|
||||
eaTargetManager.Destroy();
|
||||
delete eaTargetManager;
|
||||
ZeroMemory(eaTargetManager);
|
||||
|
||||
//
|
||||
delete eaTrader;
|
||||
ZeroMemory(eaTrader);
|
||||
@@ -326,7 +352,12 @@ class XCBackTesterEA : public XCBase
|
||||
*/
|
||||
void HandleOnTick()
|
||||
{
|
||||
//
|
||||
UpdateGUI();
|
||||
|
||||
//
|
||||
// Managing Targets ...
|
||||
eaTargetManager.Manage();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -395,6 +426,9 @@ class XCBackTesterEA : public XCBase
|
||||
//
|
||||
// Update Position Buttons ...
|
||||
UpdatePositionButtons();
|
||||
|
||||
//
|
||||
eaTargetManager.HandleOnStopLossTriggered(deal);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -407,6 +441,9 @@ class XCBackTesterEA : public XCBase
|
||||
//
|
||||
// Update Position Buttons ...
|
||||
UpdatePositionButtons();
|
||||
|
||||
//
|
||||
eaTargetManager.HandleOnTakeProfitTriggered(deal);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -425,6 +462,13 @@ class XCBackTesterEA : public XCBase
|
||||
//
|
||||
// Update Position Buttons ...
|
||||
UpdatePositionButtons();
|
||||
|
||||
//
|
||||
eaTargetManager.HandleOnPositionForceClosed(
|
||||
ticket,
|
||||
position,
|
||||
comment //
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -502,6 +546,34 @@ class XCBackTesterEA : public XCBase
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle New Signal Recieved ...
|
||||
*
|
||||
* @param signal: XSignal, reference to recieved Signal ...
|
||||
*/
|
||||
void HandleOnSignalTriggered(XSignal &signal)
|
||||
{
|
||||
//
|
||||
ENUM_X_SIGNAL_EXECUTION_RESULT result;
|
||||
bool isExcuted = eaTrader.ExecuteSignal(
|
||||
signal,
|
||||
result //
|
||||
);
|
||||
if (isExcuted)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle Signal Executed Event ...
|
||||
*
|
||||
* @param signal: XSignal, reference to Executed Signal ...
|
||||
*/
|
||||
void HandleOnSignalExecuted(XSignal &signal)
|
||||
{
|
||||
eaTargetManager.AddExecutedSignal(signal);
|
||||
}
|
||||
|
||||
//
|
||||
// Props and Setter / Getter (s) ...
|
||||
|
||||
@@ -652,6 +724,23 @@ class XCBackTesterEA : public XCBase
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
// Add New Signal Executed Event Handler ...
|
||||
void AddOnSignalExecutedEventHandler(TOnSignal handler)
|
||||
{
|
||||
//
|
||||
if (handler == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
//
|
||||
Add(
|
||||
handler,
|
||||
mOnSignalExecutedEventHandlers //
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
// Protected ...
|
||||
protected:
|
||||
@@ -667,6 +756,7 @@ class XCBackTesterEA : public XCBase
|
||||
TOnStopLoss mStopLossEventHandlers[];
|
||||
TOnTakeProfit mTakeProfitEventHandlers[];
|
||||
TOnForceClose mOnForceCloseEventHandlers[];
|
||||
TOnSignal mOnSignalExecutedEventHandlers[];
|
||||
TOnDealsChanged mDealsChangedEventHandlers[];
|
||||
TOnOrdersChanged mOrdersChangedEventHandlers[];
|
||||
TOnPartialClose mOnPartialCloseEventHandlers[];
|
||||
|
||||
Reference in New Issue
Block a user