works on poi detector ...
This commit is contained in:
@@ -0,0 +1,449 @@
|
|||||||
|
//
|
||||||
|
void ApplyManalyswerValidation(
|
||||||
|
XBoxZone &pivots[],
|
||||||
|
int barIndex = 0 //
|
||||||
|
)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
int zIDX = 0;
|
||||||
|
int cIDX = zIDX + 1;
|
||||||
|
int pIDX = cIDX + 1;
|
||||||
|
int p2IDX = pIDX + 1;
|
||||||
|
|
||||||
|
//
|
||||||
|
barIndex = NormalizeInt(barIndex, 0);
|
||||||
|
|
||||||
|
//
|
||||||
|
bool has = HasChild(pivots);
|
||||||
|
if (!has)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
XBoxZone tmp[];
|
||||||
|
Copy(
|
||||||
|
pivots,
|
||||||
|
tmp //
|
||||||
|
);
|
||||||
|
Clean(pivots);
|
||||||
|
while (HasChild(tmp))
|
||||||
|
{
|
||||||
|
//
|
||||||
|
XBoxZone iPivot = tmp[0];
|
||||||
|
ArrayRemove(
|
||||||
|
tmp,
|
||||||
|
0,
|
||||||
|
1 //
|
||||||
|
);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Retrieve Pivot info ...
|
||||||
|
// int toIDX = iPivot.ToIndex();
|
||||||
|
// int fromIDX = iPivot.FromIndex();
|
||||||
|
// bool isBullish = iPivot.IsBullish();
|
||||||
|
|
||||||
|
//
|
||||||
|
// Retrieve Conditions ...
|
||||||
|
// XCAEAConditions conditions;
|
||||||
|
// has = helper.GetConditions(
|
||||||
|
// conditions,
|
||||||
|
// toIDX,
|
||||||
|
// 5 //
|
||||||
|
// );
|
||||||
|
|
||||||
|
//
|
||||||
|
// Retrieve Bars ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// XOHCL cBar;
|
||||||
|
// XOHCL pBar;
|
||||||
|
// XOHCL p2Bar;
|
||||||
|
|
||||||
|
// //
|
||||||
|
// has =
|
||||||
|
// has &&
|
||||||
|
// cBar.Init(
|
||||||
|
// conditions.symbol,
|
||||||
|
// conditions.period,
|
||||||
|
// toIDX //
|
||||||
|
// );
|
||||||
|
// has = has &&
|
||||||
|
// cBar.GetPreviousBar(pBar);
|
||||||
|
// has = has &&
|
||||||
|
// pBar.GetPreviousBar(p2Bar);
|
||||||
|
// if (!has)
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// cBar.Clean();
|
||||||
|
// pBar.Clean();
|
||||||
|
// p2Bar.Clean();
|
||||||
|
// iPivot.Clean();
|
||||||
|
// conditions.Clean();
|
||||||
|
|
||||||
|
// //
|
||||||
|
// continue;
|
||||||
|
// }
|
||||||
|
|
||||||
|
//
|
||||||
|
// Reading Conditions ...
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // MAL ...
|
||||||
|
// double zMAL = conditions.malBuffer[zIDX];
|
||||||
|
// double cMAL = conditions.malBuffer[cIDX];
|
||||||
|
// double pMAL = conditions.malBuffer[pIDX];
|
||||||
|
// double p2MAL = conditions.malBuffer[p2IDX];
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // MAC ...
|
||||||
|
// double zMAC = conditions.macBuffer[zIDX];
|
||||||
|
// double cMAC = conditions.macBuffer[cIDX];
|
||||||
|
// double pMAC = conditions.macBuffer[pIDX];
|
||||||
|
// double p2MAC = conditions.macBuffer[p2IDX];
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // MAH ...
|
||||||
|
// double zMAH = conditions.mahBuffer[zIDX];
|
||||||
|
// double cMAH = conditions.mahBuffer[cIDX];
|
||||||
|
// double pMAH = conditions.mahBuffer[pIDX];
|
||||||
|
// double p2MAH = conditions.mahBuffer[p2IDX];
|
||||||
|
|
||||||
|
//
|
||||||
|
// Checking Conditions ...
|
||||||
|
// has = isBullish
|
||||||
|
// ? cBar.high < cMAL ||
|
||||||
|
// pBar.high < pMAL
|
||||||
|
// : cBar.low < cMAH ||
|
||||||
|
// pBar.low < pMAL;
|
||||||
|
|
||||||
|
//
|
||||||
|
has =
|
||||||
|
isBullish
|
||||||
|
? iPivot.
|
||||||
|
if (has)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
AddRef(
|
||||||
|
iPivot,
|
||||||
|
pivots //
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Cleanup Resources ...
|
||||||
|
// cBar.Clean();
|
||||||
|
// pBar.Clean();
|
||||||
|
// p2Bar.Clean();
|
||||||
|
iPivot.Clean();
|
||||||
|
// conditions.Clean();
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
Clean(tmp);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Parsing Pivots ...
|
||||||
|
XBoxZone rciPivot;
|
||||||
|
double providedSL = 0;
|
||||||
|
XBoxZone rejectedPivot;
|
||||||
|
XBoxZone insidePivots[];
|
||||||
|
XBoxZone rciContainers[];
|
||||||
|
int insidePivotsCount = 0;
|
||||||
|
bool isRejectedOnMid = false;
|
||||||
|
bool hasInsidePivots = false;
|
||||||
|
bool hasRCIContainers = false;
|
||||||
|
bool hasPivots = HasChild(pivots);
|
||||||
|
if (hasPivots)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// drawer.DrawBoxes(
|
||||||
|
// pivots,
|
||||||
|
// TimeCurrent() //
|
||||||
|
// );
|
||||||
|
|
||||||
|
//
|
||||||
|
// Select Inside Boxes ...
|
||||||
|
|
||||||
|
//
|
||||||
|
ENUM_XCA_PIVOTS allowedInsidePivots[] = {
|
||||||
|
XCA_FVG_BULL,
|
||||||
|
XCA_FVG_BEAR,
|
||||||
|
XCA_PEAKSWHRES,
|
||||||
|
XCA_VALESWLSUP,
|
||||||
|
XCA_TREND_BULL,
|
||||||
|
XCA_TREND_BEAR,
|
||||||
|
};
|
||||||
|
insidePivotsCount = SelectInsideBoxes(
|
||||||
|
allowedInsidePivots,
|
||||||
|
insidePivots,
|
||||||
|
pivots,
|
||||||
|
zBar,
|
||||||
|
cBar,
|
||||||
|
pBar,
|
||||||
|
p2Bar //
|
||||||
|
);
|
||||||
|
hasInsidePivots = IsValidSize(insidePivotsCount);
|
||||||
|
if (hasInsidePivots)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// drawer.DrawBoxes(
|
||||||
|
// insidePivots,
|
||||||
|
// zBar.time //
|
||||||
|
// );
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Detect Rejected Pivot ...
|
||||||
|
ENUM_XCA_PIVOTS allowedRejectedPivots[] = {
|
||||||
|
XCA_FVG_BULL,
|
||||||
|
XCA_FVG_BEAR,
|
||||||
|
// XCA_PEAKSWHRES,
|
||||||
|
// XCA_VALESWLSUP,
|
||||||
|
// XCA_TREND_BULL,
|
||||||
|
// XCA_TREND_BEAR,
|
||||||
|
};
|
||||||
|
has = SelectRejectedBox(
|
||||||
|
allowedRejectedPivots,
|
||||||
|
rejectedPivot,
|
||||||
|
isRejectedOnMid,
|
||||||
|
pivots,
|
||||||
|
zBar,
|
||||||
|
cBar,
|
||||||
|
pBar,
|
||||||
|
p2Bar,
|
||||||
|
false, // Ignore Mid Rejection ...
|
||||||
|
true,
|
||||||
|
true //
|
||||||
|
);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Select CCI/RSI Cross Object ...
|
||||||
|
count = ArraySize(pivots);
|
||||||
|
for (int i = 0; i < count; i++)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
XBoxZone iPivot = pivots[i];
|
||||||
|
|
||||||
|
//
|
||||||
|
ENUM_XCA_PIVOTS iType = GetPivotType(iPivot);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Checking Type is Passed ...
|
||||||
|
has =
|
||||||
|
//
|
||||||
|
iType == XCA_RSI_COOS ||
|
||||||
|
iType == XCA_CCI_COOS ||
|
||||||
|
iType == XCA_RSI_CUOB ||
|
||||||
|
iType == XCA_CCI_CUOB
|
||||||
|
//
|
||||||
|
;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Checking cBar is Pivots' Last Bar ...
|
||||||
|
has =
|
||||||
|
has &&
|
||||||
|
cBar.time <= iPivot.to &&
|
||||||
|
cBar.time > iPivot.from;
|
||||||
|
if (has)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
rciPivot = iPivot;
|
||||||
|
|
||||||
|
//
|
||||||
|
iPivot.Clean();
|
||||||
|
|
||||||
|
//
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
iPivot.Clean();
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Detect RCI Pivot Containers Pivots ...
|
||||||
|
count = ArraySize(pivots);
|
||||||
|
has = rciPivot.IsValid();
|
||||||
|
if (has)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
for (int i = 0; i < count; i++)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
XBoxZone iPivot = pivots[i];
|
||||||
|
|
||||||
|
//
|
||||||
|
ENUM_XCA_PIVOTS iType = GetPivotType(iPivot);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Checking Type is Passed ...
|
||||||
|
has =
|
||||||
|
//
|
||||||
|
IsValid(iType) &&
|
||||||
|
(iType == XCA_PEAKSWHRES ||
|
||||||
|
iType == XCA_VALESWLSUP)
|
||||||
|
//
|
||||||
|
;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Check Dir is Passed ...
|
||||||
|
has =
|
||||||
|
has &&
|
||||||
|
rciPivot.dir == iPivot.dir;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Check RCI Pivot is Inside Pivot ...
|
||||||
|
has =
|
||||||
|
has &&
|
||||||
|
//
|
||||||
|
(
|
||||||
|
//
|
||||||
|
(rciPivot.lower >= iPivot.lower &&
|
||||||
|
rciPivot.lower < iPivot.upper)
|
||||||
|
//
|
||||||
|
||
|
||||||
|
//
|
||||||
|
(rciPivot.upper <= iPivot.upper &&
|
||||||
|
rciPivot.upper > iPivot.lower)
|
||||||
|
//
|
||||||
|
||
|
||||||
|
//
|
||||||
|
(rciPivot.upper > iPivot.upper &&
|
||||||
|
rciPivot.lower < iPivot.lower)
|
||||||
|
//
|
||||||
|
)
|
||||||
|
//
|
||||||
|
;
|
||||||
|
|
||||||
|
//
|
||||||
|
if (has)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
AddRef(
|
||||||
|
iPivot,
|
||||||
|
rciContainers //
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
iPivot.Clean();
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
hasRCIContainers = HasChild(rciContainers);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Box Based Conditions ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// if (isCBarHasStrongATR)
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// Print(ToString(cBar.GetDirection()), " ATR Growing ...");
|
||||||
|
// }
|
||||||
|
|
||||||
|
//
|
||||||
|
// bool isZeroVScore = isScoreNeutural ||
|
||||||
|
// isVolumeNeutural;
|
||||||
|
|
||||||
|
// //
|
||||||
|
// bool isBullishTested =
|
||||||
|
// isZeroVScore &&
|
||||||
|
// isCBarValidForBullish // &&
|
||||||
|
// // rejectedPivot.IsValid() &&
|
||||||
|
// // rejectedPivot.IsBullish()
|
||||||
|
// ;
|
||||||
|
// bool isBearishTested =
|
||||||
|
// isZeroVScore &&
|
||||||
|
// isCBarValidForBearish // &&
|
||||||
|
// // rejectedPivot.IsValid() &&
|
||||||
|
// // rejectedPivot.IsBearish()
|
||||||
|
// ;
|
||||||
|
|
||||||
|
// //
|
||||||
|
// bool isTested =
|
||||||
|
// //
|
||||||
|
// isBullishTested ||
|
||||||
|
// isBearishTested
|
||||||
|
// //
|
||||||
|
// ;
|
||||||
|
// if (isTested)
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// Print("Zero Volume ...");
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isCond2Bullish =
|
||||||
|
//
|
||||||
|
false // &&
|
||||||
|
//
|
||||||
|
// conditions.
|
||||||
|
//
|
||||||
|
// zPeak > cPeak &&
|
||||||
|
// zBar.close > cPeak &&
|
||||||
|
// ((zPeak - cPeak) > 2 * points) &&
|
||||||
|
//
|
||||||
|
// z3MAFastState > 0 &&
|
||||||
|
// isValeGoldenRejected &&
|
||||||
|
// isCBarBullishRejected &&
|
||||||
|
// conditions.isValeIsPivot
|
||||||
|
//
|
||||||
|
// isPCCIOS &&
|
||||||
|
// isRSIBullish &&
|
||||||
|
// conditions.isCloseUnderMal
|
||||||
|
// rciPivot.IsValid() &&
|
||||||
|
// rciPivot.IsBullish() &&
|
||||||
|
// isCCIBullish &&
|
||||||
|
// cBar.close > c3MAFast
|
||||||
|
// isADXBullish &&
|
||||||
|
// hasRCIContainers &&
|
||||||
|
// conditions.isValeIsPivot &&
|
||||||
|
// (conditions.isRSICrossedOverOS ||
|
||||||
|
// conditions.isCCICrossedOverOS) // &&
|
||||||
|
// conditions.swingLowBuffer[cIDX] < conditions.fiboLevel3Buffer[cIDX]
|
||||||
|
// //
|
||||||
|
;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isCond2Bearish =
|
||||||
|
//
|
||||||
|
false // &&
|
||||||
|
//
|
||||||
|
// z3MAFastState < 0 &&
|
||||||
|
// isPeakGoldenRejected &&
|
||||||
|
// isCBarBullishRejected &&
|
||||||
|
// conditions.isPeakIsPivot
|
||||||
|
//
|
||||||
|
// isPCCIOB &&
|
||||||
|
// isRSIBearish &&
|
||||||
|
// c3MAFastState < 0 &&
|
||||||
|
// conditions.isCloseOverMah
|
||||||
|
// rciPivot.IsValid() &&
|
||||||
|
// rciPivot.IsBearish() &&
|
||||||
|
// conditions.isRSIOB &&
|
||||||
|
// isCCIBearish &&
|
||||||
|
// cBar.close < c3MAFast
|
||||||
|
// isADXBearish &&
|
||||||
|
// hasRCIContainers &&
|
||||||
|
// conditions.isPeakIsPivot &&
|
||||||
|
// (conditions.isRSICrossedUnderOB ||
|
||||||
|
// conditions.isCCICrossedUnderOB) // &&
|
||||||
|
// conditions.swingHighBuffer[cIDX] > conditions.fiboLevel1Buffer[cIDX]
|
||||||
|
// //
|
||||||
|
;
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,83 @@
|
|||||||
|
|
||||||
|
//
|
||||||
|
bool DetectPivot(
|
||||||
|
int barIndex,
|
||||||
|
XOHCL &zBar,
|
||||||
|
XOHCL &cBar,
|
||||||
|
XOHCL &pBar,
|
||||||
|
XOHCL &p2Bar,
|
||||||
|
XCAEAConditions &conditions //
|
||||||
|
)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
bool result = false;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Validate Args ...
|
||||||
|
result =
|
||||||
|
//
|
||||||
|
barIndex >= 0 &&
|
||||||
|
zBar.IsValid() &&
|
||||||
|
cBar.IsValid() &&
|
||||||
|
pBar.IsValid() &&
|
||||||
|
p2Bar.IsValid() &&
|
||||||
|
//
|
||||||
|
;
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Define Requirements ...
|
||||||
|
|
||||||
|
//
|
||||||
|
int zIDX = 0;
|
||||||
|
int cIDX = zIDX + 1;
|
||||||
|
int pIDX = cIDX + 1;
|
||||||
|
int p2IDX = pIDX + 1;
|
||||||
|
|
||||||
|
//
|
||||||
|
XCAPviot pivot;
|
||||||
|
datetime cTime = zBar.time;
|
||||||
|
string symbol = zBar.symbol;
|
||||||
|
string period = zBar.period;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Reading Conditional Values ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Prepare Conditinal Conditions ...
|
||||||
|
|
||||||
|
//
|
||||||
|
bool hasStartCondition = false;
|
||||||
|
bool hasContinuationCondition = false;
|
||||||
|
bool hasEndCondition = false;
|
||||||
|
|
||||||
|
//
|
||||||
|
// ReInstance Pivot ...
|
||||||
|
if (hasStartConditions)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Calculate and Fill Pivot Requirements ...
|
||||||
|
if (hasContinuationCondition)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// End up Pivot and Store it ...
|
||||||
|
if (hasEndCondition)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
pivot.Clean();
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -466,11 +466,11 @@ bool DetectXCAEAConditions(
|
|||||||
|
|
||||||
//
|
//
|
||||||
// Trend Parsing ...
|
// Trend Parsing ...
|
||||||
bool hasTrend = HasDirection(trend);
|
// bool hasTrend = HasDirection(trend);
|
||||||
bool hasBullishTrend = hasTrend &&
|
// bool hasBullishTrend = hasTrend &&
|
||||||
IsBullish(trend);
|
// IsBullish(trend);
|
||||||
bool hasBearishTrend = hasTrend &&
|
// bool hasBearishTrend = hasTrend &&
|
||||||
IsBearish(trend);
|
// IsBearish(trend);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Retrieve Previous and Current Bar Conditions ...
|
// Retrieve Previous and Current Bar Conditions ...
|
||||||
@@ -663,12 +663,6 @@ bool DetectXCAEAConditions(
|
|||||||
//
|
//
|
||||||
bool isScoreNeutural = MathAbs(bullishScore - bearishScore) == 0;
|
bool isScoreNeutural = MathAbs(bullishScore - bearishScore) == 0;
|
||||||
|
|
||||||
//
|
|
||||||
// Generating Conditions Summary ...
|
|
||||||
string summary =
|
|
||||||
conditions
|
|
||||||
.GenerateSummary();
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Calculating Range Volumes ...
|
// Calculating Range Volumes ...
|
||||||
|
|
||||||
@@ -1080,69 +1074,22 @@ bool DetectXCAEAConditions(
|
|||||||
//
|
//
|
||||||
;
|
;
|
||||||
|
|
||||||
//
|
|
||||||
if (isCBarHasStrongATR)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
Print(ToString(cBar.GetDirection()), " ATR Growing ...");
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
bool isZeroVScore = isScoreNeutural ||
|
|
||||||
isVolumeNeutural;
|
|
||||||
|
|
||||||
//
|
|
||||||
bool isBullishTested =
|
|
||||||
isZeroVScore &&
|
|
||||||
isCBarValidForBullish;
|
|
||||||
bool isBearishTested =
|
|
||||||
isZeroVScore &&
|
|
||||||
isCBarValidForBearish;
|
|
||||||
|
|
||||||
//
|
|
||||||
bool isTested =
|
|
||||||
//
|
|
||||||
isBullishTested ||
|
|
||||||
isBearishTested
|
|
||||||
//
|
|
||||||
;
|
|
||||||
if (isTested)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
Print("Zero Volume ...");
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Parsing Pivots ...
|
// Parsing Pivots ...
|
||||||
XBoxZone rciPivot;
|
|
||||||
double providedSL = 0;
|
double providedSL = 0;
|
||||||
XBoxZone rejectedPivot;
|
XBoxZone rejectedPivot;
|
||||||
XBoxZone insidePivots[];
|
XBoxZone insidePivots[];
|
||||||
XBoxZone rciContainers[];
|
|
||||||
int insidePivotsCount = 0;
|
int insidePivotsCount = 0;
|
||||||
bool isRejectedOnMid = false;
|
bool isRejectedOnMid = false;
|
||||||
bool hasInsidePivots = false;
|
bool hasInsidePivots = false;
|
||||||
bool hasRCIContainers = false;
|
|
||||||
bool hasPivots = HasChild(pivots);
|
bool hasPivots = HasChild(pivots);
|
||||||
if (hasPivots)
|
if (hasPivots)
|
||||||
{
|
{
|
||||||
//
|
|
||||||
// drawer.DrawBoxes(
|
|
||||||
// pivots,
|
|
||||||
// TimeCurrent() //
|
|
||||||
// );
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Select Inside Boxes ...
|
// Select Inside Boxes ...
|
||||||
|
|
||||||
//
|
|
||||||
ENUM_XCA_PIVOTS allowedInsidePivots[] = {
|
ENUM_XCA_PIVOTS allowedInsidePivots[] = {
|
||||||
XCA_FVG_BULL,
|
XCA_FVG_BULL,
|
||||||
XCA_FVG_BEAR,
|
XCA_FVG_BEAR,
|
||||||
XCA_PEAKSWHRES,
|
|
||||||
XCA_VALESWLSUP,
|
|
||||||
XCA_TREND_BULL,
|
|
||||||
XCA_TREND_BEAR,
|
|
||||||
};
|
};
|
||||||
insidePivotsCount = SelectInsideBoxes(
|
insidePivotsCount = SelectInsideBoxes(
|
||||||
allowedInsidePivots,
|
allowedInsidePivots,
|
||||||
@@ -1153,25 +1100,14 @@ bool DetectXCAEAConditions(
|
|||||||
pBar,
|
pBar,
|
||||||
p2Bar //
|
p2Bar //
|
||||||
);
|
);
|
||||||
|
Clean(allowedInsidePivots);
|
||||||
hasInsidePivots = IsValidSize(insidePivotsCount);
|
hasInsidePivots = IsValidSize(insidePivotsCount);
|
||||||
if (hasInsidePivots)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
// drawer.DrawBoxes(
|
|
||||||
// insidePivots,
|
|
||||||
// zBar.time //
|
|
||||||
// );
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Detect Rejected Pivot ...
|
// Detect Rejected Pivot ...
|
||||||
ENUM_XCA_PIVOTS allowedRejectedPivots[] = {
|
ENUM_XCA_PIVOTS allowedRejectedPivots[] = {
|
||||||
XCA_FVG_BULL,
|
XCA_FVG_BULL,
|
||||||
XCA_FVG_BEAR,
|
XCA_FVG_BEAR,
|
||||||
// XCA_PEAKSWHRES,
|
|
||||||
// XCA_VALESWLSUP,
|
|
||||||
// XCA_TREND_BULL,
|
|
||||||
// XCA_TREND_BEAR,
|
|
||||||
};
|
};
|
||||||
has = SelectRejectedBox(
|
has = SelectRejectedBox(
|
||||||
allowedRejectedPivots,
|
allowedRejectedPivots,
|
||||||
@@ -1186,123 +1122,7 @@ bool DetectXCAEAConditions(
|
|||||||
true,
|
true,
|
||||||
true //
|
true //
|
||||||
);
|
);
|
||||||
|
Clean(allowedRejectedPivots);
|
||||||
//
|
|
||||||
// Select CCI/RSI Cross Object ...
|
|
||||||
count = ArraySize(pivots);
|
|
||||||
for (int i = 0; i < count; i++)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
XBoxZone iPivot = pivots[i];
|
|
||||||
|
|
||||||
//
|
|
||||||
ENUM_XCA_PIVOTS iType = GetPivotType(iPivot);
|
|
||||||
|
|
||||||
//
|
|
||||||
// Checking Type is Passed ...
|
|
||||||
has =
|
|
||||||
//
|
|
||||||
iType == XCA_RSI_COOS ||
|
|
||||||
iType == XCA_CCI_COOS ||
|
|
||||||
iType == XCA_RSI_CUOB ||
|
|
||||||
iType == XCA_CCI_CUOB
|
|
||||||
//
|
|
||||||
;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Checking cBar is Pivots' Last Bar ...
|
|
||||||
has =
|
|
||||||
has &&
|
|
||||||
cBar.time <= iPivot.to &&
|
|
||||||
cBar.time > iPivot.from;
|
|
||||||
if (has)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
rciPivot = iPivot;
|
|
||||||
|
|
||||||
//
|
|
||||||
iPivot.Clean();
|
|
||||||
|
|
||||||
//
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
iPivot.Clean();
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Detect RCI Pivot Containers Pivots ...
|
|
||||||
count = ArraySize(pivots);
|
|
||||||
has = rciPivot.IsValid();
|
|
||||||
if (has)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
for (int i = 0; i < count; i++)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
XBoxZone iPivot = pivots[i];
|
|
||||||
|
|
||||||
//
|
|
||||||
ENUM_XCA_PIVOTS iType = GetPivotType(iPivot);
|
|
||||||
|
|
||||||
//
|
|
||||||
// Checking Type is Passed ...
|
|
||||||
has =
|
|
||||||
//
|
|
||||||
IsValid(iType) &&
|
|
||||||
(iType == XCA_PEAKSWHRES ||
|
|
||||||
iType == XCA_VALESWLSUP)
|
|
||||||
//
|
|
||||||
;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Check Dir is Passed ...
|
|
||||||
has =
|
|
||||||
has &&
|
|
||||||
rciPivot.dir == iPivot.dir;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Check RCI Pivot is Inside Pivot ...
|
|
||||||
has =
|
|
||||||
has &&
|
|
||||||
//
|
|
||||||
(
|
|
||||||
//
|
|
||||||
(rciPivot.lower >= iPivot.lower &&
|
|
||||||
rciPivot.lower < iPivot.upper)
|
|
||||||
//
|
|
||||||
||
|
|
||||||
//
|
|
||||||
(rciPivot.upper <= iPivot.upper &&
|
|
||||||
rciPivot.upper > iPivot.lower)
|
|
||||||
//
|
|
||||||
||
|
|
||||||
//
|
|
||||||
(rciPivot.upper > iPivot.upper &&
|
|
||||||
rciPivot.lower < iPivot.lower)
|
|
||||||
//
|
|
||||||
)
|
|
||||||
//
|
|
||||||
;
|
|
||||||
|
|
||||||
//
|
|
||||||
if (has)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
AddRef(
|
|
||||||
iPivot,
|
|
||||||
rciContainers //
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
iPivot.Clean();
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
hasRCIContainers = HasChild(rciContainers);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -1363,55 +1183,15 @@ bool DetectXCAEAConditions(
|
|||||||
//
|
//
|
||||||
bool isCond2Bullish =
|
bool isCond2Bullish =
|
||||||
//
|
//
|
||||||
false // &&
|
false
|
||||||
//
|
//
|
||||||
// z3MAFastState > 0 &&
|
|
||||||
// isValeGoldenRejected &&
|
|
||||||
// isCBarBullishRejected &&
|
|
||||||
// conditions.isValeIsPivot
|
|
||||||
//
|
|
||||||
// isPCCIOS &&
|
|
||||||
// isRSIBullish &&
|
|
||||||
// conditions.isCloseUnderMal
|
|
||||||
// rciPivot.IsValid() &&
|
|
||||||
// rciPivot.IsBullish() &&
|
|
||||||
// isCCIBullish &&
|
|
||||||
// cBar.close > c3MAFast
|
|
||||||
// isADXBullish &&
|
|
||||||
// hasRCIContainers &&
|
|
||||||
// conditions.isValeIsPivot &&
|
|
||||||
// (conditions.isRSICrossedOverOS ||
|
|
||||||
// conditions.isCCICrossedOverOS) // &&
|
|
||||||
// conditions.swingLowBuffer[cIDX] < conditions.fiboLevel3Buffer[cIDX]
|
|
||||||
// //
|
|
||||||
;
|
;
|
||||||
|
|
||||||
//
|
//
|
||||||
bool isCond2Bearish =
|
bool isCond2Bearish =
|
||||||
//
|
//
|
||||||
false // &&
|
false
|
||||||
//
|
//
|
||||||
// z3MAFastState < 0 &&
|
|
||||||
// isPeakGoldenRejected &&
|
|
||||||
// isCBarBullishRejected &&
|
|
||||||
// conditions.isPeakIsPivot
|
|
||||||
//
|
|
||||||
// isPCCIOB &&
|
|
||||||
// isRSIBearish &&
|
|
||||||
// c3MAFastState < 0 &&
|
|
||||||
// conditions.isCloseOverMah
|
|
||||||
// rciPivot.IsValid() &&
|
|
||||||
// rciPivot.IsBearish() &&
|
|
||||||
// conditions.isRSIOB &&
|
|
||||||
// isCCIBearish &&
|
|
||||||
// cBar.close < c3MAFast
|
|
||||||
// isADXBearish &&
|
|
||||||
// hasRCIContainers &&
|
|
||||||
// conditions.isPeakIsPivot &&
|
|
||||||
// (conditions.isRSICrossedUnderOB ||
|
|
||||||
// conditions.isCCICrossedUnderOB) // &&
|
|
||||||
// conditions.swingHighBuffer[cIDX] > conditions.fiboLevel1Buffer[cIDX]
|
|
||||||
// //
|
|
||||||
;
|
;
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -1419,12 +1199,6 @@ bool DetectXCAEAConditions(
|
|||||||
isCond2Bearish;
|
isCond2Bearish;
|
||||||
if (isCond2)
|
if (isCond2)
|
||||||
{
|
{
|
||||||
//
|
|
||||||
pivotBox = rciPivot;
|
|
||||||
|
|
||||||
//
|
|
||||||
isCond2Bullish = false;
|
|
||||||
isCond2Bearish = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -1520,17 +1294,6 @@ bool DetectXCAEAConditions(
|
|||||||
sls //
|
sls //
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// //
|
|
||||||
// // X3MA Medium ...
|
|
||||||
// if (c3MAMedium < entry)
|
|
||||||
// {
|
|
||||||
// //
|
|
||||||
// Add(
|
|
||||||
// c3MAMedium,
|
|
||||||
// sls //
|
|
||||||
// );
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -1550,17 +1313,6 @@ bool DetectXCAEAConditions(
|
|||||||
sls //
|
sls //
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// //
|
|
||||||
// // X3MA Medium ...
|
|
||||||
// if (c3MAMedium > entry)
|
|
||||||
// {
|
|
||||||
// //
|
|
||||||
// Add(
|
|
||||||
// c3MAMedium,
|
|
||||||
// sls //
|
|
||||||
// );
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -1656,12 +1408,10 @@ bool DetectXCAEAConditions(
|
|||||||
p2Bar.Clean();
|
p2Bar.Clean();
|
||||||
p3Bar.Clean();
|
p3Bar.Clean();
|
||||||
p4Bar.Clean();
|
p4Bar.Clean();
|
||||||
rciPivot.Clean();
|
|
||||||
Clean(cTrendValues);
|
Clean(cTrendValues);
|
||||||
Clean(pTrendValues);
|
Clean(pTrendValues);
|
||||||
Clean(insidePivots);
|
Clean(insidePivots);
|
||||||
pConditions.Clean();
|
pConditions.Clean();
|
||||||
Clean(rciContainers);
|
|
||||||
rejectedPivot.Clean();
|
rejectedPivot.Clean();
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -185,7 +185,7 @@ class XCXCAEASignaller : XCBase
|
|||||||
|
|
||||||
//
|
//
|
||||||
// Detecting Pivots ...
|
// Detecting Pivots ...
|
||||||
detector.Update(
|
detector.Detect(
|
||||||
zIndex //
|
zIndex //
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -193,8 +193,7 @@ class XCXCAEASignaller : XCBase
|
|||||||
// Validate Pivots ...
|
// Validate Pivots ...
|
||||||
detector.Validate(
|
detector.Validate(
|
||||||
unAvailableBoxes,
|
unAvailableBoxes,
|
||||||
zIndex,
|
zIndex //
|
||||||
true // Validate FVGs Using PV ...
|
|
||||||
);
|
);
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -203,23 +202,21 @@ class XCXCAEASignaller : XCBase
|
|||||||
detector.pivotDetectionLoopbac = 100;
|
detector.pivotDetectionLoopbac = 100;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// Check Market Trend ...
|
|
||||||
hasTrend = detector.MarketTrend(trend);
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Draw Founded Pivots ...
|
// Draw Founded Pivots ...
|
||||||
// drawer.Draw(cTime);
|
// drawer.Draw(cTime);
|
||||||
|
|
||||||
//
|
//
|
||||||
// drawer.DrawFVGBullishPivots(cTime);
|
drawer.DrawPeakPivots(cTime);
|
||||||
// drawer.DrawFVGBearishPivots(cTime);
|
drawer.DrawValePivots(cTime);
|
||||||
|
drawer.DrawFVGBullishPivots(cTime);
|
||||||
|
drawer.DrawFVGBearishPivots(cTime);
|
||||||
// drawer.DrawRSICrossedOverOSPivots(cTime);
|
// drawer.DrawRSICrossedOverOSPivots(cTime);
|
||||||
// drawer.DrawRSICrossedUnderOBPivots(cTime);
|
// drawer.DrawRSICrossedUnderOBPivots(cTime);
|
||||||
drawer.DrawPeakResSWHPivots(cTime);
|
// drawer.DrawPeakResSWHPivots(cTime);
|
||||||
drawer.DrawValeSupSWLPivots(cTime);
|
// drawer.DrawValeSupSWLPivots(cTime);
|
||||||
drawer.DrawRSIPeakPivots(cTime);
|
// drawer.DrawRSIPeakPivots(cTime);
|
||||||
drawer.DrawRSIValePivots(cTime);
|
// drawer.DrawRSIValePivots(cTime);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Retrieve Valid Pviots ...
|
// Retrieve Valid Pviots ...
|
||||||
@@ -819,7 +816,7 @@ class XCXCAEASignaller : XCBase
|
|||||||
inputs.x3maInputs.fastLength = 5;
|
inputs.x3maInputs.fastLength = 5;
|
||||||
|
|
||||||
//
|
//
|
||||||
inputs.x3maInputs.showFast = true;
|
inputs.x3maInputs.showFast = false;
|
||||||
inputs.x3maInputs.showSlow = false;
|
inputs.x3maInputs.showSlow = false;
|
||||||
inputs.x3maInputs.showMedium = false;
|
inputs.x3maInputs.showMedium = false;
|
||||||
|
|
||||||
@@ -828,11 +825,11 @@ class XCXCAEASignaller : XCBase
|
|||||||
inputs.caInputs.showTKI = false;
|
inputs.caInputs.showTKI = false;
|
||||||
inputs.caInputs.showSar = false;
|
inputs.caInputs.showSar = false;
|
||||||
inputs.caInputs.showMAH = true;
|
inputs.caInputs.showMAH = true;
|
||||||
inputs.caInputs.showMAL = true;
|
inputs.caInputs.showMAL = false;
|
||||||
inputs.caInputs.showMAC = true;
|
inputs.caInputs.showMAC = true;
|
||||||
inputs.caInputs.showVidya = false;
|
inputs.caInputs.showVidya = false;
|
||||||
inputs.caInputs.showTrend = false;
|
inputs.caInputs.showTrend = false;
|
||||||
inputs.caInputs.showSwings = true;
|
inputs.caInputs.showSwings = false;
|
||||||
inputs.caInputs.showLongCycle = false;
|
inputs.caInputs.showLongCycle = false;
|
||||||
inputs.caInputs.showHindCycle = false;
|
inputs.caInputs.showHindCycle = false;
|
||||||
inputs.caInputs.showFiboLevel1 = false;
|
inputs.caInputs.showFiboLevel1 = false;
|
||||||
@@ -841,14 +838,14 @@ class XCXCAEASignaller : XCBase
|
|||||||
inputs.caInputs.showShortCycle = false;
|
inputs.caInputs.showShortCycle = false;
|
||||||
inputs.caInputs.showMediumCycle = false;
|
inputs.caInputs.showMediumCycle = false;
|
||||||
inputs.caInputs.showPeaksAndVales = true;
|
inputs.caInputs.showPeaksAndVales = true;
|
||||||
inputs.caInputs.showPeakAndValeGolden = true;
|
inputs.caInputs.showPeakAndValeGolden = false;
|
||||||
inputs.caInputs.showSupportAndResistance = true;
|
inputs.caInputs.showSupportAndResistance = false;
|
||||||
|
|
||||||
//
|
//
|
||||||
// XOSCS ...
|
// XOSCS ...
|
||||||
inputs.oscsInputs.rsiLength = 5;
|
// inputs.oscsInputs.rsiLength = 5;
|
||||||
inputs.oscsInputs.rsiOBLevel = 90;
|
// inputs.oscsInputs.rsiOBLevel = 90;
|
||||||
inputs.oscsInputs.rsiOSLevel = 10;
|
// inputs.oscsInputs.rsiOSLevel = 10;
|
||||||
// inputs.oscsInputs.cciLength = 7;
|
// inputs.oscsInputs.cciLength = 7;
|
||||||
// inputs.oscsInputs.cciOBLevel = 130;
|
// inputs.oscsInputs.cciOBLevel = 130;
|
||||||
// inputs.oscsInputs.cciOSLevel = -130;
|
// inputs.oscsInputs.cciOSLevel = -130;
|
||||||
@@ -857,7 +854,7 @@ class XCXCAEASignaller : XCBase
|
|||||||
|
|
||||||
//
|
//
|
||||||
// Oscillators Views ...
|
// Oscillators Views ...
|
||||||
inputs.showRSI = true;
|
inputs.showRSI = false;
|
||||||
inputs.showCCI = false;
|
inputs.showCCI = false;
|
||||||
inputs.showMFI = false;
|
inputs.showMFI = false;
|
||||||
inputs.showRVI = false;
|
inputs.showRVI = false;
|
||||||
@@ -882,26 +879,31 @@ class XCXCAEASignaller : XCBase
|
|||||||
detector.pivotVerifications = 5;
|
detector.pivotVerifications = 5;
|
||||||
detector.ticksDividerInPoints = 15;
|
detector.ticksDividerInPoints = 15;
|
||||||
detector.pivotDetectionLoopbac = 200;
|
detector.pivotDetectionLoopbac = 200;
|
||||||
detector.ticksDetectionPerid = PERIOD_D1;
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Configure Detector ...
|
// Configure Detector ...
|
||||||
detector.detectTickPivots = false;
|
|
||||||
detector.detectVolumePivots = false;
|
//
|
||||||
detector.detectRSIPeakPivots = false;
|
// PV ...
|
||||||
detector.detectRSIValePivots = false;
|
|
||||||
detector.detectCCIPeakPivots = false;
|
//
|
||||||
detector.detectCCIValePivots = false;
|
// PEAK ...
|
||||||
detector.detectFVGBullishPivots = false;
|
detector.detectPeakPivots = true;
|
||||||
detector.detectFVGBearishPivots = false;
|
|
||||||
detector.detectValeSupSWLPivots = true;
|
//
|
||||||
detector.detectPeakResSWHPivots = true;
|
// VALE ...
|
||||||
detector.detectTrendBullishPivots = true;
|
detector.detectValePivots = true;
|
||||||
detector.detectTrendBearishPivots = true;
|
|
||||||
detector.detectCCICrossedOverOSPivots = false;
|
//
|
||||||
detector.detectCCICrossedUnderOBPivots = false;
|
// FVG ...
|
||||||
detector.detectRSICrossedOverOSPivots = false;
|
detector.maxAllowedFVGLife = 0;
|
||||||
detector.detectRSICrossedUnderOBPivots = false;
|
detector.detectFVGTypeOne = true;
|
||||||
|
detector.detectFVGTypeTwo = false;
|
||||||
|
detector.applyPVToFVGBoundary = false;
|
||||||
|
detector.detectFVGBullishPivots = true;
|
||||||
|
detector.detectFVGBearishPivots = true;
|
||||||
|
detector.applyLastBarToFVGBoundary = false;
|
||||||
|
detector.selectOnlyFVGWhichHasIndirectionalLastBar = true;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Initialize and Configure Drawer ...
|
// Initialize and Configure Drawer ...
|
||||||
@@ -909,90 +911,58 @@ class XCXCAEASignaller : XCBase
|
|||||||
|
|
||||||
//
|
//
|
||||||
drawer.ignoreUpdateOSCTos = true;
|
drawer.ignoreUpdateOSCTos = true;
|
||||||
drawer.drawTrendPivotsOnlySelectedFVG = true;
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Configure Drawer ...
|
// Configure Drawer ...
|
||||||
drawer.drawTrendLine = false;
|
drawer.drawPeakPivots = true;
|
||||||
drawer.drawTickPivots = false;
|
drawer.drawValePivots = true;
|
||||||
drawer.drawVolumePivots = false;
|
drawer.drawFVGBullishPivots = true;
|
||||||
drawer.drawRSIPeakPivots = false;
|
drawer.drawFVGBearishPivots = true;
|
||||||
drawer.drawRSIValePivots = false;
|
|
||||||
drawer.drawCCIPeakPivots = false;
|
|
||||||
drawer.drawCCIValePivots = false;
|
|
||||||
drawer.drawFVGBullishPivots = false;
|
|
||||||
drawer.drawFVGBearishPivots = false;
|
|
||||||
drawer.drawValeSupSWLPivots = true;
|
|
||||||
drawer.drawPeakResSWHPivots = true;
|
|
||||||
drawer.drawTrendBullishPivots = false;
|
|
||||||
drawer.drawTrendBearishPivots = false;
|
|
||||||
drawer.drawCCICrossedOverOSPivots = false;
|
|
||||||
drawer.drawCCICrossedUnderOBPivots = false;
|
|
||||||
drawer.drawRSICrossedOverOSPivots = false;
|
|
||||||
drawer.drawRSICrossedUnderOBPivots = false;
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Configure Widths ...
|
// Configure Styles ...
|
||||||
drawer.tickPivotsWidth = 2;
|
|
||||||
drawer.volumePivotsWidth = 2;
|
|
||||||
drawer.rsiPeakPivotsWidth = 4;
|
|
||||||
drawer.rsiValePivotsWidth = 4;
|
|
||||||
drawer.cciPeakPivotsWidth = 4;
|
|
||||||
drawer.cciValePivotsWidth = 4;
|
|
||||||
drawer.fvgBullishPivotsWidth = 2;
|
|
||||||
drawer.fvgBearishPivotsWidth = 2;
|
|
||||||
drawer.valeSupSWLPivotsWidth = 1;
|
|
||||||
drawer.peakResSWHPivotsWidth = 1;
|
|
||||||
drawer.trendLineBullishWidth = 4;
|
|
||||||
drawer.trendLineBullishWidth = 4;
|
|
||||||
drawer.trendBullishPivotsWidth = 1;
|
|
||||||
drawer.trendBearishPivotsWidth = 1;
|
|
||||||
drawer.rsiCrossedOverOSPivotsWidth = 4;
|
|
||||||
drawer.rsiCrossedUnderOBPivotsWidth = 4;
|
|
||||||
drawer.cciCrossedOverOSPivotsWidth = 4;
|
|
||||||
drawer.cciCrossedUnderOBPivotsWidth = 4;
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Configure Colors ...
|
// PV ...
|
||||||
drawer.tickPivotsColor = clrYellow;
|
|
||||||
drawer.volumePivotsColor = clrDodgerBlue;
|
|
||||||
drawer.rsiPeakPivotsColor = clrMagenta;
|
|
||||||
drawer.rsiValePivotsColor = clrAqua;
|
|
||||||
drawer.cciPeakPivotsColor = clrMagenta;
|
|
||||||
drawer.cciValePivotsColor = clrAqua;
|
|
||||||
drawer.fvgBullishPivotsColor = clrAqua;
|
|
||||||
drawer.fvgBearishPivotsColor = clrMagenta;
|
|
||||||
drawer.valeSupSWLPivotsColor = clrAqua;
|
|
||||||
drawer.peakResSWHPivotsColor = clrMagenta;
|
|
||||||
drawer.trendLineBullishColor = clrAqua;
|
|
||||||
drawer.trendLineBullishColor = clrMagenta;
|
|
||||||
drawer.trendBullishPivotsColor = clrLime;
|
|
||||||
drawer.trendBearishPivotsColor = clrRed;
|
|
||||||
drawer.rsiCrossedOverOSPivotsColor = clrAqua;
|
|
||||||
drawer.rsiCrossedUnderOBPivotsColor = clrMagenta;
|
|
||||||
drawer.cciCrossedOverOSPivotsColor = clrAqua;
|
|
||||||
drawer.cciCrossedUnderOBPivotsColor = clrMagenta;
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Configures Styles ...
|
// PEAK ...
|
||||||
drawer.tickPivotsStyle = STYLE_DOT;
|
XCAPivotStyle peakStyle;
|
||||||
drawer.volumePivotsStyle = STYLE_DOT;
|
peakStyle.width = 2;
|
||||||
drawer.rsiPeakPivotsStyle = STYLE_DASH;
|
peakStyle.clr = clrMagenta;
|
||||||
drawer.rsiValePivotsStyle = STYLE_DASH;
|
peakStyle.style = STYLE_SOLID;
|
||||||
drawer.cciPeakPivotsStyle = STYLE_DASH;
|
drawer.peakPivotStyle = peakStyle;
|
||||||
drawer.cciValePivotsStyle = STYLE_DASH;
|
peakStyle.Clean();
|
||||||
drawer.fvgBullishPivotsStyle = STYLE_DASHDOTDOT;
|
|
||||||
drawer.fvgBearishPivotsStyle = STYLE_DASHDOTDOT;
|
//
|
||||||
drawer.valeSupSWLPivotsStyle = STYLE_SOLID;
|
// VALE ...
|
||||||
drawer.peakResSWHPivotsStyle = STYLE_SOLID;
|
XCAPivotStyle valeStyle;
|
||||||
drawer.trendLineBullishWidth = STYLE_SOLID;
|
valeStyle.width = 2;
|
||||||
drawer.trendLineBullishWidth = STYLE_SOLID;
|
valeStyle.clr = clrAqua;
|
||||||
drawer.trendBullishPivotsStyle = STYLE_DASHDOTDOT;
|
valeStyle.style = STYLE_SOLID;
|
||||||
drawer.trendBearishPivotsStyle = STYLE_DASHDOTDOT;
|
drawer.valePivotStyle = valeStyle;
|
||||||
drawer.rsiCrossedOverOSPivotsStyle = STYLE_DASHDOTDOT;
|
valeStyle.Clean();
|
||||||
drawer.rsiCrossedUnderOBPivotsStyle = STYLE_DASHDOTDOT;
|
|
||||||
drawer.cciCrossedOverOSPivotsStyle = STYLE_DASHDOTDOT;
|
//
|
||||||
drawer.cciCrossedUnderOBPivotsStyle = STYLE_DASHDOTDOT;
|
// FVG ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Bullish ...
|
||||||
|
XCAPivotStyle fvgBullishStyle;
|
||||||
|
fvgBullishStyle.width = 2;
|
||||||
|
fvgBullishStyle.clr = clrLime;
|
||||||
|
fvgBullishStyle.style = STYLE_DASH;
|
||||||
|
drawer.fvgBullishPivotStyle = fvgBullishStyle;
|
||||||
|
fvgBullishStyle.Clean();
|
||||||
|
|
||||||
|
//
|
||||||
|
// Bearish ...
|
||||||
|
XCAPivotStyle fvgBearishStyle;
|
||||||
|
fvgBearishStyle.width = 2;
|
||||||
|
fvgBearishStyle.clr = clrRed;
|
||||||
|
fvgBearishStyle.style = STYLE_DASH;
|
||||||
|
drawer.fvgBearishPivotStyle = fvgBearishStyle;
|
||||||
|
fvgBearishStyle.Clean();
|
||||||
|
|
||||||
//
|
//
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user