This commit is contained in:
2025-04-20 10:10:27 +03:30
parent 7e6d34edc2
commit 6cbeee326f
5 changed files with 1214 additions and 15 deletions
+1 -1
View File
@@ -5465,7 +5465,7 @@ struct XBoxZone
// //
string typeStr = IsValid(type) string typeStr = IsValid(type)
? type + "_" ? type
: "XBOX"; : "XBOX";
string result = string result =
// //
File diff suppressed because it is too large Load Diff
+340
View File
@@ -40,8 +40,14 @@ class XCXCAEAPOIDrawer : public XCBase
bool drawSWLPivots; bool drawSWLPivots;
bool drawPeakPivots; bool drawPeakPivots;
bool drawValePivots; bool drawValePivots;
bool drawRSIPeakPivots;
bool drawRSIValePivots;
bool drawCCIPeakPivots;
bool drawCCIValePivots;
bool drawKIBullishPivots; bool drawKIBullishPivots;
bool drawKIBearishPivots; bool drawKIBearishPivots;
bool drawFVGBullishPivots;
bool drawFVGBearishPivots;
bool drawPeakSWHResPivots; bool drawPeakSWHResPivots;
bool drawValeSWLSupPivots; bool drawValeSWLSupPivots;
bool drawTKIBullishPivots; bool drawTKIBullishPivots;
@@ -80,8 +86,14 @@ class XCXCAEAPOIDrawer : public XCBase
mSWLPivotObjects.Clear(); mSWLPivotObjects.Clear();
mPeakPivotObjects.Clear(); mPeakPivotObjects.Clear();
mValePivotObjects.Clear(); mValePivotObjects.Clear();
mRSIPeakPivotObjects.Clear();
mRSIValePivotObjects.Clear();
mCCIPeakPivotObjects.Clear();
mCCIValePivotObjects.Clear();
mKIBullishPivotObjects.Clear(); mKIBullishPivotObjects.Clear();
mKIBearishPivotObjects.Clear(); mKIBearishPivotObjects.Clear();
mFVGBullishPivotObjects.Clear();
mFVGBearishPivotObjects.Clear();
mPeakSWHResPivotObjects.Clear(); mPeakSWHResPivotObjects.Clear();
mValeSWLSupPivotObjects.Clear(); mValeSWLSupPivotObjects.Clear();
mTKIBullishPivotObjects.Clear(); mTKIBullishPivotObjects.Clear();
@@ -116,8 +128,14 @@ class XCXCAEAPOIDrawer : public XCBase
drawSWLPivots = false; drawSWLPivots = false;
drawPeakPivots = false; drawPeakPivots = false;
drawValePivots = false; drawValePivots = false;
drawRSIPeakPivots = false;
drawRSIValePivots = false;
drawCCIPeakPivots = false;
drawCCIValePivots = false;
drawKIBullishPivots = false; drawKIBullishPivots = false;
drawKIBearishPivots = false; drawKIBearishPivots = false;
drawFVGBullishPivots = false;
drawFVGBearishPivots = false;
drawPeakSWHResPivots = false; drawPeakSWHResPivots = false;
drawValeSWLSupPivots = false; drawValeSWLSupPivots = false;
drawTKIBullishPivots = false; drawTKIBullishPivots = false;
@@ -142,8 +160,14 @@ class XCXCAEAPOIDrawer : public XCBase
DrawSWLPivots(to); DrawSWLPivots(to);
DrawPeakPivots(to); DrawPeakPivots(to);
DrawValePivots(to); DrawValePivots(to);
DrawRSIPeakPivots(to);
DrawRSIValePivots(to);
DrawCCIPeakPivots(to);
DrawCCIValePivots(to);
DrawKIBullishPivots(to); DrawKIBullishPivots(to);
DrawKIBearishPivots(to); DrawKIBearishPivots(to);
DrawFVGBullishPivots(to);
DrawFVGBearishPivots(to);
DrawPeakSWHResPivots(to); DrawPeakSWHResPivots(to);
DrawValeSWLSupPivots(to); DrawValeSWLSupPivots(to);
DrawTKIBullishPivots(to); DrawTKIBullishPivots(to);
@@ -481,6 +505,96 @@ class XCXCAEAPOIDrawer : public XCBase
iBox.Clean(); iBox.Clean();
} }
} }
//
void DrawFVGBullishPivots(datetime to = NULL) {
//
if (!drawFVGBullishPivots) {
return;
}
//
bool canUpdateTo = IsValid(to);
//
bool has = detector.HasFVGBullishPivots();
if (!has) {
return;
}
//
int count = detector.CountFVGBullishPivots();
for (int i = 0; i < count; i++) {
//
XBoxZone iBox;
has = detector.fvgBullishPivots[i].AsBox(iBox);
if (!has) {
//
iBox.Clean();
continue;
}
//
if (canUpdateTo) {
iBox.to = to;
}
//
XCBoxObject *iObj;
has = drawer.DrawBox(
iBox,
iObj //
);
if (has) {
mFVGBullishPivotObjects.Add(iObj);
}
}
}
//
void DrawFVGBearishPivots(datetime to = NULL) {
//
if (!drawFVGBearishPivots) {
return;
}
//
bool canUpdateTo = IsValid(to);
//
bool has = detector.HasFVGBearishPivots();
if (!has) {
return;
}
//
int count = detector.CountFVGBearishPivots();
for (int i = 0; i < count; i++) {
//
XBoxZone iBox;
has = detector.fvgBearishPivots[i].AsBox(iBox);
if (!has) {
//
iBox.Clean();
continue;
}
//
if (canUpdateTo) {
iBox.to = to;
}
//
XCBoxObject *iObj;
has = drawer.DrawBox(
iBox,
iObj //
);
if (has) {
mFVGBearishPivotObjects.Add(iObj);
}
}
}
// //
void DrawPeakSWHResPivots(datetime to = NULL) void DrawPeakSWHResPivots(datetime to = NULL)
@@ -1250,6 +1364,116 @@ class XCXCAEAPOIDrawer : public XCBase
} }
} }
//
void DrawRSIPeakPivots(datetime to = NULL)
{
//
if (!drawRSIPeakPivots)
{
return;
}
//
to = NULL;
bool canUpdateTo = IsValid(to);
//
int count = 0;
bool has = detector.HasRSIPeakPivots();
if (has)
{
//
count = detector.CountRSIPeakPivots();
for (int i = 0; i < count; i++)
{
//
XBoxZone iBox;
has = detector.rsiPeakPivots[i].AsBox(iBox);
if (!has)
{
//
iBox.Clean();
continue;
}
//
if (canUpdateTo)
{
iBox.to = to;
}
//
XCBoxObject *iObj;
has = drawer.DrawBox(
iBox,
iObj //
);
if (has)
{
mRSIPeakPivotObjects.Add(iObj);
}
//
iBox.Clean();
}
}
}
//
void DrawRSIValePivots(datetime to = NULL)
{
//
if (!drawRSIValePivots)
{
return;
}
//
to = NULL;
bool canUpdateTo = IsValid(to);
//
int count = 0;
bool has = detector.HasRSIValePivots();
if (has)
{
//
count = detector.CountRSIValePivots();
for (int i = 0; i < count; i++)
{
//
XBoxZone iBox;
has = detector.rsiValePivots[i].AsBox(iBox);
if (!has)
{
//
iBox.Clean();
continue;
}
//
if (canUpdateTo)
{
iBox.to = to;
}
//
XCBoxObject *iObj;
has = drawer.DrawBox(
iBox,
iObj //
);
if (has)
{
mRSIValePivotObjects.Add(iObj);
}
//
iBox.Clean();
}
}
}
// //
void DrawRSICrossedOverOSPivots(datetime to = NULL) void DrawRSICrossedOverOSPivots(datetime to = NULL)
{ {
@@ -1356,6 +1580,116 @@ class XCXCAEAPOIDrawer : public XCBase
} }
} }
//
void DrawCCIPeakPivots(datetime to = NULL)
{
//
if (!drawCCIPeakPivots)
{
return;
}
//
to = NULL;
bool canUpdateTo = IsValid(to);
//
int count = 0;
bool has = detector.HasCCIPeakPivots();
if (has)
{
//
count = detector.CountCCIPeakPivots();
for (int i = 0; i < count; i++)
{
//
XBoxZone iBox;
has = detector.cciPeakPivots[i].AsBox(iBox);
if (!has)
{
//
iBox.Clean();
continue;
}
//
if (canUpdateTo)
{
iBox.to = to;
}
//
XCBoxObject *iObj;
has = drawer.DrawBox(
iBox,
iObj //
);
if (has)
{
mCCIPeakPivotObjects.Add(iObj);
}
//
iBox.Clean();
}
}
}
//
void DrawCCIValePivots(datetime to = NULL)
{
//
if (!drawCCIValePivots)
{
return;
}
//
to = NULL;
bool canUpdateTo = IsValid(to);
//
int count = 0;
bool has = detector.HasCCIValePivots();
if (has)
{
//
count = detector.CountCCIValePivots();
for (int i = 0; i < count; i++)
{
//
XBoxZone iBox;
has = detector.cciValePivots[i].AsBox(iBox);
if (!has)
{
//
iBox.Clean();
continue;
}
//
if (canUpdateTo)
{
iBox.to = to;
}
//
XCBoxObject *iObj;
has = drawer.DrawBox(
iBox,
iObj //
);
if (has)
{
mCCIValePivotObjects.Add(iObj);
}
//
iBox.Clean();
}
}
}
// //
void DrawCCICrossedOverOSPivots(datetime to = NULL) void DrawCCICrossedOverOSPivots(datetime to = NULL)
{ {
@@ -1483,8 +1817,14 @@ class XCXCAEAPOIDrawer : public XCBase
CArrayObj mSWLPivotObjects; CArrayObj mSWLPivotObjects;
CArrayObj mPeakPivotObjects; CArrayObj mPeakPivotObjects;
CArrayObj mValePivotObjects; CArrayObj mValePivotObjects;
CArrayObj mRSIPeakPivotObjects;
CArrayObj mRSIValePivotObjects;
CArrayObj mCCIPeakPivotObjects;
CArrayObj mCCIValePivotObjects;
CArrayObj mKIBullishPivotObjects; CArrayObj mKIBullishPivotObjects;
CArrayObj mKIBearishPivotObjects; CArrayObj mKIBearishPivotObjects;
CArrayObj mFVGBullishPivotObjects;
CArrayObj mFVGBearishPivotObjects;
CArrayObj mPeakSWHResPivotObjects; CArrayObj mPeakSWHResPivotObjects;
CArrayObj mValeSWLSupPivotObjects; CArrayObj mValeSWLSupPivotObjects;
CArrayObj mTKIBullishPivotObjects; CArrayObj mTKIBullishPivotObjects;
+24 -2
View File
@@ -930,7 +930,7 @@ bool DetectXCAEAConditions(
// //
bool isCond1Bullish = bool isCond1Bullish =
// //
// false && false &&
isCCIBullish && isCCIBullish &&
isBoxActivated && isBoxActivated &&
pivotBox.IsValid() && pivotBox.IsValid() &&
@@ -941,7 +941,7 @@ bool DetectXCAEAConditions(
// //
bool isCond1Bearish = bool isCond1Bearish =
// //
// false && false &&
isCCIBearish && isCCIBearish &&
isBoxActivated && isBoxActivated &&
pivotBox.IsValid() && pivotBox.IsValid() &&
@@ -970,6 +970,7 @@ bool DetectXCAEAConditions(
// //
bool isCond2Bullish = bool isCond2Bullish =
// //
false &&
isBoxRejected && isBoxRejected &&
pivotBox.IsValid() && pivotBox.IsValid() &&
pivotBox.IsBullish() pivotBox.IsBullish()
@@ -979,6 +980,7 @@ bool DetectXCAEAConditions(
// //
bool isCond2Bearish = bool isCond2Bearish =
// //
false &&
isBoxRejected && isBoxRejected &&
pivotBox.IsValid() && pivotBox.IsValid() &&
pivotBox.IsBearish() pivotBox.IsBearish()
@@ -1000,6 +1002,26 @@ bool DetectXCAEAConditions(
Print("Cond2"); Print("Cond2");
} }
//
// Cond3 Act Using CCi Peaks and Vales ...
//
bool isCond3Bullish = false;
//
bool isCond3Bearish = false;
//
bool isCond3 = isCond3Bullish ||
isCond3Bearish;
if (isCond3)
{
//
//
Print("Cond3");
}
// //
// Summarise Conditions ... // Summarise Conditions ...
+24 -12
View File
@@ -692,7 +692,7 @@ class XCXCAEASignaller : XCBase
inputs.caInputs.showKI = true; inputs.caInputs.showKI = true;
inputs.caInputs.showTKI = true; inputs.caInputs.showTKI = true;
inputs.caInputs.showSar = false; inputs.caInputs.showSar = false;
inputs.caInputs.showTrend = true; inputs.caInputs.showTrend = false;
inputs.caInputs.showSwings = false; inputs.caInputs.showSwings = false;
inputs.caInputs.showLongCycle = false; inputs.caInputs.showLongCycle = false;
inputs.caInputs.showHindCycle = false; inputs.caInputs.showHindCycle = false;
@@ -714,7 +714,7 @@ class XCXCAEASignaller : XCBase
// //
// Oscillators Views ... // Oscillators Views ...
inputs.showCCI = true; inputs.showCCI = false;
inputs.showRSI = false; inputs.showRSI = false;
inputs.showMFI = false; inputs.showMFI = false;
inputs.showRVI = false; inputs.showRVI = false;
@@ -738,10 +738,16 @@ class XCXCAEASignaller : XCBase
detector.detectSWLPivot = false; detector.detectSWLPivot = false;
detector.detectPeakPivot = false; detector.detectPeakPivot = false;
detector.detectValePivot = false; detector.detectValePivot = false;
detector.detectRSIPeakPivot = false;
detector.detectRSIValePivot = false;
detector.detectCCIPeakPivot = true;
detector.detectCCIValePivot = true;
detector.detectKIBullishPivot = false; detector.detectKIBullishPivot = false;
detector.detectKIBearishPivot = false; detector.detectKIBearishPivot = false;
detector.detectPeakSWHResPivot = true; detector.detectFVGBullishPivot = true;
detector.detectValeSWLSupPivot = true; detector.detectFVGBearishPivot = true;
detector.detectPeakSWHResPivot = false;
detector.detectValeSWLSupPivot = false;
detector.detectTKIBullishPivot = false; detector.detectTKIBullishPivot = false;
detector.detectCycleSameLLPivot = false; detector.detectCycleSameLLPivot = false;
detector.detectCycleSameHHPivot = false; detector.detectCycleSameHHPivot = false;
@@ -750,10 +756,10 @@ class XCXCAEASignaller : XCBase
detector.detectTrendBearishPivot = true; detector.detectTrendBearishPivot = true;
detector.detectTKITRNDBullishPivot = false; detector.detectTKITRNDBullishPivot = false;
detector.detectTKITRNDBearishPivot = false; detector.detectTKITRNDBearishPivot = false;
detector.detectRSICrossedOverOSPivot = true; detector.detectRSICrossedOverOSPivot = false;
detector.detectRSICrossedUnderOBPivot = true; detector.detectRSICrossedUnderOBPivot = false;
detector.detectCCICrossedOverOSPivot = true; detector.detectCCICrossedOverOSPivot = false;
detector.detectCCICrossedUnderOBPivot = true; detector.detectCCICrossedUnderOBPivot = false;
// //
// Initialize and Configure Drawer ... // Initialize and Configure Drawer ...
@@ -765,8 +771,14 @@ class XCXCAEASignaller : XCBase
drawer.drawSWLPivots = false; drawer.drawSWLPivots = false;
drawer.drawPeakPivots = false; drawer.drawPeakPivots = false;
drawer.drawValePivots = false; drawer.drawValePivots = false;
drawer.drawRSIPeakPivots = false;
drawer.drawRSIValePivots = false;
drawer.drawCCIPeakPivots = false;
drawer.drawCCIValePivots = false;
drawer.drawKIBullishPivots = false; drawer.drawKIBullishPivots = false;
drawer.drawKIBearishPivots = false; drawer.drawKIBearishPivots = false;
drawer.drawFVGBullishPivots = true;
drawer.drawFVGBearishPivots = true;
drawer.drawPeakSWHResPivots = true; drawer.drawPeakSWHResPivots = true;
drawer.drawValeSWLSupPivots = true; drawer.drawValeSWLSupPivots = true;
drawer.drawTKIBullishPivots = false; drawer.drawTKIBullishPivots = false;
@@ -777,10 +789,10 @@ class XCXCAEASignaller : XCBase
drawer.drawTrendBearishPivots = false; drawer.drawTrendBearishPivots = false;
drawer.drawTKITRNDBullishPivots = false; drawer.drawTKITRNDBullishPivots = false;
drawer.drawTKITRNDBearishPivots = false; drawer.drawTKITRNDBearishPivots = false;
drawer.drawRSICrossedOverOSPivots = true; drawer.drawRSICrossedOverOSPivots = false;
drawer.drawRSICrossedUnderOBPivots = true; drawer.drawRSICrossedUnderOBPivots = false;
drawer.drawCCICrossedOverOSPivots = true; drawer.drawCCICrossedOverOSPivots = false;
drawer.drawCCICrossedUnderOBPivots = true; drawer.drawCCICrossedUnderOBPivots = false;
} }
/** /**