last ...
This commit is contained in:
@@ -5588,6 +5588,65 @@ struct XBoxZone
|
|||||||
//
|
//
|
||||||
double diffAvg = (upper - lower) / 2;
|
double diffAvg = (upper - lower) / 2;
|
||||||
result = lower + diffAvg;
|
result = lower + diffAvg;
|
||||||
|
result = NormalizePrice(result, symbol);
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Calculate Box Leg N Price ...
|
||||||
|
* N default is 2
|
||||||
|
*
|
||||||
|
* @param leg: int ...
|
||||||
|
*
|
||||||
|
* @return ( double )
|
||||||
|
*/
|
||||||
|
double GetLeg(int leg = 2)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
double result = 0;
|
||||||
|
|
||||||
|
//
|
||||||
|
leg = NormalizeInt(leg, 2);
|
||||||
|
|
||||||
|
//
|
||||||
|
if (!IsValid())
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
double range = (upper - lower) * leg;
|
||||||
|
result =
|
||||||
|
IsBullish()
|
||||||
|
? upper + range
|
||||||
|
: lower - range;
|
||||||
|
result = NormalizePrice(result, symbol);
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Calculate Box Range ...
|
||||||
|
*
|
||||||
|
* @return ( double )
|
||||||
|
*/
|
||||||
|
double GetRange()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
double result = 0;
|
||||||
|
|
||||||
|
//
|
||||||
|
if (!IsValid())
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
result = (upper - lower);
|
||||||
|
result = NormalizePrice(result, symbol);
|
||||||
|
|
||||||
//
|
//
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
@@ -1773,10 +1773,75 @@ bool CanTriggerCond3(
|
|||||||
barIndex //
|
barIndex //
|
||||||
);
|
);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Initialize iBar ...
|
||||||
|
XOHCL iBar;
|
||||||
|
result = iBar.Init(
|
||||||
|
symbol,
|
||||||
|
period,
|
||||||
|
barIndex //
|
||||||
|
);
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
iBar.Clean();
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Validate Box ...
|
// Validate Box ...
|
||||||
// For Box Validating we use 50% of Box Range ...
|
// For Box Validating we use 50% of Box Range ...
|
||||||
// if Price Touched Box 50% rate we Invalidate Box ...
|
// if Price Touched Box 50% rate we Invalidate Box ...
|
||||||
|
// r if Prce Touched Leg 2 of Box Size ...
|
||||||
|
double boxLeg2 = box.GetLeg(2);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Draw Box Leg2 ...
|
||||||
|
string iLeg2Name = box.GetMiddleTag();
|
||||||
|
StringReplace(
|
||||||
|
iLeg2Name,
|
||||||
|
"Mid",
|
||||||
|
"Leg2" //
|
||||||
|
);
|
||||||
|
CChartObjectTrend *iLeg2Obj;
|
||||||
|
iLeg2Obj = new CChartObjectTrend();
|
||||||
|
has = iLeg2Obj.Create(
|
||||||
|
helper.poiDrawer.ChartIdentification(),
|
||||||
|
iLeg2Name,
|
||||||
|
helper.poiDrawer.SubWindowIdentification(),
|
||||||
|
box.from,
|
||||||
|
boxLeg2,
|
||||||
|
box.to,
|
||||||
|
boxLeg2 //
|
||||||
|
);
|
||||||
|
if (has)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
iLeg2Obj.Color(clrYellow);
|
||||||
|
|
||||||
|
//
|
||||||
|
drawns.Add(iLeg2Obj);
|
||||||
|
}
|
||||||
|
ZeroMemory(iLeg2Obj);
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isBoxValid =
|
||||||
|
isBullish
|
||||||
|
? iBar.close < boxLeg2
|
||||||
|
: iBar.close > boxLeg2;
|
||||||
|
result = isBoxValid;
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
box.Clean();
|
||||||
|
iBar.Clean();
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
iBar.Clean();
|
||||||
|
|
||||||
//
|
//
|
||||||
// Detect Box FVG ...
|
// Detect Box FVG ...
|
||||||
@@ -1890,11 +1955,6 @@ bool CanTriggerCond3(
|
|||||||
result = !isBreaked;
|
result = !isBreaked;
|
||||||
if (!result)
|
if (!result)
|
||||||
{
|
{
|
||||||
//
|
|
||||||
// Here We Can Cleanup Decision Zone ...
|
|
||||||
// since the Conditions Destructed ...
|
|
||||||
// box.Clean();
|
|
||||||
|
|
||||||
//
|
//
|
||||||
fvg.Clean();
|
fvg.Clean();
|
||||||
Clean(fvgs);
|
Clean(fvgs);
|
||||||
@@ -1930,7 +1990,6 @@ bool CanTriggerCond3(
|
|||||||
|
|
||||||
//
|
//
|
||||||
// Detecting Liquiidties ...
|
// Detecting Liquiidties ...
|
||||||
XOHCL iBar;
|
|
||||||
XCAEALQSweep iLQ;
|
XCAEALQSweep iLQ;
|
||||||
XCAEALQSweep lqs[];
|
XCAEALQSweep lqs[];
|
||||||
toIDX = fvg.ToIndex();
|
toIDX = fvg.ToIndex();
|
||||||
@@ -2311,6 +2370,22 @@ bool CanTriggerCond3(
|
|||||||
// Since Here TP Must Calculated
|
// Since Here TP Must Calculated
|
||||||
// Using R2R we Ignore Target ...
|
// Using R2R we Ignore Target ...
|
||||||
tp = 0;
|
tp = 0;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Add Target if price is Inside Analyse Box ...
|
||||||
|
double price = iBar.close;
|
||||||
|
double target =
|
||||||
|
isBullish
|
||||||
|
? box.upper
|
||||||
|
: box.lower;
|
||||||
|
has =
|
||||||
|
isBullish
|
||||||
|
? price < target
|
||||||
|
: price > target;
|
||||||
|
if (has)
|
||||||
|
{
|
||||||
|
tp = target;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -775,11 +775,7 @@ class XCXCAEASignaller : XCBase
|
|||||||
inputs.ctInputs.showCandleTime = true;
|
inputs.ctInputs.showCandleTime = true;
|
||||||
|
|
||||||
//
|
//
|
||||||
// XCA ...
|
// X3MA ...
|
||||||
|
|
||||||
//
|
|
||||||
inputs.caInputs.supResSmoothingLength = 7;
|
|
||||||
inputs.caInputs.supResSmoothingMode = X_MA_MODE_NONE;
|
|
||||||
|
|
||||||
//
|
//
|
||||||
inputs.x3maInputs.applyColor = true;
|
inputs.x3maInputs.applyColor = true;
|
||||||
@@ -793,10 +789,25 @@ class XCXCAEASignaller : XCBase
|
|||||||
inputs.x3maInputs.showMedium = false;
|
inputs.x3maInputs.showMedium = false;
|
||||||
|
|
||||||
//
|
//
|
||||||
|
// XCA ...
|
||||||
|
|
||||||
|
//
|
||||||
|
inputs.caInputs.sarStep = 0.001;
|
||||||
|
inputs.caInputs.sarMax = 0.05;
|
||||||
|
|
||||||
|
//
|
||||||
|
inputs.caInputs.supResSmoothingLength = 7;
|
||||||
|
inputs.caInputs.supResSmoothingMode = X_MA_MODE_NONE;
|
||||||
|
|
||||||
|
//
|
||||||
|
inputs.caInputs.showKI = false;
|
||||||
|
inputs.caInputs.showTKI = false;
|
||||||
inputs.caInputs.showMAH = false;
|
inputs.caInputs.showMAH = false;
|
||||||
inputs.caInputs.showMAL = false;
|
inputs.caInputs.showMAL = false;
|
||||||
inputs.caInputs.showMAC = false;
|
inputs.caInputs.showMAC = false;
|
||||||
inputs.caInputs.showSar = false;
|
inputs.caInputs.showSar = true;
|
||||||
|
inputs.caInputs.showVidya = false;
|
||||||
|
inputs.caInputs.showTrend = false;
|
||||||
inputs.caInputs.showSwings = true;
|
inputs.caInputs.showSwings = true;
|
||||||
inputs.caInputs.showFiboLevel1 = false;
|
inputs.caInputs.showFiboLevel1 = false;
|
||||||
inputs.caInputs.showFiboLevel2 = false;
|
inputs.caInputs.showFiboLevel2 = false;
|
||||||
@@ -804,12 +815,6 @@ class XCXCAEASignaller : XCBase
|
|||||||
inputs.caInputs.showFiboLevel4 = false;
|
inputs.caInputs.showFiboLevel4 = false;
|
||||||
inputs.caInputs.showFiboLevel5 = false;
|
inputs.caInputs.showFiboLevel5 = false;
|
||||||
inputs.caInputs.showPeaksAndVales = true;
|
inputs.caInputs.showPeaksAndVales = true;
|
||||||
|
|
||||||
//
|
|
||||||
inputs.caInputs.showKI = false;
|
|
||||||
inputs.caInputs.showTKI = false;
|
|
||||||
inputs.caInputs.showVidya = false;
|
|
||||||
inputs.caInputs.showTrend = false;
|
|
||||||
inputs.caInputs.showPeakAndValeGolden = false;
|
inputs.caInputs.showPeakAndValeGolden = false;
|
||||||
inputs.caInputs.showSupportAndResistance = false;
|
inputs.caInputs.showSupportAndResistance = false;
|
||||||
|
|
||||||
@@ -833,6 +838,10 @@ class XCXCAEASignaller : XCBase
|
|||||||
inputs.showADX = false;
|
inputs.showADX = false;
|
||||||
inputs.showMACD = false;
|
inputs.showMACD = false;
|
||||||
|
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
|
||||||
//
|
//
|
||||||
// XCAEA Helper ...
|
// XCAEA Helper ...
|
||||||
helper = new XCXCAEAHelper();
|
helper = new XCXCAEAHelper();
|
||||||
|
|||||||
Reference in New Issue
Block a user