This commit is contained in:
2025-03-09 01:03:44 +03:30
parent f428892c6d
commit d14f07ba80
8 changed files with 573 additions and 31 deletions
@@ -216,9 +216,9 @@ class XCX121SMCXWZSignalDetector : public XCBase
//
// Detect Zones and Boxes ...
hasWaitingZones = workingZone.DetectZone(
provider //
);
// hasWaitingZones = workingZone.DetectZone(
// provider //
// );
//
hasWaitingBoxes = workingZone.HasWaitingBoxes();
@@ -281,18 +281,18 @@ class XCX121SMCXWZSignalDetector : public XCBase
//
// Detect Signal Box ...
//
bool isZoneActivated =
hasWorkingZone &&
hasWaitingZones &&
workingZone.IsZoneActivated(
activatedZoneIDX,
activatedFVGIDX,
signalBoxDir,
signalProvider,
provider,
zIndex //
);
// //
// bool isZoneActivated =
// hasWorkingZone &&
// hasWaitingZones &&
// workingZone.IsZoneActivated(
// activatedZoneIDX,
// activatedFVGIDX,
// signalBoxDir,
// signalProvider,
// provider,
// zIndex //
// );
//
// hasSignalBox =
@@ -306,6 +306,17 @@ class XCX121SMCXWZSignalDetector : public XCBase
// zIndex //
// );
//
hasSignalBox =
hasWorkingZone &&
workingZone.DetectSignalConditions(
signalBox,
signalBoxDir,
signalProvider,
provider,
zIndex //
);
//
if (hasSignalBox)
{
+101 -7
View File
@@ -1061,7 +1061,7 @@ struct X121SMCStrategyXWZWorkingZone
//
result = isPVPassed;
if (result)
{
//
@@ -1124,7 +1124,7 @@ struct X121SMCStrategyXWZWorkingZone
bool IsBoxActivated(
XBoxZone &box,
ENUM_X_DIRECTION &dir,
ENUM_X121SMC_XWZ_PROVIDERS &signalProviderl,
ENUM_X121SMC_XWZ_PROVIDERS &signalProvider,
X121SMCStrategySignalProviderData &provider,
int barIndex = 0 //
)
@@ -1135,7 +1135,7 @@ struct X121SMCStrategyXWZWorkingZone
//
box.Clean();
dir = X_DIRECTION_NONE;
signalProviderl = X121SMC_XWZ_PROVIDER_NONE;
signalProvider = X121SMC_XWZ_PROVIDER_NONE;
//
if (barIndex < 0)
@@ -1428,7 +1428,7 @@ struct X121SMCStrategyXWZWorkingZone
//
box = iBox;
dir = iBox.dir;
signalProviderl = X121SMC_XWZ_PROVIDER_ACTIVATED_BOX;
signalProvider = X121SMC_XWZ_PROVIDER_ACTIVATED_BOX;
//
iBox.Clean();
@@ -1590,7 +1590,7 @@ struct X121SMCStrategyXWZWorkingZone
isTrendBullish
? X_DIRECTION_BULLISH
: X_DIRECTION_BEARISH;
signalProviderl = X121SMC_XWZ_PROVIDER_ACTIVATED_MA;
signalProvider = X121SMC_XWZ_PROVIDER_ACTIVATED_MA;
break;
}
@@ -1842,7 +1842,7 @@ struct X121SMCStrategyXWZWorkingZone
//
dir = X_DIRECTION_BEARISH;
signalProviderl = X121SMC_XWZ_PROVIDER_ACTIVATED_AREA;
signalProvider = X121SMC_XWZ_PROVIDER_ACTIVATED_AREA;
//
iBox.Clean();
@@ -1946,7 +1946,7 @@ struct X121SMCStrategyXWZWorkingZone
//
dir = X_DIRECTION_BULLISH;
signalProviderl = X121SMC_XWZ_PROVIDER_ACTIVATED_AREA;
signalProvider = X121SMC_XWZ_PROVIDER_ACTIVATED_AREA;
//
iBox.Clean();
@@ -1986,6 +1986,100 @@ struct X121SMCStrategyXWZWorkingZone
return result;
}
//
bool DetectSignalConditions(
XBoxZone &box,
ENUM_X_DIRECTION &dir,
ENUM_X121SMC_XWZ_PROVIDERS &signalProvider,
X121SMCStrategySignalProviderData &provider,
int barIndex = 0 //
)
{
//
bool result = false;
//
// Normalize Bars ...
//
box.Clean();
dir = X_DIRECTION_NONE;
signalProvider = X121SMC_XWZ_PROVIDER_NONE;
//
if (barIndex < 0)
{
barIndex = 0;
}
//
result = IsValid();
if (!result)
{
return result;
}
//
XOHCL zBar;
XOHCL cBar;
XOHCL pBar;
//
// Initial Bars ...
result = zBar.Init(
symbol,
period,
barIndex //
);
result =
result &&
zBar.GetPreviousBar(cBar);
result =
result &&
cBar.GetPreviousBar(pBar);
if (!result)
{
//
zBar.Clean();
cBar.Clean();
pBar.Clean();
//
return result;
}
//
// Detecting Signal Conditions ...
X121SMCStrategyConditionParser decisionParser;
decisionParser.Parse(provider.decisionXConditions);
//
bool has =
//
// false
decisionParser.isX3MaCrossedInsideValesGoldenZone
//
;
if (has)
{
Print("Condition ...");
}
//
// Senario 1:
// ----------
//
//
zBar.Clean();
cBar.Clean();
pBar.Clean();
//
return result;
}
//
bool IsExists(XOBFVG &zone)
{