last ...
This commit is contained in:
@@ -1917,6 +1917,9 @@ class XCXFIMAStrategy1Signaller : public XCXFIMABaseSignaller
|
||||
|
||||
//
|
||||
// Validator Flags ...
|
||||
bool validateByZones = true;
|
||||
bool validateByPinBar = true;
|
||||
bool validateByBarPatterns = true;
|
||||
bool validateByCyclesTrend = true;
|
||||
bool validateByMaFastSlowGrows = true;
|
||||
|
||||
@@ -2083,6 +2086,150 @@ class XCXFIMAStrategy1Signaller : public XCXFIMABaseSignaller
|
||||
result = isBullish || isBearish;
|
||||
}
|
||||
|
||||
//
|
||||
// Validate Has a PinBar ...
|
||||
if (result && validateByPinBar)
|
||||
{
|
||||
//
|
||||
bool isPBarIsPinBar = poiDetector.IsPinnedBar(pBar, dir);
|
||||
bool isPBarIsPinBarBullish = isPBarIsPinBar && IsXBullish(dir);
|
||||
bool isPBarIsPinBarBearish = isPBarIsPinBar && IsXBearish(dir);
|
||||
|
||||
//
|
||||
bool isP2BarIsPinBar = poiDetector.IsPinnedBar(p2Bar, dir);
|
||||
bool isP2BarIsPinBarBullish = isP2BarIsPinBar && IsXBullish(dir);
|
||||
bool isP2BarIsPinBarBearish = isP2BarIsPinBar && IsXBearish(dir);
|
||||
|
||||
//
|
||||
bool isBullishPin = isPBarIsPinBarBullish || isP2BarIsPinBarBullish;
|
||||
bool isBearishPin = isPBarIsPinBarBearish || isP2BarIsPinBarBearish;
|
||||
|
||||
//
|
||||
isBullish =
|
||||
isBullish &&
|
||||
isBullishPin;
|
||||
|
||||
//
|
||||
isBearish =
|
||||
isBearish &&
|
||||
isBearishPin;
|
||||
|
||||
//
|
||||
result = isBullish || isBearish;
|
||||
}
|
||||
|
||||
//
|
||||
// Validate By Bar Patterns ...
|
||||
if (result && validateByBarPatterns)
|
||||
{
|
||||
//
|
||||
int count = 0;
|
||||
int bullishCount = 0;
|
||||
int bearishCount = 0;
|
||||
|
||||
//
|
||||
count = pBarPatterns.Count(X_DIRECTION_BULLISH);
|
||||
bullishCount += count;
|
||||
|
||||
//
|
||||
count = p2BarPatterns.Count(X_DIRECTION_BULLISH);
|
||||
bullishCount += count;
|
||||
|
||||
//
|
||||
count = pBarPatterns.Count(X_DIRECTION_BEARISH);
|
||||
bearishCount += count;
|
||||
|
||||
//
|
||||
count = p2BarPatterns.Count(X_DIRECTION_BEARISH);
|
||||
bearishCount += count;
|
||||
|
||||
//
|
||||
bool hasBullishScore = IsValidSize(bullishCount) &&
|
||||
bullishCount > bearishCount;
|
||||
|
||||
//
|
||||
bool hasBearishScore = IsValidSize(bearishCount) &&
|
||||
bearishCount > bullishCount;
|
||||
|
||||
//
|
||||
// Reading Bar Patterns ...
|
||||
|
||||
//
|
||||
// Bullish ...
|
||||
bool isPBarHasBullishPatterns =
|
||||
(pBarPatterns.HasPattern(X_BAR_PATTERN_FLAG, X_DIRECTION_BULLISH) ||
|
||||
pBarPatterns.HasPattern(X_BAR_PATTERN_STAR, X_DIRECTION_BULLISH) ||
|
||||
pBarPatterns.HasPattern(X_BAR_PATTERN_PINNED, X_DIRECTION_BULLISH) ||
|
||||
pBarPatterns.HasPattern(X_BAR_PATTERN_RISING, X_DIRECTION_BULLISH) ||
|
||||
pBarPatterns.HasPattern(X_BAR_PATTERN_ENGULFED, X_DIRECTION_BULLISH) ||
|
||||
pBarPatterns.HasPattern(X_BAR_PATTERN_MOMENTUM, X_DIRECTION_BULLISH) ||
|
||||
pBarPatterns.HasPattern(X_BAR_PATTERN_PIERCING, X_DIRECTION_BULLISH) ||
|
||||
pBarPatterns.HasPattern(X_BAR_PATTERN_SIGNALKEY, X_DIRECTION_BULLISH) ||
|
||||
pBarPatterns.HasPattern(X_BAR_PATTERN_TRUE_GAPED, X_DIRECTION_BULLISH));
|
||||
bool isP2BarHasBullishPatterns =
|
||||
(p2BarPatterns.HasPattern(X_BAR_PATTERN_FLAG, X_DIRECTION_BULLISH) ||
|
||||
p2BarPatterns.HasPattern(X_BAR_PATTERN_STAR, X_DIRECTION_BULLISH) ||
|
||||
p2BarPatterns.HasPattern(X_BAR_PATTERN_PINNED, X_DIRECTION_BULLISH) ||
|
||||
p2BarPatterns.HasPattern(X_BAR_PATTERN_RISING, X_DIRECTION_BULLISH) ||
|
||||
p2BarPatterns.HasPattern(X_BAR_PATTERN_ENGULFED, X_DIRECTION_BULLISH) ||
|
||||
p2BarPatterns.HasPattern(X_BAR_PATTERN_MOMENTUM, X_DIRECTION_BULLISH) ||
|
||||
p2BarPatterns.HasPattern(X_BAR_PATTERN_PIERCING, X_DIRECTION_BULLISH) ||
|
||||
p2BarPatterns.HasPattern(X_BAR_PATTERN_SIGNALKEY, X_DIRECTION_BULLISH) ||
|
||||
p2BarPatterns.HasPattern(X_BAR_PATTERN_TRUE_GAPED, X_DIRECTION_BULLISH));
|
||||
bool hasBullishPatterns = isPBarHasBullishPatterns || isP2BarHasBullishPatterns;
|
||||
|
||||
//
|
||||
// Bearish ...
|
||||
bool isPBarHasBearishPatterns =
|
||||
(pBarPatterns.HasPattern(X_BAR_PATTERN_FLAG, X_DIRECTION_BEARISH) ||
|
||||
pBarPatterns.HasPattern(X_BAR_PATTERN_STAR, X_DIRECTION_BEARISH) ||
|
||||
pBarPatterns.HasPattern(X_BAR_PATTERN_PINNED, X_DIRECTION_BEARISH) ||
|
||||
pBarPatterns.HasPattern(X_BAR_PATTERN_RISING, X_DIRECTION_BEARISH) ||
|
||||
pBarPatterns.HasPattern(X_BAR_PATTERN_ENGULFED, X_DIRECTION_BEARISH) ||
|
||||
pBarPatterns.HasPattern(X_BAR_PATTERN_MOMENTUM, X_DIRECTION_BEARISH) ||
|
||||
pBarPatterns.HasPattern(X_BAR_PATTERN_PIERCING, X_DIRECTION_BEARISH) ||
|
||||
pBarPatterns.HasPattern(X_BAR_PATTERN_SIGNALKEY, X_DIRECTION_BEARISH) ||
|
||||
pBarPatterns.HasPattern(X_BAR_PATTERN_TRUE_GAPED, X_DIRECTION_BEARISH));
|
||||
bool isP2BarHasBearishPatterns =
|
||||
(p2BarPatterns.HasPattern(X_BAR_PATTERN_FLAG, X_DIRECTION_BEARISH) ||
|
||||
p2BarPatterns.HasPattern(X_BAR_PATTERN_STAR, X_DIRECTION_BEARISH) ||
|
||||
p2BarPatterns.HasPattern(X_BAR_PATTERN_PINNED, X_DIRECTION_BEARISH) ||
|
||||
p2BarPatterns.HasPattern(X_BAR_PATTERN_RISING, X_DIRECTION_BEARISH) ||
|
||||
p2BarPatterns.HasPattern(X_BAR_PATTERN_ENGULFED, X_DIRECTION_BEARISH) ||
|
||||
p2BarPatterns.HasPattern(X_BAR_PATTERN_MOMENTUM, X_DIRECTION_BEARISH) ||
|
||||
p2BarPatterns.HasPattern(X_BAR_PATTERN_PIERCING, X_DIRECTION_BEARISH) ||
|
||||
p2BarPatterns.HasPattern(X_BAR_PATTERN_SIGNALKEY, X_DIRECTION_BEARISH) ||
|
||||
p2BarPatterns.HasPattern(X_BAR_PATTERN_TRUE_GAPED, X_DIRECTION_BEARISH));
|
||||
bool hasBearishPatterns = isPBarHasBearishPatterns || isP2BarHasBearishPatterns;
|
||||
|
||||
//
|
||||
isBullish =
|
||||
isBullish &&
|
||||
hasBullishScore &&
|
||||
hasBullishPatterns;
|
||||
|
||||
//
|
||||
isBearish =
|
||||
isBearish &&
|
||||
hasBearishScore &&
|
||||
hasBearishPatterns;
|
||||
|
||||
//
|
||||
result = isBullish || isBearish;
|
||||
}
|
||||
|
||||
//
|
||||
// Validate By Zones ...
|
||||
if (result && validateByZones) {
|
||||
//
|
||||
XBoxZone zones[];
|
||||
int count = poiDetector.DetectZones(
|
||||
pBar,
|
||||
zones,
|
||||
true, // Validate Zones ...
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
if (result)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user