This commit is contained in:
2025-09-12 21:42:36 +03:30
parent 94539b2b5d
commit 46f02ebec2
2 changed files with 402 additions and 238 deletions
+100 -38
View File
@@ -560,65 +560,90 @@ class XCXOM1EAExpert : public XCBase
if (has)
{
//
// Configure Indicator ...
XOM1Inputs iDZoneOMInputs;
iDZoneOMInputs.Default();
iDZoneOMInputs.showFiboZone = true;
// XFIMA ...
//
// Configure Signaller ...
XOM1SignallerConfig iDZoneSignallerConfig;
iDZoneSignallerConfig.processAllTicks = false;
XOM1Inputs iFIMAOMInputs;
iFIMAOMInputs.Default();
iFIMAOMInputs.showFiboZone = true;
//
XCXOM1SignallerBase *iDZoneSignaller = NULL;
XOM1SignallerConfig iFIMASignallerConfig;
iFIMASignallerConfig.processAllTicks = false;
//
XCXOM1SignallerBase *iFIMASignaller = NULL;
//
// iMAC5020 ...
//
XOM1Inputs iMAC5020OMINputs;
iMAC5020OMINputs.Default();
iMAC5020OMINputs.showPV = false;
iMAC5020OMINputs.showSAR = false;
iMAC5020OMINputs.maFastLength = 20;
iMAC5020OMINputs.maSlowLength = 50;
iMAC5020OMINputs.showFiboZone = false;
//
XOM1SignallerConfig iMAC5020SignallerConfig;
iMAC5020SignallerConfig.processAllTicks = false;
//
XCXIMAC5020Signaller *iMAC5020Signaller = NULL;
//
// Configure Signallers ...
for (int i = 0; i < count; i++)
{
//
// Define Signaller ...
iDZoneSignaller = new XCXOM1SignallerBase(
"XDZN",
// Register XFIMA Signaller ...
// iFIMASignaller = new XCXOM1FIMASignaller(
// "XDZN",
// symbolConfigurations[i].symbol,
// symbolConfigurations[i].period,
// iFIMAOMInputs,
// iFIMASignallerConfig //
// );
// if (iFIMASignaller != NULL)
// {
// //
// // Register Signaller ...
// XCXOM1SignallerBase *signaller = iFIMASignaller;
// RegisterSignaller(signaller);
// ZeroMemory(signaller);
// }
//
// Register XIMAC5020 Signaller ...
iMAC5020Signaller = new XCXIMAC5020Signaller(
"XIMAC5020",
symbolConfigurations[i].symbol,
symbolConfigurations[i].period,
iDZoneOMInputs,
iDZoneSignallerConfig //
iMAC5020OMINputs,
iMAC5020SignallerConfig //
);
if (iDZoneSignaller != NULL)
if (iMAC5020Signaller != 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]);
}
}
//
// Attach Can Analyse Event Handler ...
iDZoneSignaller.canAnalyseEventListener = canAnalyseEventHandler;
//
// Register Signaller ...
Add(
iDZoneSignaller,
eaSignallers //
);
XCXOM1SignallerBase *signaller = iMAC5020Signaller;
RegisterSignaller(signaller);
ZeroMemory(signaller);
}
}
//
// Cleanup Resources ...
iDZoneOMInputs.Clean();
iDZoneSignallerConfig.Clean();
ZeroMemory(iDZoneSignaller);
//
iFIMAOMInputs.Clean();
iMAC5020OMINputs.Clean();
ZeroMemory(iFIMASignaller);
iFIMASignallerConfig.Clean();
ZeroMemory(iMAC5020Signaller);
iMAC5020SignallerConfig.Clean();
}
SpecifiedClean(symbolConfigurations);
@@ -1004,6 +1029,43 @@ class XCXOM1EAExpert : public XCBase
}
}
/**
* Register Signaller ...
*/
void RegisterSignaller(XCXOM1SignallerBase *signaller)
{
//
// Validate Signaller ...
if (signaller == NULL)
{
return;
}
//
// Attach Signaller OnSignal Event Handlers if Exists ...
int count = ArraySize(mOnSignalEventHandlers);
bool has = IsValidSize(count);
if (has)
{
//
for (int i = 0; i < count; i++)
{
signaller.AddOnSignalEventHandler(mOnSignalEventHandlers[i]);
}
}
//
// Attach Can Analyse Event Handler ...
signaller.canAnalyseEventListener = canAnalyseEventHandler;
//
// Register Signaller ...
Add(
signaller,
eaSignallers //
);
}
//
// Private ...
private: