add support for FVG and Order Blocks in along side Support and Resistance ...

This commit is contained in:
2024-07-25 19:21:49 +03:30
parent cd04299a2a
commit 8525704eb1
3 changed files with 563 additions and 53 deletions
+210
View File
@@ -1663,6 +1663,216 @@ struct XOHCL
return result;
}
//
bool HasBullishPressure(
int _loopback = 7 //
)
{
//
bool result = false;
//
if (_loopback < 0)
{
_loopback = 7;
}
//
double bullishPressure = GetBullishPressure(_loopback);
double bearishPressure = GetBearishPressure(_loopback);
//
result =
//
bullishPressure > 0 &&
bearishPressure >= 0 &&
bullishPressure > bearishPressure
//
;
//
return result;
}
//
bool HasBearishPressure(
int _loopback = 7 //
)
{
//
bool result = false;
//
if (_loopback < 0)
{
_loopback = 7;
}
//
double bullishPressure = GetBullishPressure(_loopback);
double bearishPressure = GetBearishPressure(_loopback);
//
result =
//
bearishPressure > 0 &&
bullishPressure >= 0 &&
bearishPressure > bullishPressure
//
;
//
return result;
}
//
// Retrieve Bullish Power ...
double GetBullishPower(
int _loopback = 7 //
)
{
//
double result = 0;
//
if (!IsValid())
{
return result;
}
//
XOHCL bars[];
int barsCount = GetBars(
bars,
symbol,
period,
Index(),
_loopback //
);
if (!IsValidSize(barsCount))
{
return result;
}
//
for (int i = 0; i < barsCount; i++)
{
//
if (bars[i].IsBullish())
{
result += bars[i].GetBody();
}
}
//
return result;
}
//
// Retrieve Bearish Pressure ...
double GetBearishPower(
int _loopback = 7 //
)
{
//
double result = 0;
//
if (!IsValid())
{
return result;
}
//
XOHCL bars[];
int barsCount = GetBars(
bars,
symbol,
period,
Index(),
_loopback //
);
if (!IsValidSize(barsCount))
{
return result;
}
//
for (int i = 0; i < barsCount; i++)
{
//
if (bars[i].IsBearish())
{
result += bars[i].GetBody();
}
}
//
return result;
}
//
bool HasBullishPower(
int _loopback = 7 //
)
{
//
bool result = false;
//
if (_loopback < 0)
{
_loopback = 7;
}
//
double bullishPressure = GetBullishPower(_loopback);
double bearishPressure = GetBearishPower(_loopback);
//
result =
//
bullishPressure > 0 &&
bearishPressure >= 0 &&
bullishPressure > bearishPressure
//
;
//
return result;
}
//
bool HasBearishPower(
int _loopback = 7 //
)
{
//
bool result = false;
//
if (_loopback < 0)
{
_loopback = 7;
}
//
double bullishPressure = GetBullishPower(_loopback);
double bearishPressure = GetBearishPower(_loopback);
//
result =
//
bearishPressure > 0 &&
bullishPressure >= 0 &&
bearishPressure > bullishPressure
//
;
//
return result;
}
//
// Touches ...