Add Support to Draw Rect on XZoneChart Object ...

This commit is contained in:
2024-10-22 15:44:45 +03:30
parent a6e4d625e4
commit eab3888c88
3 changed files with 313 additions and 50 deletions
+156 -1
View File
@@ -47,6 +47,18 @@ enum ENUM_XPOIS
// Support nad Resistance ...
X_POI_SUPPORT, // Support Zone ...
X_POI_RESISTANCE, // Resistance Zone ...
//
// Supply and Demand Zones ...
X_POI_SUPPLY_ZONE, // Supply Zone ...
X_POI_DEMAND_ZONE, // Demand Zone ...
//
// Order Blocks ...
X_POI_BULLISH_ORDERBLOCK, // Bullish Order Block ...
X_POI_BEARISH_ORDERBLOCK, // Bearish Order Block ...
//
// Fair Value Gaps ...
X_POI_BULLISH_FVG, // Bullish Order Block ...
X_POI_BEARISH_FVG, // Bearish Order Block ...
};
//
@@ -75,6 +87,18 @@ enum ENUM_XPOI_EVENTS
// Support nad Resistance ...
X_SUPPORT_ZONE_DETECTED, // Support Zone ...
X_RESISTANCE_ZONE_DETECTED, // Resistance Zone ...
//
// Supply nad Demand ...
X_SUPPLY_ZONE_DETECTED, // Supply Zone ...
X_DEMAND_ZONE_DETECTED, // Demand Zone ...
//
// Order Blocks ...
X_BULLISH_ORDERBLOCK_DETECTED, // Bullish Order Block ...
X_BEARISH_ORDERBLOCK_DETECTED, // Bearish Order Block ...
//
// Fair Value Gaps ...
X_BULLISH_FVG_DETECTED, // Bullish Fair Value Gapّ ...
X_BEARISH_FVG_DETECTED, // Bearish Fair Value Gapّ ...
};
//
@@ -84,7 +108,8 @@ enum ENUM_XSESSION
X_TOKYO,
X_SYDNEY,
X_LONDON,
X_NEW_YORK
X_NEW_YORK,
X_FRANKFORT,
};
//
@@ -303,6 +328,100 @@ struct XMarketSession
}
};
//
// Zone Struct ...
struct XZone
{
//
// Props ...
double upper;
double lower;
string prefix;
//
// Constructor ...
void XZone()
{
Clean();
}
//
bool Init(
double _upper,
double _lower,
string _prefix //
)
{
//
bool result = false;
//
result =
_upper > 0 &&
_lower > 0 &&
_upper > _lower &&
IsValid(_prefix);
if (!result)
{
return result;
}
//
upper = _upper;
lower = _lower;
prefix = _prefix;
//
result = IsValid();
//
return result;
}
//
void Clean()
{
//
upper = 0;
lower = 0;
//
prefix = NULL;
}
//
bool IsValid()
{
//
bool result = false;
//
result = upper > 0 &&
lower > 0 &&
upper > lower &&
IsValid(prefix);
//
return result;
}
//
string GetTag()
{
//
string result = NULL;
//
result = prefix +
"_XZone_" +
ToString(upper) + "_" +
ToString(lower);
//
return result;
}
};
//
// XOHCL Event Handler ...
typedef void (*TXOHCLEventHandler)(
@@ -322,6 +441,12 @@ typedef void (*TXSessionEventHandler)(
ENUM_XPOI_EVENTS event //
);
//
// Zone Handler ...
typedef void (*TXZoneEventHandler)(
ENUM_XPOI_EVENTS event //
);
//
// Extensions ...
@@ -369,6 +494,36 @@ string ToString(ENUM_XPOIS value)
case X_POI_RESISTANCE:
result = "XRES";
break;
//
case X_POI_SUPPLY_ZONE:
result = "XSUPPLY";
break;
//
case X_POI_DEMAND_ZONE:
result = "XDEMAND";
break;
//
case X_POI_BULLISH_ORDERBLOCK:
result = "XBULLOB";
break;
//
case X_POI_BEARISH_ORDERBLOCK:
result = "XBEAROB";
break;
//
case X_POI_BULLISH_FVG:
result = "XBULLFVG";
break;
//
case X_POI_BEARISH_FVG:
result = "XBEARFVG";
break;
}
//