Complete Supply and Demand Zone ...

This commit is contained in:
2024-10-23 11:42:34 +03:30
parent 6ce5da4707
commit 8212d542f2
4 changed files with 1452 additions and 68 deletions
+72 -10
View File
@@ -42,6 +42,8 @@ enum ENUM_XCHARTOBJECTS
X_MARKET_SESSION, X_MARKET_SESSION,
X_SUPPORT_ZONE, X_SUPPORT_ZONE,
X_RESISTANCE_ZONE, X_RESISTANCE_ZONE,
X_SUPPLY_ZONE,
X_DEMAND_ZONE,
}; };
enum ENUM_X_CHART_IDS enum ENUM_X_CHART_IDS
@@ -411,8 +413,6 @@ class XCZoneObject : public CChartObject
long chart_id, long chart_id,
const string name, const string name,
const int window, const int window,
const datetime time1,
const datetime time2,
const XZone &zone, const XZone &zone,
const string objprefix = NULL, const string objprefix = NULL,
const bool forceRect = false // const bool forceRect = false //
@@ -421,14 +421,9 @@ class XCZoneObject : public CChartObject
// //
bool result = false; bool result = false;
//
NormalizeTime(time2);
// //
XZone tmpZone = zone; XZone tmpZone = zone;
result = result =
time1 < time2 &&
IsValid(time1) &&
IsValid(name) && IsValid(name) &&
tmpZone.IsValid(); tmpZone.IsValid();
if (!result) if (!result)
@@ -441,13 +436,14 @@ class XCZoneObject : public CChartObject
chart_id, chart_id,
name, name,
window, window,
time1, zone.from,
time2, zone.to,
zone.upper, zone.upper,
zone.upper, zone.upper,
zone.lower, zone.lower,
zone.lower, zone.lower,
objprefix // objprefix,
forceRect //
); );
// //
@@ -850,3 +846,69 @@ class XCResistanceZoneObject : public XCZoneObject
}; };
// //
// Supply Zone ...
class XCSupplyZoneObject : public XCZoneObject
{
//
public:
//
//
// Constructors ...
void XCSupplyZoneObject()
{
}
//
// Deconstructors ...
void ~XCSupplyZoneObject()
{
}
/**
* Retrieve Object Type ...
*
* @return ( ENUM_XCHARTOBJECTS )
*/
virtual ENUM_XCHARTOBJECTS Type()
{
return X_SUPPLY_ZONE;
}
//
};
//
// Demand Zone ...
class XCDemandZoneObject : public XCZoneObject
{
//
public:
//
//
// Constructors ...
void XCDemandZoneObject()
{
}
//
// Deconstructors ...
void ~XCDemandZoneObject()
{
}
/**
* Retrieve Object Type ...
*
* @return ( ENUM_XCHARTOBJECTS )
*/
virtual ENUM_XCHARTOBJECTS Type()
{
return X_DEMAND_ZONE;
}
//
};
//
File diff suppressed because it is too large Load Diff
+5 -1
View File
@@ -431,9 +431,13 @@ bool InitEA()
_Period // _Period //
); );
eaPOI.EnableDrawPOIs(); eaPOI.EnableDrawPOIs();
eaPOI.AllowDrawSwingHighs(false);
eaPOI.AllowDrawSwingLows(false); eaPOI.AllowDrawSwingLows(false);
eaPOI.AllowDrawSwingHighs(false);
eaPOI.AllowDrawMomentumBars(false); eaPOI.AllowDrawMomentumBars(false);
eaPOI.AllowDrawSupportZones(false);
eaPOI.AllowDrawRejectionBars(false);
eaPOI.AllowDrawMarketSessions(false);
eaPOI.AllowDrawResistanceZones(false);
eaPOI.Init(); eaPOI.Init();
// // // //
+21 -3
View File
@@ -338,6 +338,10 @@ struct XZone
double lower; double lower;
string prefix; string prefix;
//
datetime from;
datetime to;
// //
// Constructor ... // Constructor ...
void XZone() void XZone()
@@ -349,7 +353,9 @@ struct XZone
bool Init( bool Init(
double _upper, double _upper,
double _lower, double _lower,
string _prefix // string _prefix,
datetime _from,
datetime _to //
) )
{ {
// //
@@ -360,16 +366,22 @@ struct XZone
_upper > 0 && _upper > 0 &&
_lower > 0 && _lower > 0 &&
_upper > _lower && _upper > _lower &&
IsValid(_prefix); IsValid(_prefix) &&
IsValid(_from);
if (!result) if (!result)
{ {
return result; return result;
} }
//
NormalizeTime(_to);
// //
upper = _upper; upper = _upper;
lower = _lower; lower = _lower;
prefix = _prefix; prefix = _prefix;
from = _from;
to = _to;
// //
result = IsValid(); result = IsValid();
@@ -386,6 +398,8 @@ struct XZone
lower = 0; lower = 0;
// //
to = NULL;
from = NULL;
prefix = NULL; prefix = NULL;
} }
@@ -399,6 +413,8 @@ struct XZone
result = upper > 0 && result = upper > 0 &&
lower > 0 && lower > 0 &&
upper > lower && upper > lower &&
IsValid(to) &&
IsValid(from) &&
IsValid(prefix); IsValid(prefix);
// //
@@ -425,6 +441,7 @@ struct XZone
// //
// XOHCL Event Handler ... // XOHCL Event Handler ...
typedef void (*TXOHCLEventHandler)( typedef void (*TXOHCLEventHandler)(
ENUM_XPOI_EVENTS event,
XOHCL &bar // XOHCL &bar //
); );
@@ -444,7 +461,8 @@ typedef void (*TXSessionEventHandler)(
// //
// Zone Handler ... // Zone Handler ...
typedef void (*TXZoneEventHandler)( typedef void (*TXZoneEventHandler)(
ENUM_XPOI_EVENTS event // ENUM_XPOI_EVENTS event,
XZone &zone //
); );
// //