Last Changes ...

This commit is contained in:
2025-09-09 16:49:16 +03:30
parent 43f26fa3e0
commit 62af2237e4
6 changed files with 610 additions and 188 deletions
+75 -2
View File
@@ -48,6 +48,10 @@ class XCXOM1EAExpert : public XCBase
int eaSlippage; // Slippgae
string eaLogSuffix; // Log Suffix
//
// Symbol Configurations ...
string eaSymbolConfiguration; // Symbol Configurations ...
//
// Management ...
bool eaAllowGuards; // Allow Guards
@@ -94,7 +98,7 @@ class XCXOM1EAExpert : public XCBase
bool eaReportProtector; // Report Protector Actions
bool eaReportRestrictions; // Report Restrictions
bool eaReportAfterTradesBalance; // Report Balance after a Trade Finished
//
// Collector ...
bool eaSaveTrades; // Save Trades
@@ -117,6 +121,25 @@ class XCXOM1EAExpert : public XCBase
//
// Tools / Actions / Handlers ...
//
// Signal Event Handlers ...
//
void AddOnSignalEventHandler(TOnSignal handler)
{
//
if (handler == NULL)
{
return;
}
//
Add(
handler,
mOnSignalEventHandlers //
);
}
//
// Trade Event Handlers ...
@@ -463,7 +486,7 @@ class XCXOM1EAExpert : public XCBase
eaTrade.AddOnTradeStateChangedEventHandler(mTradeStateChangedEventHandlers[i]);
}
}
//
// Postion Partially Close Event Handlers ...
count = ArraySize(mOnPartialCloseEventHandlers);
@@ -536,6 +559,28 @@ class XCXOM1EAExpert : public XCBase
eaMaxAllowedTrades //
);
//
// Parse Symbols ...
string symbols[];
ENUM_TIMEFRAMES periods[];
if (!IsSpecifiedValid(eaSymbolConfiguration))
{
//
Add(
_Symbol,
symbols //
);
//
Add(
_Period,
periods //
);
}
else
{
}
//
// Here we Apply Symbols,Periods and Configs ...
@@ -552,7 +597,12 @@ class XCXOM1EAExpert : public XCBase
//
// Make Instance Signaller Class ...
//
XCXOM1SignallerBase *iDZoneSignaller = NULL;
//
// Define Signaller ...
iDZoneSignaller = new XCXOM1SignallerBase(
"XDZN",
"XAUUSDb",
@@ -561,6 +611,19 @@ class XCXOM1EAExpert : public XCBase
iDZoneSignallerConfig);
if (iDZoneSignaller != NULL)
{
//
// Attach Signaller OnSignal Event Handlers ...
count = ArraySize(mOnSignalEventHandlers);
has = IsValidSize(count);
if (has)
{
//
for (int i = 0; i < count; i++)
{
iDZoneSignaller.AddOnSignalEventHandler(mOnSignalEventHandlers[i]);
}
}
//
// Register Signaller ...
Add(
@@ -671,6 +734,13 @@ class XCXOM1EAExpert : public XCBase
{
}
//
// Signal Event Handler ...
void HandleOnSignalTriggered(XSignal &signal)
{
eaTradeManager.HandleSignal(signal);
}
//
// Trade Event Handlers ...
@@ -870,6 +940,9 @@ class XCXOM1EAExpert : public XCBase
TOnPositionsChanged mPositionsChangedEventHandlers[];
TOnTradeStateChanged mTradeStateChangedEventHandlers[];
//
TOnSignal mOnSignalEventHandlers[]; // Signal Recieved Event Handlers ...
//
XCXOM1SignallerBase *eaSignallers[]; // All Registered Signallers ...
};