last ...
This commit is contained in:
@@ -988,48 +988,6 @@ class XCX121XKIStrategy1Signaller : public XCX121XKIBaseSignaller
|
||||
return result;
|
||||
}
|
||||
|
||||
// #region Market Structure ...
|
||||
XBoxZone supports[];
|
||||
XBoxZone resistances[];
|
||||
XBoxZone minorSupport;
|
||||
XBoxZone majorSupport;
|
||||
XBoxZone minorResistance;
|
||||
XBoxZone majorResistance;
|
||||
poiDetector.GetCurrentStructure(
|
||||
supports,
|
||||
resistances,
|
||||
minorSupport,
|
||||
majorSupport,
|
||||
minorResistance,
|
||||
majorResistance,
|
||||
barIndex,
|
||||
bar.symbol,
|
||||
iBar.period, // Minor ...
|
||||
PERIOD_H1, // Major ...
|
||||
50,
|
||||
14,
|
||||
21,
|
||||
0 //
|
||||
);
|
||||
|
||||
//
|
||||
// Refining Zones ...
|
||||
int refineLoopback = 500;
|
||||
double refineBreakThreshold = 10;
|
||||
ENUM_X_PRICE refineBreakBy = X_PRICE_CLOSE;
|
||||
poiDetector.RefineStructure(
|
||||
supports,
|
||||
resistances,
|
||||
minorSupport,
|
||||
majorSupport,
|
||||
minorResistance,
|
||||
majorResistance,
|
||||
refineLoopback,
|
||||
refineBreakThreshold,
|
||||
refineBreakBy //
|
||||
);
|
||||
// #endregion
|
||||
|
||||
// #region Reading Conditions and Scoring ...
|
||||
//
|
||||
// ATR ...
|
||||
@@ -1037,6 +995,26 @@ class XCX121XKIStrategy1Signaller : public XCX121XKIBaseSignaller
|
||||
kiParser.IsVolatilitySwitchdToHigh(barIndex);
|
||||
|
||||
// #region KI ...
|
||||
//
|
||||
bool isKIReadyForBullish = ((kiParser.IsKIFastBearish(barIndex) ||
|
||||
(kiParser.IsKIFastBullish(barIndex) &&
|
||||
iBar.IsRejected(kiHelper.GetKIFast(barIndex), X_DIRECTION_BULLISH))) &&
|
||||
kiParser.IsKISlowBullish(barIndex));
|
||||
|
||||
//
|
||||
bool isKIReadyForBearish = ((kiParser.IsKIFastBullish(barIndex) ||
|
||||
(kiParser.IsKIFastBearish(barIndex) &&
|
||||
iBar.IsRejected(kiHelper.GetKIFast(barIndex), X_DIRECTION_BEARISH))) &&
|
||||
kiParser.IsKISlowBearish(barIndex));
|
||||
|
||||
//
|
||||
bool isKIBandBullish = (kiHelper.GetKIUpper(barIndex) > kiHelper.GetKIUpper(barIndex + 1) ||
|
||||
kiHelper.GetKILower(barIndex) > kiHelper.GetKILower(barIndex + 1));
|
||||
|
||||
//
|
||||
bool isKIBandBearish = (kiHelper.GetKIUpper(barIndex) < kiHelper.GetKIUpper(barIndex + 1) ||
|
||||
kiHelper.GetKILower(barIndex) < kiHelper.GetKILower(barIndex + 1));
|
||||
|
||||
//
|
||||
bool isKIBullish = (kiParser.IsKIFastBullish(barIndex) ||
|
||||
kiParser.IsKIFastSwitchedToBullish(barIndex)) &&
|
||||
@@ -1131,46 +1109,32 @@ class XCX121XKIStrategy1Signaller : public XCX121XKIBaseSignaller
|
||||
scoreBearish++;
|
||||
}
|
||||
// #endregion
|
||||
|
||||
// #region NearInside Support/Resistance ...
|
||||
//
|
||||
int tmpSupportIDX = -1;
|
||||
bool isNearSupport = poiDetector.HasNearZone(tmpSupportIDX, iBar.close, 5, supports);
|
||||
if (isNearSupport)
|
||||
{
|
||||
scoreBullish++;
|
||||
}
|
||||
|
||||
//
|
||||
int tmpResistanceIDX = -1;
|
||||
bool isNearResistance = poiDetector.HasNearZone(tmpResistanceIDX, iBar.close, 5, resistances);
|
||||
if (isNearResistance)
|
||||
{
|
||||
scoreBearish++;
|
||||
}
|
||||
// #endregion
|
||||
// #endregion
|
||||
|
||||
// #region Summarize Directional Conditions ...
|
||||
//
|
||||
isBullish =
|
||||
isATRUp &&
|
||||
scoreBullish >= 4 &&
|
||||
(isMaBullish ||
|
||||
isNearSupport ||
|
||||
isLowerTFBullish &&
|
||||
isKIReadyForBullish &&
|
||||
isCandlestickBullish &&
|
||||
scoreBullish >= 2 &&
|
||||
(isKIBullish ||
|
||||
isMaBullish ||
|
||||
isKIWaveBullish ||
|
||||
isLowerTFBullish ||
|
||||
isCandlestickBullish);
|
||||
isKIBandBullish);
|
||||
|
||||
//
|
||||
isBearish =
|
||||
isATRUp &&
|
||||
scoreBearish >= 4 &&
|
||||
(isMaBearish ||
|
||||
isNearResistance ||
|
||||
isLowerTFBearish &&
|
||||
isKIReadyForBearish &&
|
||||
isCandlestickBearish &&
|
||||
scoreBearish >= 2 &&
|
||||
(isKIBearish ||
|
||||
isMaBearish ||
|
||||
isKIWaveBearish ||
|
||||
isLowerTFBearish ||
|
||||
isCandlestickBearish);
|
||||
isKIBandBearish);
|
||||
// #endregion
|
||||
|
||||
//
|
||||
@@ -1180,54 +1144,30 @@ class XCX121XKIStrategy1Signaller : public XCX121XKIBaseSignaller
|
||||
{
|
||||
//
|
||||
iBar.Clean();
|
||||
XClean(supports);
|
||||
XClean(resistances);
|
||||
minorSupport.Clean();
|
||||
majorSupport.Clean();
|
||||
minorResistance.Clean();
|
||||
majorResistance.Clean();
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
if (result)
|
||||
{
|
||||
// DebugBreak();
|
||||
}
|
||||
|
||||
//
|
||||
// Select Operational Zone ...
|
||||
if (isBullish)
|
||||
{
|
||||
//
|
||||
// Nearest Support ...
|
||||
if (IsValidIndex(tmpSupportIDX))
|
||||
{
|
||||
zone = supports[tmpSupportIDX];
|
||||
}
|
||||
|
||||
//
|
||||
// Make Sure Zone Exists ...
|
||||
if (!zone.IsValid())
|
||||
{
|
||||
//
|
||||
// Looking Bar Patterns to Detect Zone ...
|
||||
poiDetector.HasRecentPatternTouched(zone, iBar.close, barIndex, 5, 5, iBar.period, X_DIRECTION_BULLISH);
|
||||
}
|
||||
// Looking Bar Patterns to Detect Zone ...
|
||||
poiDetector.HasRecentPatternTouched(zone, iBar.close, barIndex, 5, 5, iBar.period, X_DIRECTION_BULLISH);
|
||||
}
|
||||
else if (isBearish)
|
||||
{
|
||||
//
|
||||
// Nearest Resistance ...
|
||||
if (IsValidIndex(tmpResistanceIDX))
|
||||
{
|
||||
zone = resistances[tmpResistanceIDX];
|
||||
}
|
||||
|
||||
//
|
||||
// Make Sure Zone Exists ...
|
||||
if (!zone.IsValid())
|
||||
{
|
||||
//
|
||||
// Looking Bar Patterns to Detect Zone ...
|
||||
poiDetector.HasRecentPatternTouched(zone, iBar.close, barIndex, 5, 5, iBar.period, X_DIRECTION_BEARISH);
|
||||
}
|
||||
// Looking Bar Patterns to Detect Zone ...
|
||||
poiDetector.HasRecentPatternTouched(zone, iBar.close, barIndex, 5, 5, iBar.period, X_DIRECTION_BEARISH);
|
||||
}
|
||||
|
||||
//
|
||||
@@ -1317,12 +1257,6 @@ class XCX121XKIStrategy1Signaller : public XCX121XKIBaseSignaller
|
||||
{
|
||||
//
|
||||
iBar.Clean();
|
||||
XClean(supports);
|
||||
XClean(resistances);
|
||||
minorSupport.Clean();
|
||||
majorSupport.Clean();
|
||||
minorResistance.Clean();
|
||||
majorResistance.Clean();
|
||||
|
||||
//
|
||||
return result;
|
||||
@@ -1358,48 +1292,13 @@ class XCX121XKIStrategy1Signaller : public XCX121XKIBaseSignaller
|
||||
config.Default();
|
||||
}
|
||||
|
||||
//
|
||||
// Minors ...
|
||||
if (minorSupport.IsValid())
|
||||
{
|
||||
//
|
||||
drawn++;
|
||||
poiDrawer.DrawZone(minorSupport, config);
|
||||
}
|
||||
if (minorResistance.IsValid())
|
||||
{
|
||||
//
|
||||
drawn++;
|
||||
poiDrawer.DrawZone(minorResistance, config);
|
||||
}
|
||||
|
||||
//
|
||||
// Majors ...
|
||||
config.bullishColor = clrLime;
|
||||
config.bearishColor = clrRed;
|
||||
config.zonesWidth = 4;
|
||||
|
||||
//
|
||||
if (majorSupport.IsValid())
|
||||
{
|
||||
//
|
||||
drawn++;
|
||||
poiDrawer.DrawZone(majorSupport, config);
|
||||
}
|
||||
if (majorResistance.IsValid())
|
||||
{
|
||||
//
|
||||
drawn++;
|
||||
poiDrawer.DrawZone(majorResistance, config);
|
||||
}
|
||||
|
||||
//
|
||||
config.Clean();
|
||||
|
||||
//
|
||||
if (drawn > 0)
|
||||
{
|
||||
DebugBreak();
|
||||
// DebugBreak();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1416,12 +1315,6 @@ class XCX121XKIStrategy1Signaller : public XCX121XKIBaseSignaller
|
||||
{
|
||||
//
|
||||
iBar.Clean();
|
||||
XClean(supports);
|
||||
XClean(resistances);
|
||||
minorSupport.Clean();
|
||||
majorSupport.Clean();
|
||||
minorResistance.Clean();
|
||||
majorResistance.Clean();
|
||||
|
||||
//
|
||||
return result;
|
||||
@@ -1455,15 +1348,12 @@ class XCX121XKIStrategy1Signaller : public XCX121XKIBaseSignaller
|
||||
);
|
||||
}
|
||||
|
||||
// #region Preparing Target ...
|
||||
// #endregion
|
||||
|
||||
//
|
||||
// Cleanup Resources ...
|
||||
iBar.Clean();
|
||||
XClean(supports);
|
||||
XClean(resistances);
|
||||
minorSupport.Clean();
|
||||
majorSupport.Clean();
|
||||
minorResistance.Clean();
|
||||
majorResistance.Clean();
|
||||
|
||||
//
|
||||
result =
|
||||
|
||||
Reference in New Issue
Block a user