This commit is contained in:
2025-03-18 23:41:12 +03:30
parent 3e82c26a3d
commit 9f0ebd1afe
6 changed files with 1328 additions and 1327 deletions
+180 -2
View File
@@ -1399,7 +1399,7 @@ class XCBarAnalyser : public XCBase
//
// Select OB Candidate Bars ...
XOHCL sameBar;
XOHCL rootBar;
XOHCL rootPBar;
@@ -1553,7 +1553,7 @@ class XCBarAnalyser : public XCBase
//
// Cleanup Resource ...
//
sBar.Clean();
rootBar.Clean();
@@ -2448,6 +2448,184 @@ class XCBarAnalyser : public XCBase
return result;
}
//
//
//
/**
* Check a Bar is Valid for Specified Direction of Positions ...
*
* @param bar: XOHCL instance, Start Bar ...
* @param dir: ENUM_X_DIRECTION member, Provide Direction ...
*
* @return ( bool )
*/
bool IsValidForPosition(
XOHCL &bar,
ENUM_X_DIRECTION &dir //
)
{
//
bool result = false;
//
int loopback = 3;
dir = X_DIRECTION_NONE;
//
result = bar.IsValid();
if (!result)
{
return result;
}
//
// DOJI ...
ENUM_X_DIRECTION dojiDir;
bool isDoji = IsDoji(
bar,
dojiDir //
);
bool isBullishDoji =
isDoji &&
IsBullish(dojiDir);
bool isBearishDoji =
isDoji &&
IsBearish(dojiDir);
//
// SWING ...
ENUM_X_DIRECTION swingDir;
bool isSwing = IsSwing(
bar,
swingDir //
);
bool isBullishSwing =
isSwing &&
IsBullish(swingDir);
bool isBearishSwing =
isSwing &&
IsBearish(swingDir);
//
// HAMMER ...
ENUM_X_DIRECTION hammerDir;
bool isHammer = IsHammer(
bar,
hammerDir //
);
bool isBullishHammer =
isHammer &&
IsBullish(hammerDir);
bool isBearishHammer =
isHammer &&
IsBearish(hammerDir);
//
// ENGULF ...
ENUM_X_DIRECTION engulfDir;
bool isEngulfed = IsEngulfed(
bar,
engulfDir //
);
bool isBullishEngulfed =
isEngulfed &&
IsBullish(engulfDir);
bool isBearishEngulfed =
isEngulfed &&
IsBearish(engulfDir);
//
// REJECTED ...
ENUM_X_DIRECTION rejectedDir;
bool isRejected = IsRejected(
bar,
rejectedDir //
);
bool isBullishRejected =
isRejected &&
IsBullish(rejectedDir);
bool isBearishRejected =
isRejected &&
IsBearish(rejectedDir);
//
// MOMENTUM ...
ENUM_X_DIRECTION momentumDir;
bool isMomentum = IsMomentum(
bar,
momentumDir //
);
bool isBullishMomentum =
isMomentum &&
IsBullish(momentumDir);
bool isBearishMomentum =
isMomentum &&
IsBearish(momentumDir);
//
// PULLBACK ...
ENUM_X_DIRECTION pullbackDir;
bool isPullback = IsPullback(
bar,
pullbackDir //
);
bool isBullishPullback =
isPullback &&
IsBullish(pullbackDir);
bool isBearishPullback =
isPullback &&
IsBearish(pullbackDir);
//
// Summarize Conditions ...
//
bool isBullishOr =
isBullishDoji ||
isBullishSwing ||
isBullishHammer ||
isBullishEngulfed ||
isBullishRejected ||
isBullishMomentum ||
isBullishPullback;
//
bool isBearishOr =
isBearishDoji ||
isBearishSwing ||
isBearishHammer ||
isBearishEngulfed ||
isBearishRejected ||
isBearishMomentum ||
isBearishPullback;
//
bool isBullish =
isBullishOr &&
!isBearishOr;
//
bool isBearish =
!isBullishOr &&
isBearishOr;
//
result = isBullish ||
isBearish;
if (result)
{
//
dir =
isBullish
? X_DIRECTION_BULLISH
: X_DIRECTION_BEARISH;
}
//
return result;
}
//
protected:
//