Last Changes ...
This commit is contained in:
@@ -24,6 +24,7 @@
|
||||
#include "../Classes/x-saherelm.x-alert.class.mq5"
|
||||
#include "../Classes/x-saherelm.x-data.collector.class.mq5"
|
||||
#include "../Classes/x-saherelm.x-guard.class.mq5"
|
||||
#include "../Classes/x-saherelm.x-poi.drawer.class.mq5"
|
||||
#include "../Classes/x-saherelm.x-trade.class.mq5"
|
||||
|
||||
//
|
||||
@@ -41,6 +42,9 @@ class XCTradeManager : public XCBase
|
||||
XTimeTracker timeTracker;
|
||||
XCDataCollector *collector;
|
||||
|
||||
//
|
||||
XCPOIDrawer *drawer;
|
||||
|
||||
//
|
||||
// Constructor ...
|
||||
XCTradeManager(
|
||||
@@ -54,6 +58,9 @@ class XCTradeManager : public XCBase
|
||||
guard = _guard;
|
||||
trader = _trader;
|
||||
|
||||
//
|
||||
drawer = new XCPOIDrawer();
|
||||
|
||||
//
|
||||
allowTrade = true;
|
||||
allowLongs = true;
|
||||
@@ -104,6 +111,10 @@ class XCTradeManager : public XCBase
|
||||
ZeroMemory(alert);
|
||||
ZeroMemory(trader);
|
||||
|
||||
//
|
||||
delete drawer;
|
||||
ZeroMemory(drawer);
|
||||
|
||||
//
|
||||
delete collector;
|
||||
ZeroMemory(collector);
|
||||
@@ -851,10 +862,7 @@ class XCTradeManager : public XCBase
|
||||
*
|
||||
* @return ( bool )
|
||||
*/
|
||||
bool Execute(
|
||||
XSignal &signal,
|
||||
string conditions //
|
||||
)
|
||||
bool Execute(XSignal &signal)
|
||||
{
|
||||
//
|
||||
bool result = false;
|
||||
@@ -921,26 +929,6 @@ class XCTradeManager : public XCBase
|
||||
//
|
||||
if (result)
|
||||
{
|
||||
//
|
||||
// Draw Signal ...
|
||||
// if (drawSignal)
|
||||
// {
|
||||
// //
|
||||
// XCSignalObject *iObj;
|
||||
// isExists = drawer.DrawSignal(
|
||||
// signal,
|
||||
// iObj //
|
||||
// );
|
||||
|
||||
// //
|
||||
// if (isExists)
|
||||
// {
|
||||
// //
|
||||
// mObjects.Add(iObj);
|
||||
// ZeroMemory(iObj);
|
||||
// }
|
||||
// }
|
||||
|
||||
//
|
||||
// Create Symbol Info Struct ...
|
||||
XTradeSymbolInfo iSymbolInfo;
|
||||
@@ -986,11 +974,11 @@ class XCTradeManager : public XCBase
|
||||
|
||||
//
|
||||
iTrade.signal = signal;
|
||||
iTrade.conditions = conditions;
|
||||
iTrade.positionID = positionID;
|
||||
iTrade.commission = commission;
|
||||
iTrade.signaledAt = signal.time;
|
||||
iTrade.executedAt = TimeCurrent();
|
||||
iTrade.conditions = signal.conditions;
|
||||
|
||||
//
|
||||
AddRef(
|
||||
@@ -1054,6 +1042,45 @@ class XCTradeManager : public XCBase
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle Signal Recieved ...
|
||||
*
|
||||
* @param signal: XSignal
|
||||
*/
|
||||
void HandleSignal(XSignal &signal)
|
||||
{
|
||||
//
|
||||
// Validate Signal ...
|
||||
if (!signal.IsValid())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
//
|
||||
// Check Signal ...
|
||||
ENUM_X_SIGNAL_EXECUTION_RESULT signalExecutionResult;
|
||||
bool canExecute = CheckSignal(
|
||||
signal,
|
||||
signalExecutionResult //
|
||||
);
|
||||
if (canExecute) {
|
||||
bool isExecuted = Execute(signal);
|
||||
}
|
||||
|
||||
//
|
||||
// Draw Signal Object ...
|
||||
XCSignalObject *signalObj;
|
||||
bool has = drawer.DrawSignal(
|
||||
signal,
|
||||
signalObj,
|
||||
4 //
|
||||
);
|
||||
if (has)
|
||||
{
|
||||
mObjects.Add(signalObj);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle Position Take Profit ...
|
||||
*
|
||||
@@ -2169,6 +2196,9 @@ class XCTradeManager : public XCBase
|
||||
//
|
||||
// Props ...
|
||||
|
||||
//
|
||||
CArrayObj mObjects;
|
||||
|
||||
//
|
||||
bool allowTrade;
|
||||
bool allowLongs;
|
||||
|
||||
Reference in New Issue
Block a user