last ...
This commit is contained in:
@@ -988,6 +988,29 @@ class XCX121XKIStrategy1Signaller : public XCX121XKIBaseSignaller
|
||||
return result;
|
||||
}
|
||||
|
||||
// #region Swings/OrderFlow ...
|
||||
//
|
||||
// Swings ...
|
||||
XBoxZone swingLow;
|
||||
XBoxZone swingHigh;
|
||||
bool hasSwings = poiDetector.DetectRecentSwings(
|
||||
swingHigh,
|
||||
swingLow,
|
||||
barIndex //
|
||||
);
|
||||
|
||||
//
|
||||
// Order Flow ...
|
||||
|
||||
//
|
||||
XBoxZone bullishOrderFlow[];
|
||||
result = poiDetector.HasOrderFlow(bullishOrderFlow, barIndex, 4, X_DIRECTION_BULLISH, 15);
|
||||
|
||||
//
|
||||
XBoxZone bearishOrderFlow[];
|
||||
result = poiDetector.HasOrderFlow(bearishOrderFlow, barIndex, 4, X_DIRECTION_BEARISH, 15);
|
||||
// #endregion
|
||||
|
||||
// #region Reading Conditions and Scoring ...
|
||||
//
|
||||
// ATR ...
|
||||
@@ -1150,24 +1173,96 @@ class XCX121XKIStrategy1Signaller : public XCX121XKIBaseSignaller
|
||||
}
|
||||
|
||||
//
|
||||
if (result)
|
||||
{
|
||||
// DebugBreak();
|
||||
}
|
||||
// Select Operational Zone ...
|
||||
ENUM_X_DIRECTION patternsDir[];
|
||||
ENUM_X_BAR_PATTERN patterns[];
|
||||
|
||||
//
|
||||
// Select Operational Zone ...
|
||||
GetAllBarPatters(patterns, patternsDir);
|
||||
|
||||
//
|
||||
// XAUUSD ...
|
||||
|
||||
// //
|
||||
// // FVG ...
|
||||
// Add(X_BAR_PATTERN_FVG, patterns);
|
||||
// Add(X_DIRECTION_NONE, patternsDir);
|
||||
|
||||
// //
|
||||
// // Piercing ...
|
||||
// Add(X_BAR_PATTERN_PIERCING, patterns);
|
||||
// Add(X_DIRECTION_NONE, patternsDir);
|
||||
|
||||
//
|
||||
// EURUSD ...
|
||||
|
||||
//
|
||||
// Add(X_BAR_PATTERN_STAR, patterns);
|
||||
// Add(X_DIRECTION_NONE, patternsDir);
|
||||
|
||||
// //
|
||||
// Add(X_BAR_PATTERN_SUPPORT, patterns);
|
||||
// Add(X_DIRECTION_NONE, patternsDir);
|
||||
|
||||
// //
|
||||
// Add(X_BAR_PATTERN_RESISTANCE, patterns);
|
||||
// Add(X_DIRECTION_NONE, patternsDir);
|
||||
|
||||
//
|
||||
// Add(X_BAR_PATTERN_SIGNALKEY, patterns);
|
||||
// Add(X_DIRECTION_NONE, patternsDir);
|
||||
|
||||
//
|
||||
int nearestOrderFlowIDX = -1;
|
||||
if (isBullish)
|
||||
{
|
||||
//
|
||||
// Looking Bar Patterns to Detect Zone ...
|
||||
poiDetector.HasRecentPatternTouched(zone, iBar.close, barIndex, 5, 5, iBar.period, X_DIRECTION_BULLISH);
|
||||
isBullish =
|
||||
isBullish &&
|
||||
HasChild(bullishOrderFlow) &&
|
||||
poiDetector.HasNearZone(
|
||||
nearestOrderFlowIDX,
|
||||
iBar.close,
|
||||
5,
|
||||
bullishOrderFlow //
|
||||
) &&
|
||||
poiDetector.HasRecentPatternTouched(
|
||||
zone,
|
||||
patterns,
|
||||
patternsDir,
|
||||
iBar.close,
|
||||
barIndex,
|
||||
5,
|
||||
5,
|
||||
iBar.period,
|
||||
X_DIRECTION_BULLISH //
|
||||
);
|
||||
}
|
||||
else if (isBearish)
|
||||
{
|
||||
//
|
||||
// Looking Bar Patterns to Detect Zone ...
|
||||
poiDetector.HasRecentPatternTouched(zone, iBar.close, barIndex, 5, 5, iBar.period, X_DIRECTION_BEARISH);
|
||||
isBearish =
|
||||
isBearish &&
|
||||
HasChild(bearishOrderFlow) &&
|
||||
poiDetector.HasNearZone(
|
||||
nearestOrderFlowIDX,
|
||||
iBar.close,
|
||||
5,
|
||||
bearishOrderFlow //
|
||||
) &&
|
||||
poiDetector.HasRecentPatternTouched(
|
||||
zone,
|
||||
patterns,
|
||||
patternsDir,
|
||||
iBar.close,
|
||||
barIndex,
|
||||
5,
|
||||
5,
|
||||
iBar.period,
|
||||
X_DIRECTION_BEARISH //
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
@@ -1293,13 +1388,45 @@ class XCX121XKIStrategy1Signaller : public XCX121XKIBaseSignaller
|
||||
}
|
||||
|
||||
//
|
||||
config.Clean();
|
||||
if (swingLow.IsValid())
|
||||
{
|
||||
//
|
||||
drawn++;
|
||||
poiDrawer.DrawZone(swingLow, config);
|
||||
}
|
||||
|
||||
//
|
||||
if (swingHigh.IsValid())
|
||||
{
|
||||
//
|
||||
drawn++;
|
||||
poiDrawer.DrawZone(swingHigh, config);
|
||||
}
|
||||
|
||||
//
|
||||
if (HasChild(bullishOrderFlow))
|
||||
{
|
||||
//
|
||||
drawn += ArraySize(bullishOrderFlow);
|
||||
poiDrawer.DrawZones(bullishOrderFlow, config);
|
||||
}
|
||||
|
||||
//
|
||||
if (HasChild(bearishOrderFlow))
|
||||
{
|
||||
//
|
||||
drawn += ArraySize(bearishOrderFlow);
|
||||
poiDrawer.DrawZones(bearishOrderFlow, config);
|
||||
}
|
||||
|
||||
//
|
||||
if (drawn > 0)
|
||||
{
|
||||
// DebugBreak();
|
||||
}
|
||||
|
||||
//
|
||||
config.Clean();
|
||||
}
|
||||
|
||||
//
|
||||
@@ -1311,20 +1438,12 @@ class XCX121XKIStrategy1Signaller : public XCX121XKIBaseSignaller
|
||||
: X_DIRECTION_NONE;
|
||||
result = result &&
|
||||
HasDirection(dir);
|
||||
if (!result)
|
||||
{
|
||||
//
|
||||
iBar.Clean();
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
// Prepare Zone ...
|
||||
double entry = GetEntry(iBar.symbol, dir);
|
||||
if (result)
|
||||
{
|
||||
//
|
||||
// Prepare Zone ...
|
||||
double entry = GetEntry(iBar.symbol, dir);
|
||||
|
||||
//
|
||||
double upper = isBullish
|
||||
? entry
|
||||
@@ -1348,12 +1467,15 @@ class XCX121XKIStrategy1Signaller : public XCX121XKIBaseSignaller
|
||||
);
|
||||
}
|
||||
|
||||
// #region Preparing Target ...
|
||||
// #endregion
|
||||
|
||||
//
|
||||
// Cleanup Resources ...
|
||||
iBar.Clean();
|
||||
swingLow.Clean();
|
||||
XClean(patterns);
|
||||
swingHigh.Clean();
|
||||
XClean(patternsDir);
|
||||
XClean(bullishOrderFlow);
|
||||
XClean(bearishOrderFlow);
|
||||
|
||||
//
|
||||
result =
|
||||
@@ -1371,7 +1493,8 @@ class XCX121XKIStrategy1Signaller : public XCX121XKIBaseSignaller
|
||||
*
|
||||
* @return ( bool )
|
||||
*/
|
||||
bool Strategy2HasSignal(
|
||||
bool
|
||||
Strategy2HasSignal(
|
||||
XOHCL &bar,
|
||||
XBoxZone &zone,
|
||||
XTarget &targets[],
|
||||
|
||||
Reference in New Issue
Block a user