last ...
This commit is contained in:
@@ -771,23 +771,23 @@ bool DetectXCAEAConditions(
|
||||
|
||||
//
|
||||
bool isX3MaBullishState =
|
||||
z3MAFast > c3MAFast &&
|
||||
isCBarValidForBullish &&
|
||||
//
|
||||
z3MAFast > z3MAMedium &&
|
||||
c3MAFast > c3MAMedium &&
|
||||
isCBarBullishRejected &&
|
||||
c3MAMedium > c3MASlow &&
|
||||
cBar.low < x3maBullishGapLower &&
|
||||
cBar.GetDown() > x3maBullishGapLower;
|
||||
z3MAMedium > z3MASlow &&
|
||||
c3MAMedium > c3MASlow
|
||||
//
|
||||
;
|
||||
|
||||
//
|
||||
bool isX3MaBearishState =
|
||||
z3MAFast < c3MAFast &&
|
||||
isCBarValidForBearish &&
|
||||
//
|
||||
z3MAFast < z3MAMedium &&
|
||||
c3MAFast < c3MAMedium &&
|
||||
isCBarBearishRejected &&
|
||||
c3MAMedium < c3MASlow &&
|
||||
cBar.high > x3maBearishGapLower &&
|
||||
cBar.GetUp() < x3maBearishGapLower;
|
||||
z3MAMedium < z3MASlow &&
|
||||
c3MAMedium < c3MASlow
|
||||
//
|
||||
;
|
||||
|
||||
//
|
||||
bool isX3MaValidForBullishRejection =
|
||||
@@ -819,6 +819,7 @@ bool DetectXCAEAConditions(
|
||||
XBoxZone rejectedPivot;
|
||||
XBoxZone insidePivots[];
|
||||
int insidePivotsCount = 0;
|
||||
bool isRejectedOnMid = false;
|
||||
bool hasInsidePivots = false;
|
||||
bool hasPivots = HasChild(pivots);
|
||||
if (hasPivots)
|
||||
@@ -860,11 +861,13 @@ bool DetectXCAEAConditions(
|
||||
has = SelectRejectedBox(
|
||||
allowedPivots,
|
||||
rejectedPivot,
|
||||
isRejectedOnMid,
|
||||
pivots,
|
||||
zBar,
|
||||
cBar,
|
||||
pBar,
|
||||
p2Bar,
|
||||
true, // Ignore Mid Rejection ...
|
||||
true,
|
||||
true //
|
||||
);
|
||||
@@ -888,8 +891,8 @@ bool DetectXCAEAConditions(
|
||||
bool isCond1Bullish =
|
||||
//
|
||||
rejectedPivot.IsValid() &&
|
||||
rejectedPivot.IsBullish() // &&
|
||||
// isX3MaValidForBullishRejection
|
||||
rejectedPivot.IsBullish() &&
|
||||
isX3MaValidForBullishRejection
|
||||
//
|
||||
;
|
||||
|
||||
@@ -897,8 +900,8 @@ bool DetectXCAEAConditions(
|
||||
bool isCond1Bearish =
|
||||
//
|
||||
rejectedPivot.IsValid() &&
|
||||
rejectedPivot.IsBearish() // &&
|
||||
// isX3MaValidForBearishRejection
|
||||
rejectedPivot.IsBearish() &&
|
||||
isX3MaValidForBearishRejection
|
||||
//
|
||||
;
|
||||
|
||||
@@ -907,6 +910,9 @@ bool DetectXCAEAConditions(
|
||||
isCond1Bearish;
|
||||
if (isCond1)
|
||||
{
|
||||
//
|
||||
pivotBox = rejectedPivot;
|
||||
|
||||
//
|
||||
drawer.DrawBox(
|
||||
rejectedPivot,
|
||||
@@ -920,14 +926,22 @@ bool DetectXCAEAConditions(
|
||||
//
|
||||
bool isCond2Bullish =
|
||||
//
|
||||
false
|
||||
false &&
|
||||
isX3MaBearishState &&
|
||||
isCBarBullishRejected // &&
|
||||
// cBar.GetDown() > pVale &&
|
||||
// conditions.isValeUnderLast
|
||||
//
|
||||
;
|
||||
|
||||
//
|
||||
bool isCond2Bearish =
|
||||
//
|
||||
false
|
||||
false &&
|
||||
isX3MaBullishState &&
|
||||
isCBarBearishRejected // &&
|
||||
// cBar.GetUp() < pPeak &&
|
||||
// conditions.isPeakOverLast
|
||||
//
|
||||
;
|
||||
|
||||
@@ -936,6 +950,8 @@ bool DetectXCAEAConditions(
|
||||
isCond2Bearish;
|
||||
if (isCond2)
|
||||
{
|
||||
//
|
||||
// Print("Cond2");
|
||||
}
|
||||
|
||||
//
|
||||
@@ -1000,11 +1016,13 @@ bool DetectXCAEAConditions(
|
||||
dir //
|
||||
);
|
||||
|
||||
//
|
||||
double sls[];
|
||||
|
||||
//
|
||||
if (isCond1)
|
||||
{
|
||||
//
|
||||
double sls[];
|
||||
if (isCond1Bullish)
|
||||
{
|
||||
//
|
||||
@@ -1014,16 +1032,16 @@ bool DetectXCAEAConditions(
|
||||
sls //
|
||||
);
|
||||
|
||||
//
|
||||
// X3MA Medium ...
|
||||
if (c3MAMedium < entry)
|
||||
{
|
||||
//
|
||||
Add(
|
||||
c3MAMedium,
|
||||
sls //
|
||||
);
|
||||
}
|
||||
// //
|
||||
// // X3MA Medium ...
|
||||
// if (c3MAMedium < entry)
|
||||
// {
|
||||
// //
|
||||
// Add(
|
||||
// c3MAMedium,
|
||||
// sls //
|
||||
// );
|
||||
// }
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1034,16 +1052,16 @@ bool DetectXCAEAConditions(
|
||||
sls //
|
||||
);
|
||||
|
||||
//
|
||||
// X3MA Medium ...
|
||||
if (c3MAMedium > entry)
|
||||
{
|
||||
//
|
||||
Add(
|
||||
c3MAMedium,
|
||||
sls //
|
||||
);
|
||||
}
|
||||
// //
|
||||
// // X3MA Medium ...
|
||||
// if (c3MAMedium > entry)
|
||||
// {
|
||||
// //
|
||||
// Add(
|
||||
// c3MAMedium,
|
||||
// sls //
|
||||
// );
|
||||
// }
|
||||
}
|
||||
|
||||
//
|
||||
@@ -1051,72 +1069,13 @@ bool DetectXCAEAConditions(
|
||||
isCond1Bullish
|
||||
? GetMax(sls)
|
||||
: GetMin(sls);
|
||||
|
||||
//
|
||||
double supportRisk = MathAbs(entry - cSupport);
|
||||
double supportRiskPoint = supportRisk / points;
|
||||
|
||||
//
|
||||
double resistanceRisk = MathAbs(entry - cSupport);
|
||||
double resistanceRiskPoint = resistanceRisk / points;
|
||||
|
||||
//
|
||||
double rejectedPivotMid = rejectedPivot.lower +
|
||||
((rejectedPivot.upper - rejectedPivot.lower) / 2);
|
||||
double rejectedPivotMidRisk = MathAbs(entry - rejectedPivotMid);
|
||||
double rejectedPivotMidRiskInPoint = rejectedPivotMid / points;
|
||||
|
||||
//
|
||||
Clean(sls);
|
||||
|
||||
//
|
||||
// Preparing Targets ...
|
||||
if (isBullish)
|
||||
{
|
||||
//
|
||||
if (cPeak > entry)
|
||||
{
|
||||
//
|
||||
Add(
|
||||
cPeak,
|
||||
targets //
|
||||
);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//
|
||||
if (cVale < entry)
|
||||
{
|
||||
//
|
||||
Add(
|
||||
cVale,
|
||||
targets //
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
double risk = MathAbs(providedSL - entry);
|
||||
double riskPoint = risk / points;
|
||||
|
||||
//
|
||||
double minAllowedSLRiskPoint = 25.0;
|
||||
double minAllowedSLRisk = minAllowedSLRiskPoint * points;
|
||||
double minAllowedSL =
|
||||
isBullish
|
||||
? entry - minAllowedSLRisk
|
||||
: entry + minAllowedSLRisk;
|
||||
|
||||
//
|
||||
double maxAllowedSLRiskPoint = 40.0;
|
||||
double maxAllowedSLRisk = maxAllowedSLRiskPoint * points;
|
||||
double maxAllowedSL =
|
||||
isBullish
|
||||
? entry + maxAllowedSLRisk
|
||||
: entry - maxAllowedSLRisk;
|
||||
|
||||
//
|
||||
double sl =
|
||||
providedSL > 0
|
||||
@@ -1148,6 +1107,9 @@ bool DetectXCAEAConditions(
|
||||
|
||||
//
|
||||
box.type = "XCASignal";
|
||||
|
||||
//
|
||||
Clean(sls);
|
||||
}
|
||||
|
||||
//
|
||||
@@ -1292,11 +1254,13 @@ int SelectInsideBoxes(
|
||||
bool SelectRejectedBox(
|
||||
ENUM_XCA_PIVOTS &allowedTypes[],
|
||||
XBoxZone &box,
|
||||
bool &rejectOnMid,
|
||||
XBoxZone &boxes[],
|
||||
XOHCL &zBar,
|
||||
XOHCL &cBar,
|
||||
XOHCL &pBar,
|
||||
XOHCL &p2Bar,
|
||||
bool ignoreMidRejection = true,
|
||||
bool forceBarType = false,
|
||||
bool forcePressure = false //
|
||||
)
|
||||
@@ -1306,6 +1270,7 @@ bool SelectRejectedBox(
|
||||
|
||||
//
|
||||
box.Clean();
|
||||
rejectOnMid = false;
|
||||
|
||||
//
|
||||
// Validate ...
|
||||
@@ -1385,6 +1350,14 @@ bool SelectRejectedBox(
|
||||
forcePressure //
|
||||
);
|
||||
|
||||
//
|
||||
if (ignoreMidRejection)
|
||||
{
|
||||
//
|
||||
isMidBullishRejected = false;
|
||||
isMidBearishRejected = false;
|
||||
}
|
||||
|
||||
//
|
||||
bool isBullishRejected =
|
||||
isBullish &&
|
||||
@@ -1405,6 +1378,9 @@ bool SelectRejectedBox(
|
||||
{
|
||||
//
|
||||
box = iBox;
|
||||
rejectOnMid = isBullishRejected
|
||||
? isMidBullishRejected
|
||||
: isMidBearishRejected;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user