last ...
This commit is contained in:
@@ -6099,6 +6099,12 @@ struct XOBFVG
|
||||
//
|
||||
ZeroMemory(ob);
|
||||
ZeroMemory(fvg);
|
||||
|
||||
//
|
||||
Clean(supplyZones);
|
||||
Clean(demandZones);
|
||||
Clean(supportZones);
|
||||
Clean(resistanceZones);
|
||||
}
|
||||
|
||||
//
|
||||
@@ -6181,13 +6187,15 @@ struct XOBFVG
|
||||
bool has = false;
|
||||
|
||||
//
|
||||
if (HasOB())
|
||||
has = HasOB();
|
||||
if (has)
|
||||
{
|
||||
ob.To(value);
|
||||
}
|
||||
|
||||
//
|
||||
if (HasFVG())
|
||||
has = HasFVG();
|
||||
if (has)
|
||||
{
|
||||
fvg.To(value);
|
||||
}
|
||||
@@ -6199,7 +6207,7 @@ struct XOBFVG
|
||||
{
|
||||
//
|
||||
count = CountSupplyZones();
|
||||
for (int i = 0; count; i++)
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
supplyZones[i].To(value);
|
||||
}
|
||||
@@ -6212,7 +6220,7 @@ struct XOBFVG
|
||||
{
|
||||
//
|
||||
count = CountDemandZones();
|
||||
for (int i = 0; count; i++)
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
demandZones[i].To(value);
|
||||
}
|
||||
@@ -6225,7 +6233,7 @@ struct XOBFVG
|
||||
{
|
||||
//
|
||||
count = CountSupportZones();
|
||||
for (int i = 0; count; i++)
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
supportZones[i].To(value);
|
||||
}
|
||||
@@ -6238,7 +6246,7 @@ struct XOBFVG
|
||||
{
|
||||
//
|
||||
count = CountResistanceZones();
|
||||
for (int i = 0; count; i++)
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
resistanceZones[i].To(value);
|
||||
}
|
||||
@@ -8365,6 +8373,7 @@ int GetLowest(
|
||||
* @param applyFromFilter: Filter Sorted Zones based on Occured Date ...
|
||||
* @param applyPlaceFilter: Filter Sorted Zones based on Occured Place ...
|
||||
* @param ignoreInside: Ignore Inside Sides of POI(s) Zones in Related to Order Block ...
|
||||
* @param applyFromFilterForPOIs: Apply From Filter for Other POI(s) ...
|
||||
*
|
||||
* @return ( int )
|
||||
*/
|
||||
@@ -8397,7 +8406,11 @@ int ExtractOBFVGZones(
|
||||
bool applyFromFilter = true,
|
||||
bool applyPlaceFilter = true,
|
||||
//
|
||||
bool ignoreInside = true
|
||||
bool ignoreInside = true,
|
||||
//
|
||||
bool detectInsideOBPOIs = true,
|
||||
bool detectInsideFVGPOIs = true,
|
||||
bool applyFromFilterForPOIs = true
|
||||
//
|
||||
)
|
||||
{
|
||||
@@ -9008,7 +9021,11 @@ int ExtractOBFVGZones(
|
||||
//
|
||||
// Detecting Other POI(s) ...
|
||||
has = HasChild(dest);
|
||||
if (has)
|
||||
bool canDetectPOIs =
|
||||
detectInsideOBPOIs ||
|
||||
detectInsideFVGPOIs;
|
||||
if (has &&
|
||||
canDetectPOIs)
|
||||
{
|
||||
//
|
||||
count = ArraySize(dest);
|
||||
@@ -9024,27 +9041,15 @@ int ExtractOBFVGZones(
|
||||
{
|
||||
//
|
||||
bool isInsideOB = IsInsideDiff(
|
||||
stfState.supplyZones[j],
|
||||
dest[i].ob,
|
||||
false //
|
||||
) ||
|
||||
IsInsideDiff(
|
||||
stfState.supplyZones[j],
|
||||
dest[i].ob,
|
||||
true //
|
||||
);
|
||||
stfState.supplyZones[j],
|
||||
dest[i].ob //
|
||||
);
|
||||
|
||||
//
|
||||
bool isInsideFVG = IsInsideDiff(
|
||||
stfState.supplyZones[j],
|
||||
dest[i].fvg,
|
||||
false //
|
||||
) ||
|
||||
IsInsideDiff(
|
||||
stfState.supplyZones[j],
|
||||
dest[i].fvg,
|
||||
true //
|
||||
);
|
||||
stfState.supplyZones[j],
|
||||
dest[i].fvg //
|
||||
);
|
||||
|
||||
//
|
||||
bool isInside = isInsideOB ||
|
||||
@@ -9052,10 +9057,34 @@ int ExtractOBFVGZones(
|
||||
if (isInside)
|
||||
{
|
||||
//
|
||||
Add(
|
||||
stfState.supplyZones[j],
|
||||
dest[i].supplyZones //
|
||||
);
|
||||
bool isPassed =
|
||||
detectInsideOBPOIs
|
||||
? isInsideOB
|
||||
: detectInsideFVGPOIs
|
||||
? isInsideFVG
|
||||
: false;
|
||||
if (isPassed)
|
||||
{
|
||||
//
|
||||
isPassed =
|
||||
!applyFromFilterForPOIs
|
||||
? isPassed
|
||||
: isInsideOB
|
||||
? stfState.supplyZones[j].From() > dest[i].ob.From()
|
||||
: isInsideFVG
|
||||
? stfState.supplyZones[j].From() > dest[i].fvg.From()
|
||||
: false;
|
||||
}
|
||||
|
||||
//
|
||||
if (isPassed)
|
||||
{
|
||||
//
|
||||
Add(
|
||||
stfState.supplyZones[j],
|
||||
dest[i].supplyZones //
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -9070,27 +9099,15 @@ int ExtractOBFVGZones(
|
||||
{
|
||||
//
|
||||
bool isInsideOB = IsInsideDiff(
|
||||
stfState.demandZones[j],
|
||||
dest[i].ob,
|
||||
false //
|
||||
) ||
|
||||
IsInsideDiff(
|
||||
stfState.demandZones[j],
|
||||
dest[i].ob,
|
||||
true //
|
||||
);
|
||||
stfState.demandZones[j],
|
||||
dest[i].ob //
|
||||
);
|
||||
|
||||
//
|
||||
bool isInsideFVG = IsInsideDiff(
|
||||
stfState.demandZones[j],
|
||||
dest[i].fvg,
|
||||
false //
|
||||
) ||
|
||||
IsInsideDiff(
|
||||
stfState.demandZones[j],
|
||||
dest[i].fvg,
|
||||
true //
|
||||
);
|
||||
stfState.demandZones[j],
|
||||
dest[i].fvg //
|
||||
);
|
||||
|
||||
//
|
||||
bool isInside = isInsideOB ||
|
||||
@@ -9098,10 +9115,34 @@ int ExtractOBFVGZones(
|
||||
if (isInside)
|
||||
{
|
||||
//
|
||||
Add(
|
||||
stfState.demandZones[j],
|
||||
dest[i].demandZones //
|
||||
);
|
||||
bool isPassed =
|
||||
detectInsideOBPOIs
|
||||
? isInsideOB
|
||||
: detectInsideFVGPOIs
|
||||
? isInsideFVG
|
||||
: false;
|
||||
if (isPassed)
|
||||
{
|
||||
//
|
||||
isPassed =
|
||||
!applyFromFilterForPOIs
|
||||
? isPassed
|
||||
: isInsideOB
|
||||
? stfState.demandZones[j].From() > dest[i].ob.From()
|
||||
: isInsideFVG
|
||||
? stfState.demandZones[j].From() > dest[i].fvg.From()
|
||||
: false;
|
||||
}
|
||||
|
||||
//
|
||||
if (isPassed)
|
||||
{
|
||||
//
|
||||
Add(
|
||||
stfState.demandZones[j],
|
||||
dest[i].demandZones //
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -9116,27 +9157,15 @@ int ExtractOBFVGZones(
|
||||
{
|
||||
//
|
||||
bool isInsideOB = IsInsideDiff(
|
||||
stfState.supportZones[j],
|
||||
dest[i].ob,
|
||||
false //
|
||||
) ||
|
||||
IsInsideDiff(
|
||||
stfState.supportZones[j],
|
||||
dest[i].ob,
|
||||
true //
|
||||
);
|
||||
stfState.supportZones[j],
|
||||
dest[i].ob //
|
||||
);
|
||||
|
||||
//
|
||||
bool isInsideFVG = IsInsideDiff(
|
||||
stfState.supportZones[j],
|
||||
dest[i].fvg,
|
||||
false //
|
||||
) ||
|
||||
IsInsideDiff(
|
||||
stfState.supportZones[j],
|
||||
dest[i].fvg,
|
||||
true //
|
||||
);
|
||||
stfState.supportZones[j],
|
||||
dest[i].fvg //
|
||||
);
|
||||
|
||||
//
|
||||
bool isInside = isInsideOB ||
|
||||
@@ -9144,10 +9173,34 @@ int ExtractOBFVGZones(
|
||||
if (isInside)
|
||||
{
|
||||
//
|
||||
Add(
|
||||
stfState.supportZones[j],
|
||||
dest[i].supportZones //
|
||||
);
|
||||
bool isPassed =
|
||||
detectInsideOBPOIs
|
||||
? isInsideOB
|
||||
: detectInsideFVGPOIs
|
||||
? isInsideFVG
|
||||
: false;
|
||||
if (isPassed)
|
||||
{
|
||||
//
|
||||
isPassed =
|
||||
!applyFromFilterForPOIs
|
||||
? isPassed
|
||||
: isInsideOB
|
||||
? stfState.supportZones[j].From() > dest[i].ob.From()
|
||||
: isInsideFVG
|
||||
? stfState.supportZones[j].From() > dest[i].fvg.From()
|
||||
: false;
|
||||
}
|
||||
|
||||
//
|
||||
if (isPassed)
|
||||
{
|
||||
//
|
||||
Add(
|
||||
stfState.supportZones[j],
|
||||
dest[i].supportZones //
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -9162,27 +9215,15 @@ int ExtractOBFVGZones(
|
||||
{
|
||||
//
|
||||
bool isInsideOB = IsInsideDiff(
|
||||
stfState.resistanceZones[j],
|
||||
dest[i].ob,
|
||||
false //
|
||||
) ||
|
||||
IsInsideDiff(
|
||||
stfState.resistanceZones[j],
|
||||
dest[i].ob,
|
||||
true //
|
||||
);
|
||||
stfState.resistanceZones[j],
|
||||
dest[i].ob //
|
||||
);
|
||||
|
||||
//
|
||||
bool isInsideFVG = IsInsideDiff(
|
||||
stfState.resistanceZones[j],
|
||||
dest[i].fvg,
|
||||
false //
|
||||
) ||
|
||||
IsInsideDiff(
|
||||
stfState.resistanceZones[j],
|
||||
dest[i].fvg,
|
||||
true //
|
||||
);
|
||||
stfState.resistanceZones[j],
|
||||
dest[i].fvg //
|
||||
);
|
||||
|
||||
//
|
||||
bool isInside = isInsideOB ||
|
||||
@@ -9190,10 +9231,34 @@ int ExtractOBFVGZones(
|
||||
if (isInside)
|
||||
{
|
||||
//
|
||||
Add(
|
||||
stfState.resistanceZones[j],
|
||||
dest[i].resistanceZones //
|
||||
);
|
||||
bool isPassed =
|
||||
detectInsideOBPOIs
|
||||
? isInsideOB
|
||||
: detectInsideFVGPOIs
|
||||
? isInsideFVG
|
||||
: false;
|
||||
if (isPassed)
|
||||
{
|
||||
//
|
||||
isPassed =
|
||||
!applyFromFilterForPOIs
|
||||
? isPassed
|
||||
: isInsideOB
|
||||
? stfState.resistanceZones[j].From() > dest[i].ob.From()
|
||||
: isInsideFVG
|
||||
? stfState.resistanceZones[j].From() > dest[i].fvg.From()
|
||||
: false;
|
||||
}
|
||||
|
||||
//
|
||||
if (isPassed)
|
||||
{
|
||||
//
|
||||
Add(
|
||||
stfState.resistanceZones[j],
|
||||
dest[i].resistanceZones //
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user