Try to Complete Senario 2 (Using Breaked Boxes on Overal Trend) ...

This commit is contained in:
2025-03-11 03:53:43 +03:30
parent f952cd1d93
commit 86a4ae2be0
4 changed files with 181 additions and 33 deletions
@@ -2917,7 +2917,9 @@ struct X121SMCStrategyConditionParser
XBoxZone &box,
ENUM_X_DIRECTION &dir,
X121SMCStrategySignalProviderData &provider,
int barIndex = 0 //
int barIndex = 0,
bool forceBarType = false,
bool forceFiboPressure = false, //
)
{
//
@@ -2977,6 +2979,9 @@ struct X121SMCStrategyConditionParser
barIndex = 0;
}
//
// Define Resources ...
//
int idx = -1;
int count = 0;
@@ -3061,6 +3066,7 @@ struct X121SMCStrategyConditionParser
: false;
//
// Check Inside ...
if (isInside)
{
//
@@ -3077,6 +3083,7 @@ struct X121SMCStrategyConditionParser
}
//
// Check Inside Box is Valid or not ...
result = insideBox.IsValid();
if (!result)
{
@@ -3092,33 +3099,120 @@ struct X121SMCStrategyConditionParser
}
//
if (result)
// Update Inside Box From and To ...
// Based on Breaked ...
insideBox.from = insideBox.to;
insideBox.to = cTime;
//
// Detect Breaked Box Direction ...
bool isInsideBoxBullish = insideBox.IsBullish();
bool isInsideBoxBearish = insideBox.IsBearish();
//
// Detect Inside Box Rejection ...
//
bool isUpperBearishReject =
cBar.high >= insideBox.upper &&
cBar.GetUp() < insideBox.upper;
//
bool isUpperBullishReject =
cBar.low <= insideBox.upper &&
cBar.GetDown() > insideBox.upper;
//
bool isLowerBearishReject =
cBar.high >= insideBox.lower &&
cBar.GetUp() < insideBox.lower;
//
bool isLowerBullishReject =
cBar.low <= insideBox.lower &&
cBar.GetDown() > insideBox.lower;
//
// Apply Force Bar Type ...
if (forceBarType)
{
//
insideBox.from = insideBox.to;
insideBox.to = zBar.time;
isUpperBearishReject =
isUpperBearishReject &&
cBar.IsBearish();
//
XCBoxObject *iObj;
has = ttfHelper.mPOIDrawer.DrawBox(
insideBox,
iObj //
);
if (has) {
//
iObj.Width(2);
iObj.BoxColor(clrGray);
}
isUpperBullishReject =
isUpperBullishReject &&
cBar.IsBullish();
//
Print("Has Inside Box ...");
isLowerBearishReject =
isLowerBearishReject &&
cBar.IsBearish();
//
isLowerBullishReject =
isLowerBullishReject &&
cBar.IsBullish();
}
//
// Apply Force Fibo Pressure ...
if (forceBarType)
{
//
isUpperBearishReject =
isUpperBearishReject &&
ttfHelper
.mBarAnalyser
.HasFiboPressure(
cBar,
X_DIRECTION_BEARISH,
X_FIBO_LEVEL_382 //
);
//
isUpperBullishReject =
isUpperBullishReject &&
ttfHelper
.mBarAnalyser
.HasFiboPressure(
cBar,
X_DIRECTION_BULLISH,
X_FIBO_LEVEL_382 //
);
//
isLowerBearishReject =
isLowerBearishReject &&
ttfHelper
.mBarAnalyser
.HasFiboPressure(
cBar,
X_DIRECTION_BEARISH,
X_FIBO_LEVEL_382 //
);
//
isLowerBullishReject =
isLowerBullishReject &&
ttfHelper
.mBarAnalyser
.HasFiboPressure(
cBar,
X_DIRECTION_BULLISH,
X_FIBO_LEVEL_382 //
);
}
//
// Bullish Conditions ...
isBullish = (
//
false
hasBullishTrend &&
isInsideBoxBearish &&
isLowerBullishReject
//
);
@@ -3126,7 +3220,9 @@ struct X121SMCStrategyConditionParser
// Bearish Conditions ...
isBearish = (
//
false
hasBearishTrend &&
isInsideBoxBullish &&
isUpperBearishReject
//
);
@@ -3137,6 +3233,14 @@ struct X121SMCStrategyConditionParser
isBearish;
if (result)
{
//
box = insideBox;
//
dir =
isBullish
? X_DIRECTION_BULLISH
: X_DIRECTION_BEARISH;
}
//
@@ -3158,6 +3262,7 @@ struct X121SMCStrategyConditionParser
//
ttfState.Clean();
insideBox.Clean();
ZeroMemory(ttfHelper);
ttfConditions.Clean();
ttfXConditions.Clean();