This commit is contained in:
2025-06-01 13:16:07 +03:30
parent c9c40ff862
commit 8611e4a221
5 changed files with 114 additions and 41 deletions
+6 -3
View File
@@ -96,7 +96,6 @@ class XCXCATBEAExpert : public XCBase
bool eaFilterBasedOnDelta; // Filter Based On Delta
bool eaFilterBasedOnVolume; // Filter Based On Volume
bool eaFilterBasedOnSignalBar; // Filter Based on Signal Bar
bool eaFilterBasedOnRoundPrice; // Filter Based On Round Prices
bool eaFilterBasedOnHKSignalBar; // Filter Based On HK Signal Bar
//
@@ -535,7 +534,6 @@ class XCXCATBEAExpert : public XCBase
iSignallerInputs.filters.filterBasedOnDelta = eaFilterBasedOnDelta;
iSignallerInputs.filters.filterBasedOnVolume = eaFilterBasedOnVolume;
iSignallerInputs.filters.filterBasedOnSignalBar = eaFilterBasedOnSignalBar;
iSignallerInputs.filters.filterBasedOnRoundPrice = eaFilterBasedOnRoundPrice;
iSignallerInputs.filters.filterBasedOnHKSignalBar = eaFilterBasedOnHKSignalBar;
//
@@ -680,6 +678,10 @@ class XCXCATBEAExpert : public XCBase
XPosition iPositions[]; // Retrieve Signaller Positions ...
XCATBEAStrategyConditions iConditions; // Recieve Triggered Conditions ...
//
// Check Active Session ...
bool isActiveSession = eaTradeManager.IsActiveSession(iSymbol);
//
// Reading Signaller Positions ...
eaTradeManager.GetPositions(
@@ -694,7 +696,8 @@ class XCXCATBEAExpert : public XCBase
iSignaller.ProcessTick(
iPositions,
iGuards,
iConditions //
iConditions,
isActiveSession //
);
//
+31 -2
View File
@@ -182,7 +182,8 @@ class XCXCATBEASignaller : XCBase
void ProcessTick(
XPosition &positions[],
XGuard &guards[],
XCATBEAStrategyConditions &conditions //
XCATBEAStrategyConditions &conditions,
bool isActiveSession = true //
)
{
//
@@ -293,6 +294,16 @@ class XCXCATBEASignaller : XCBase
return;
}
//
// Here we Check Active Session ...
// and Prevent Moving forward if there is not
// Session actives ...
// for improvement Calculation Speeds ...
if (!isActiveSession)
{
return;
}
//
// Initialize Bar ...
bar.Init(
@@ -504,9 +515,27 @@ class XCXCATBEASignaller : XCBase
if (result &&
conditions.triggerBlock.IsValid())
{
//
// Checking Score ...
double bullishScore = 0;
double bearishScore = 0;
conditions
.conditions
.GenerateScore(
bullishScore,
bearishScore //
);
bool isScorePassed =
isBullish
? bullishScore > bearishScore
: bearishScore > bullishScore;
//
// Complete Conditions Here ...
conditions.triggerTime = TimeCurrent();
if (isScorePassed)
{
conditions.triggerTime = TimeCurrent();
}
}
//
@@ -1296,6 +1296,42 @@ class XCXCATBEATradeManager : public XCBaseAlert
}
}
/**
* Check Specified Symbol is Active for
* Analysing or Open Trades ...
*/
bool IsActiveSession(string symbol)
{
//
bool result = false;
//
// Validate Args ...
result = IsValid(symbol);
if (!result)
{
return result;
}
//
// Check Symbol Session Exists or not ...
int symbolSessionIDX = -1;
bool isSymbolSessionExists = FindSymbolSession(
symbolSessionIDX,
symbol //
);
//
// Chack Trade Session Validating ...
if (isSymbolSessionExists)
{
result = sessions[symbolSessionIDX].CanTrade();
}
//
return result;
}
/**
* Check Signal Execution Conditions ...
*