Complete Rejection Bars ...

This commit is contained in:
2024-11-12 12:37:00 +03:30
parent 40f97468fd
commit 43ee49b32f
5 changed files with 1870 additions and 78 deletions
+164
View File
@@ -566,6 +566,170 @@ class XCBarAnalyser : public XCBase
return result;
}
/**
* Check a Bar is Momentum Bar or not ...
*
* @param bar: XOHCL instance ...
* @param dir: ENUM_X_DIRECTION member ...
* @param extend: Integer ...
* @param bodyPercent: Double ...
*
* @return ( bool )
*/
bool IsMomentumBar(
XOHCL &bar,
ENUM_X_DIRECTION &dir,
int extend = 1,
double bodyPercent = 70 //
)
{
//
bool result = false;
//
if (extend < 0)
{
extend = 0;
}
//
if (bodyPercent < 50)
{
bodyPercent = 50;
}
//
dir = X_DIRECTION_NONE;
//
result = bar.IsValid() &&
bar.Index() > 0;
if (!result)
{
return result;
}
//
if (extend > 0)
{
//
result = IsExtended(
bar,
extend //
);
//
if (!result)
{
return result;
}
}
//
double body = bar.GetBody();
double rp = GetBarRangePercent(bar);
//
result = body >= rp * bodyPercent;
//
if (result)
{
//
dir =
bar.IsBullish()
? X_DIRECTION_BULLISH
: X_DIRECTION_BEARISH;
}
//
return result;
}
/**
* Check a Bar is Rejection Bar or not ...
*
* @param bar: XOHCL instance ...
* @param dir: ENUM_X_DIRECTION member ...
* @param extend: Integer ...
* @param bodyPercent: Double ...
*
* @return ( bool )
*/
bool IsRejectionBar(
XOHCL &bar,
ENUM_X_DIRECTION &dir,
int extend = 1,
double shadowPercent = 60 //
)
{
//
bool result = false;
//
if (extend < 0)
{
extend = 0;
}
//
if (shadowPercent < 50)
{
shadowPercent = 50;
}
//
dir = X_DIRECTION_NONE;
//
result = bar.IsValid() &&
bar.Index() > 0;
if (!result)
{
return result;
}
//
if (extend > 0)
{
//
result = IsExtended(
bar,
extend //
);
//
if (!result)
{
return result;
}
}
//
double body = bar.GetBody();
double range = bar.GetRange();
double shadows = bar.GetShadows();
double lowShadow = bar.GetLowShadow();
double highShadow = bar.GetHighShadow();
double rp = GetBarRangePercent(bar);
//
result = shadows >= rp * shadowPercent;
//
if (result)
{
//
dir =
lowShadow > highShadow
? X_DIRECTION_BULLISH
: X_DIRECTION_BEARISH;
}
//
return result;
}
//
protected:
//