last ...
This commit is contained in:
@@ -5465,7 +5465,7 @@ struct XBoxZone
|
||||
|
||||
//
|
||||
string typeStr = IsValid(type)
|
||||
? type + "_"
|
||||
? type
|
||||
: "XBOX";
|
||||
string result =
|
||||
//
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -40,8 +40,14 @@ class XCXCAEAPOIDrawer : public XCBase
|
||||
bool drawSWLPivots;
|
||||
bool drawPeakPivots;
|
||||
bool drawValePivots;
|
||||
bool drawRSIPeakPivots;
|
||||
bool drawRSIValePivots;
|
||||
bool drawCCIPeakPivots;
|
||||
bool drawCCIValePivots;
|
||||
bool drawKIBullishPivots;
|
||||
bool drawKIBearishPivots;
|
||||
bool drawFVGBullishPivots;
|
||||
bool drawFVGBearishPivots;
|
||||
bool drawPeakSWHResPivots;
|
||||
bool drawValeSWLSupPivots;
|
||||
bool drawTKIBullishPivots;
|
||||
@@ -80,8 +86,14 @@ class XCXCAEAPOIDrawer : public XCBase
|
||||
mSWLPivotObjects.Clear();
|
||||
mPeakPivotObjects.Clear();
|
||||
mValePivotObjects.Clear();
|
||||
mRSIPeakPivotObjects.Clear();
|
||||
mRSIValePivotObjects.Clear();
|
||||
mCCIPeakPivotObjects.Clear();
|
||||
mCCIValePivotObjects.Clear();
|
||||
mKIBullishPivotObjects.Clear();
|
||||
mKIBearishPivotObjects.Clear();
|
||||
mFVGBullishPivotObjects.Clear();
|
||||
mFVGBearishPivotObjects.Clear();
|
||||
mPeakSWHResPivotObjects.Clear();
|
||||
mValeSWLSupPivotObjects.Clear();
|
||||
mTKIBullishPivotObjects.Clear();
|
||||
@@ -116,8 +128,14 @@ class XCXCAEAPOIDrawer : public XCBase
|
||||
drawSWLPivots = false;
|
||||
drawPeakPivots = false;
|
||||
drawValePivots = false;
|
||||
drawRSIPeakPivots = false;
|
||||
drawRSIValePivots = false;
|
||||
drawCCIPeakPivots = false;
|
||||
drawCCIValePivots = false;
|
||||
drawKIBullishPivots = false;
|
||||
drawKIBearishPivots = false;
|
||||
drawFVGBullishPivots = false;
|
||||
drawFVGBearishPivots = false;
|
||||
drawPeakSWHResPivots = false;
|
||||
drawValeSWLSupPivots = false;
|
||||
drawTKIBullishPivots = false;
|
||||
@@ -142,8 +160,14 @@ class XCXCAEAPOIDrawer : public XCBase
|
||||
DrawSWLPivots(to);
|
||||
DrawPeakPivots(to);
|
||||
DrawValePivots(to);
|
||||
DrawRSIPeakPivots(to);
|
||||
DrawRSIValePivots(to);
|
||||
DrawCCIPeakPivots(to);
|
||||
DrawCCIValePivots(to);
|
||||
DrawKIBullishPivots(to);
|
||||
DrawKIBearishPivots(to);
|
||||
DrawFVGBullishPivots(to);
|
||||
DrawFVGBearishPivots(to);
|
||||
DrawPeakSWHResPivots(to);
|
||||
DrawValeSWLSupPivots(to);
|
||||
DrawTKIBullishPivots(to);
|
||||
@@ -482,6 +506,96 @@ 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++) {
|
||||
//
|
||||
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)
|
||||
{
|
||||
@@ -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)
|
||||
{
|
||||
@@ -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)
|
||||
{
|
||||
@@ -1483,8 +1817,14 @@ class XCXCAEAPOIDrawer : public XCBase
|
||||
CArrayObj mSWLPivotObjects;
|
||||
CArrayObj mPeakPivotObjects;
|
||||
CArrayObj mValePivotObjects;
|
||||
CArrayObj mRSIPeakPivotObjects;
|
||||
CArrayObj mRSIValePivotObjects;
|
||||
CArrayObj mCCIPeakPivotObjects;
|
||||
CArrayObj mCCIValePivotObjects;
|
||||
CArrayObj mKIBullishPivotObjects;
|
||||
CArrayObj mKIBearishPivotObjects;
|
||||
CArrayObj mFVGBullishPivotObjects;
|
||||
CArrayObj mFVGBearishPivotObjects;
|
||||
CArrayObj mPeakSWHResPivotObjects;
|
||||
CArrayObj mValeSWLSupPivotObjects;
|
||||
CArrayObj mTKIBullishPivotObjects;
|
||||
|
||||
@@ -930,7 +930,7 @@ bool DetectXCAEAConditions(
|
||||
//
|
||||
bool isCond1Bullish =
|
||||
//
|
||||
// false &&
|
||||
false &&
|
||||
isCCIBullish &&
|
||||
isBoxActivated &&
|
||||
pivotBox.IsValid() &&
|
||||
@@ -941,7 +941,7 @@ bool DetectXCAEAConditions(
|
||||
//
|
||||
bool isCond1Bearish =
|
||||
//
|
||||
// false &&
|
||||
false &&
|
||||
isCCIBearish &&
|
||||
isBoxActivated &&
|
||||
pivotBox.IsValid() &&
|
||||
@@ -970,6 +970,7 @@ bool DetectXCAEAConditions(
|
||||
//
|
||||
bool isCond2Bullish =
|
||||
//
|
||||
false &&
|
||||
isBoxRejected &&
|
||||
pivotBox.IsValid() &&
|
||||
pivotBox.IsBullish()
|
||||
@@ -979,6 +980,7 @@ bool DetectXCAEAConditions(
|
||||
//
|
||||
bool isCond2Bearish =
|
||||
//
|
||||
false &&
|
||||
isBoxRejected &&
|
||||
pivotBox.IsValid() &&
|
||||
pivotBox.IsBearish()
|
||||
@@ -1000,6 +1002,26 @@ bool DetectXCAEAConditions(
|
||||
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 ...
|
||||
|
||||
|
||||
@@ -692,7 +692,7 @@ class XCXCAEASignaller : XCBase
|
||||
inputs.caInputs.showKI = true;
|
||||
inputs.caInputs.showTKI = true;
|
||||
inputs.caInputs.showSar = false;
|
||||
inputs.caInputs.showTrend = true;
|
||||
inputs.caInputs.showTrend = false;
|
||||
inputs.caInputs.showSwings = false;
|
||||
inputs.caInputs.showLongCycle = false;
|
||||
inputs.caInputs.showHindCycle = false;
|
||||
@@ -714,7 +714,7 @@ class XCXCAEASignaller : XCBase
|
||||
|
||||
//
|
||||
// Oscillators Views ...
|
||||
inputs.showCCI = true;
|
||||
inputs.showCCI = false;
|
||||
inputs.showRSI = false;
|
||||
inputs.showMFI = false;
|
||||
inputs.showRVI = false;
|
||||
@@ -738,10 +738,16 @@ class XCXCAEASignaller : XCBase
|
||||
detector.detectSWLPivot = false;
|
||||
detector.detectPeakPivot = false;
|
||||
detector.detectValePivot = false;
|
||||
detector.detectRSIPeakPivot = false;
|
||||
detector.detectRSIValePivot = false;
|
||||
detector.detectCCIPeakPivot = true;
|
||||
detector.detectCCIValePivot = true;
|
||||
detector.detectKIBullishPivot = false;
|
||||
detector.detectKIBearishPivot = false;
|
||||
detector.detectPeakSWHResPivot = true;
|
||||
detector.detectValeSWLSupPivot = true;
|
||||
detector.detectFVGBullishPivot = true;
|
||||
detector.detectFVGBearishPivot = true;
|
||||
detector.detectPeakSWHResPivot = false;
|
||||
detector.detectValeSWLSupPivot = false;
|
||||
detector.detectTKIBullishPivot = false;
|
||||
detector.detectCycleSameLLPivot = false;
|
||||
detector.detectCycleSameHHPivot = false;
|
||||
@@ -750,10 +756,10 @@ class XCXCAEASignaller : XCBase
|
||||
detector.detectTrendBearishPivot = true;
|
||||
detector.detectTKITRNDBullishPivot = false;
|
||||
detector.detectTKITRNDBearishPivot = false;
|
||||
detector.detectRSICrossedOverOSPivot = true;
|
||||
detector.detectRSICrossedUnderOBPivot = true;
|
||||
detector.detectCCICrossedOverOSPivot = true;
|
||||
detector.detectCCICrossedUnderOBPivot = true;
|
||||
detector.detectRSICrossedOverOSPivot = false;
|
||||
detector.detectRSICrossedUnderOBPivot = false;
|
||||
detector.detectCCICrossedOverOSPivot = false;
|
||||
detector.detectCCICrossedUnderOBPivot = false;
|
||||
|
||||
//
|
||||
// Initialize and Configure Drawer ...
|
||||
@@ -765,8 +771,14 @@ class XCXCAEASignaller : XCBase
|
||||
drawer.drawSWLPivots = false;
|
||||
drawer.drawPeakPivots = false;
|
||||
drawer.drawValePivots = false;
|
||||
drawer.drawRSIPeakPivots = false;
|
||||
drawer.drawRSIValePivots = false;
|
||||
drawer.drawCCIPeakPivots = false;
|
||||
drawer.drawCCIValePivots = false;
|
||||
drawer.drawKIBullishPivots = false;
|
||||
drawer.drawKIBearishPivots = false;
|
||||
drawer.drawFVGBullishPivots = true;
|
||||
drawer.drawFVGBearishPivots = true;
|
||||
drawer.drawPeakSWHResPivots = true;
|
||||
drawer.drawValeSWLSupPivots = true;
|
||||
drawer.drawTKIBullishPivots = false;
|
||||
@@ -777,10 +789,10 @@ class XCXCAEASignaller : XCBase
|
||||
drawer.drawTrendBearishPivots = false;
|
||||
drawer.drawTKITRNDBullishPivots = false;
|
||||
drawer.drawTKITRNDBearishPivots = false;
|
||||
drawer.drawRSICrossedOverOSPivots = true;
|
||||
drawer.drawRSICrossedUnderOBPivots = true;
|
||||
drawer.drawCCICrossedOverOSPivots = true;
|
||||
drawer.drawCCICrossedUnderOBPivots = true;
|
||||
drawer.drawRSICrossedOverOSPivots = false;
|
||||
drawer.drawRSICrossedUnderOBPivots = false;
|
||||
drawer.drawCCICrossedOverOSPivots = false;
|
||||
drawer.drawCCICrossedUnderOBPivots = false;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user