This commit is contained in:
2025-04-22 02:34:54 +03:30
parent 4b50e848c7
commit a3a02973ef
3 changed files with 694 additions and 189 deletions
+198 -80
View File
@@ -56,6 +56,8 @@ class XCXCAEAPOIDrawer : public XCBase
bool drawCycleSameHHPivots;
bool drawTrendBullishPivots;
bool drawTrendBearishPivots;
bool drawPVFVGBullishPivots;
bool drawPVFVGBearishPivots;
bool drawTKITRNDBullishPivots;
bool drawTKITRNDBearishPivots;
bool drawRSICrossedOverOSPivots;
@@ -199,6 +201,8 @@ class XCXCAEAPOIDrawer : public XCBase
drawTKIBearishPivots = false;
drawCycleSameLLPivots = false;
drawCycleSameHHPivots = false;
drawPVFVGBullishPivots = false;
drawPVFVGBearishPivots = false;
drawTrendBullishPivots = false;
drawTrendBearishPivots = false;
drawTKITRNDBullishPivots = false;
@@ -659,57 +663,114 @@ class XCXCAEAPOIDrawer : public XCBase
//
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++)
if (drawFVGBullishPivots)
{
//
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 //
);
bool has = detector.HasFVGBullishPivots();
if (has)
{
//
iObj.BoxColor(fvgBullishPivotColor);
iObj.BoxWidth(fvgBullishPivotWidth);
iObj.BoxStyle(fvgBullishPivotStyle);
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)
{
//
iObj.BoxColor(fvgBullishPivotColor);
iObj.BoxWidth(fvgBullishPivotWidth);
iObj.BoxStyle(fvgBullishPivotStyle);
//
mFVGBullishPivotObjects.Add(iObj);
}
}
}
}
//
if (drawPVFVGBullishPivots)
{
//
bool has = detector.HasPVFVGBullishPivots();
if (has)
{
//
mFVGBullishPivotObjects.Add(iObj);
int count = detector.CountPVFVGBullishPivots();
for (int i = 0; i < count; i++)
{
//
XCAPVFVG iPVFVG = detector.pvFVGBullishPivots[i];
//
XBoxZone fvgBoxes[];
int fvgBoxesCount = iPVFVG.GetFVGs(fvgBoxes);
has = IsValidSize(fvgBoxesCount);
if (has)
{
//
int idx = GetLowest(fvgBoxes);
if (IsValidIndex(idx))
{
//
XBoxZone iBox = fvgBoxes[idx];
//
if (canUpdateTo)
{
iBox.to = to;
}
//
XCBoxObject *iObj;
//
has = drawer.DrawBox(
iBox,
iObj //
);
if (has)
{
//
iObj.BoxColor(fvgBullishPivotColor);
iObj.BoxWidth(fvgBullishPivotWidth);
iObj.BoxStyle(fvgBullishPivotStyle);
//
mFVGBullishPivotObjects.Add(iObj);
}
//
iBox.Clean();
ZeroMemory(iObj);
}
}
}
}
}
}
@@ -717,57 +778,114 @@ class XCXCAEAPOIDrawer : public XCBase
//
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++)
if (drawFVGBearishPivots)
{
//
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 //
);
bool has = detector.HasFVGBearishPivots();
if (has)
{
//
iObj.BoxColor(fvgBearishPivotColor);
iObj.BoxWidth(fvgBearishPivotWidth);
iObj.BoxStyle(fvgBearishPivotStyle);
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)
{
//
iObj.BoxColor(fvgBearishPivotColor);
iObj.BoxWidth(fvgBearishPivotWidth);
iObj.BoxStyle(fvgBearishPivotStyle);
//
mFVGBearishPivotObjects.Add(iObj);
}
}
}
}
//
if (drawPVFVGBullishPivots)
{
//
bool has = detector.HasPVFVGBearishPivots();
if (has)
{
//
mFVGBearishPivotObjects.Add(iObj);
int count = detector.CountPVFVGBearishPivots();
for (int i = 0; i < count; i++)
{
//
XCAPVFVG iPVFVG = detector.pvFVGBearishPivots[i];
//
XBoxZone fvgBoxes[];
int fvgBoxesCount = iPVFVG.GetFVGs(fvgBoxes);
has = IsValidSize(fvgBoxesCount);
if (has)
{
//
int idx = GetHighest(fvgBoxes);
if (IsValidIndex(idx))
{
//
XBoxZone iBox = fvgBoxes[idx];
//
if (canUpdateTo)
{
iBox.to = to;
}
//
XCBoxObject *iObj;
//
has = drawer.DrawBox(
iBox,
iObj //
);
if (has)
{
//
iObj.BoxColor(fvgBearishPivotColor);
iObj.BoxWidth(fvgBearishPivotWidth);
iObj.BoxStyle(fvgBearishPivotStyle);
//
mFVGBearishPivotObjects.Add(iObj);
}
//
iBox.Clean();
ZeroMemory(iObj);
}
}
}
}
}
}