Last Works On Correction HasObjectsFunctions till Market Session Objects ...
This commit is contained in:
@@ -46,6 +46,8 @@ enum ENUM_XCHARTOBJECTS
|
||||
X_DEMAND_ZONE,
|
||||
X_BULLISH_ORDERBLOCK,
|
||||
X_BEARISH_ORDERBLOCK,
|
||||
X_BULLISH_FVG,
|
||||
X_BEARISH_FVG,
|
||||
};
|
||||
|
||||
enum ENUM_X_CHART_IDS
|
||||
@@ -105,9 +107,51 @@ string ToString(ENUM_X_CHART_IDS value)
|
||||
//
|
||||
// Global Chart Objects ...
|
||||
|
||||
//
|
||||
// Bas Chart Object ...
|
||||
class XCBaseObject : public CChartObject
|
||||
{
|
||||
//
|
||||
public:
|
||||
//
|
||||
|
||||
//
|
||||
// Getter(s) / Setter(s) ...
|
||||
|
||||
/**
|
||||
* Get Object Specified Name ...
|
||||
*
|
||||
* @return ( string )
|
||||
*/
|
||||
string ObjName()
|
||||
{
|
||||
return mObjName;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Object Specified Name ...
|
||||
*
|
||||
* @param value: String ...
|
||||
*/
|
||||
void ObjName(string value)
|
||||
{
|
||||
mObjName = value;
|
||||
}
|
||||
|
||||
//
|
||||
private:
|
||||
//
|
||||
|
||||
//
|
||||
// Props ...
|
||||
string mObjName; // Object Specified Name ...
|
||||
|
||||
//
|
||||
};
|
||||
|
||||
//
|
||||
// From To Chart Object ...
|
||||
class XCFromToObject : public CChartObject
|
||||
class XCFromToObject : public XCBaseObject
|
||||
{
|
||||
//
|
||||
public:
|
||||
@@ -141,19 +185,15 @@ class XCFromToObject : public CChartObject
|
||||
const string name,
|
||||
const int window,
|
||||
const datetime from,
|
||||
const datetime to,
|
||||
const string objprefix = NULL //
|
||||
const datetime to //
|
||||
)
|
||||
{
|
||||
//
|
||||
bool result = false;
|
||||
|
||||
//
|
||||
string mPrefix = (IsValid(objprefix) ? objprefix + "_" : "");
|
||||
|
||||
//
|
||||
string mFromVLineName =
|
||||
mPrefix + ToString(X_FROM) + "_" + name;
|
||||
ToString(X_FROM) + "_" + name;
|
||||
result = mFromVLine.Create(chart_id, mFromVLineName, window, from);
|
||||
if (!result)
|
||||
{
|
||||
@@ -162,13 +202,17 @@ class XCFromToObject : public CChartObject
|
||||
|
||||
//
|
||||
string mToVLineName =
|
||||
mPrefix + ToString(X_TO) + "_" + name;
|
||||
ToString(X_TO) + "_" + name;
|
||||
result = mToVLine.Create(chart_id, mToVLineName, window, to);
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
// Set Object Name ...
|
||||
ObjName(name);
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
@@ -246,7 +290,7 @@ class XCFromToObject : public CChartObject
|
||||
|
||||
//
|
||||
// Zone Chart Object ...
|
||||
class XCZoneObject : public CChartObject
|
||||
class XCZoneObject : public XCBaseObject
|
||||
{
|
||||
//
|
||||
public:
|
||||
@@ -321,6 +365,11 @@ class XCZoneObject : public CChartObject
|
||||
!IsValid(objprefix)
|
||||
? ""
|
||||
: objprefix + "_";
|
||||
result = Name(prefix);
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
// Check Params For Rectangle ...
|
||||
@@ -393,6 +442,12 @@ class XCZoneObject : public CChartObject
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
if (result)
|
||||
{
|
||||
ObjName(name);
|
||||
}
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
@@ -570,8 +625,7 @@ class XCTardeDayObject : public XCFromToObject
|
||||
name,
|
||||
window,
|
||||
day.from,
|
||||
day.to,
|
||||
"XTDAY" //
|
||||
day.to //
|
||||
);
|
||||
|
||||
//
|
||||
@@ -639,14 +693,12 @@ class XCMarketSessionObject : public XCFromToObject
|
||||
bool result = false;
|
||||
|
||||
//
|
||||
string sessionLabel = ToString(session.session);
|
||||
result = Create(
|
||||
chart_id,
|
||||
name,
|
||||
window,
|
||||
session.from,
|
||||
session.to,
|
||||
sessionLabel //
|
||||
session.to //
|
||||
);
|
||||
|
||||
//
|
||||
@@ -982,3 +1034,71 @@ class XCBearishOrderBlockObject : public XCZoneObject
|
||||
};
|
||||
|
||||
//
|
||||
// Bullish FVG ...
|
||||
|
||||
class XCBullishFVGObject : public XCZoneObject
|
||||
{
|
||||
//
|
||||
public:
|
||||
//
|
||||
|
||||
//
|
||||
// Constructors ...
|
||||
void XCBullishFVGObject()
|
||||
{
|
||||
}
|
||||
|
||||
//
|
||||
// Deconstructors ...
|
||||
void ~XCBullishFVGObject()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve Object Type ...
|
||||
*
|
||||
* @return ( ENUM_XCHARTOBJECTS )
|
||||
*/
|
||||
virtual ENUM_XCHARTOBJECTS Type()
|
||||
{
|
||||
return X_BULLISH_FVG;
|
||||
}
|
||||
|
||||
//
|
||||
};
|
||||
|
||||
//
|
||||
// Bearish FVG ...
|
||||
|
||||
class XCBearishFVGObject : public XCZoneObject
|
||||
{
|
||||
//
|
||||
public:
|
||||
//
|
||||
|
||||
//
|
||||
// Constructors ...
|
||||
void XCBearishFVGObject()
|
||||
{
|
||||
}
|
||||
|
||||
//
|
||||
// Deconstructors ...
|
||||
void ~XCBearishFVGObject()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve Object Type ...
|
||||
*
|
||||
* @return ( ENUM_XCHARTOBJECTS )
|
||||
*/
|
||||
virtual ENUM_XCHARTOBJECTS Type()
|
||||
{
|
||||
return X_BEARISH_FVG;
|
||||
}
|
||||
|
||||
//
|
||||
};
|
||||
|
||||
//
|
||||
|
||||
+1824
-235
File diff suppressed because it is too large
Load Diff
@@ -431,13 +431,21 @@ bool InitEA()
|
||||
_Period //
|
||||
);
|
||||
eaPOI.EnableDrawPOIs();
|
||||
eaPOI.AllowDrawSwingLows(false);
|
||||
eaPOI.AllowDrawSwingHighs(false);
|
||||
eaPOI.AllowDrawMomentumBars(false);
|
||||
eaPOI.AllowDrawSupportZones(false);
|
||||
eaPOI.AllowDrawRejectionBars(false);
|
||||
eaPOI.AllowDrawMarketSessions(false);
|
||||
eaPOI.AllowDrawResistanceZones(false);
|
||||
// eaPOI.AllowDrawSwingLows(false);
|
||||
// eaPOI.AllowDrawSwingHighs(false);
|
||||
// eaPOI.AllowDrawBullishFVGs(false);
|
||||
// eaPOI.AllowDrawBearishFVGs(false);
|
||||
// eaPOI.AllowDrawSupplyZones(false);
|
||||
// eaPOI.AllowDrawDemandZones(false);
|
||||
// eaPOI.AllowDrawMomentumBars(false);
|
||||
// eaPOI.AllowDrawSupportZones(false);
|
||||
// eaPOI.AllowDrawRejectionBars(false);
|
||||
// eaPOI.AllowDrawMarketSessions(false);
|
||||
// eaPOI.AllowDrawResistanceZones(false);
|
||||
// eaPOI.AllowDrawBullishOrderBlocks(false);
|
||||
// eaPOI.AllowDrawBearishOrderBlocks(false);
|
||||
|
||||
//
|
||||
eaPOI.Init();
|
||||
|
||||
// //
|
||||
|
||||
@@ -3701,7 +3701,10 @@ struct XOHCL
|
||||
bool HasBullishFVG(
|
||||
double &upper,
|
||||
double &lower,
|
||||
bool forceMiddleBarCheck = true //
|
||||
datetime &start,
|
||||
datetime &end,
|
||||
bool forceMiddleBarCheck = true,
|
||||
bool forceCheckLastBarDirection = false //
|
||||
)
|
||||
{
|
||||
//
|
||||
@@ -3711,6 +3714,10 @@ struct XOHCL
|
||||
upper = 0;
|
||||
lower = 0;
|
||||
|
||||
//
|
||||
end = NULL;
|
||||
start = NULL;
|
||||
|
||||
//
|
||||
// Validate Content and Ignore 0 Bar
|
||||
// since it is not Completed ...
|
||||
@@ -3722,7 +3729,10 @@ struct XOHCL
|
||||
|
||||
//
|
||||
// Current Bar Must be Bullish ...
|
||||
result = IsBullish();
|
||||
result =
|
||||
!forceCheckLastBarDirection
|
||||
? true
|
||||
: IsBullish();
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
@@ -3793,8 +3803,10 @@ struct XOHCL
|
||||
if (result)
|
||||
{
|
||||
//
|
||||
end = time;
|
||||
upper = low;
|
||||
lower = ppBar.high;
|
||||
start = ppBar.time;
|
||||
}
|
||||
|
||||
//
|
||||
@@ -3806,7 +3818,10 @@ struct XOHCL
|
||||
bool HasBearishFVG(
|
||||
double &upper,
|
||||
double &lower,
|
||||
bool forceMiddleBarCheck = true //
|
||||
datetime &start,
|
||||
datetime &end,
|
||||
bool forceMiddleBarCheck = true,
|
||||
bool forceCheckLastBarDirection = false //
|
||||
)
|
||||
{
|
||||
//
|
||||
@@ -3816,6 +3831,10 @@ struct XOHCL
|
||||
upper = 0;
|
||||
lower = 0;
|
||||
|
||||
//
|
||||
end = NULL;
|
||||
start = NULL;
|
||||
|
||||
//
|
||||
// Validate Content and Ignore 0 Bar
|
||||
// since it is not Completed ...
|
||||
@@ -3827,7 +3846,10 @@ struct XOHCL
|
||||
|
||||
//
|
||||
// Current Bar Must be Bearish ...
|
||||
result = IsBearish();
|
||||
result =
|
||||
!forceCheckLastBarDirection
|
||||
? true
|
||||
: IsBullish();
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
@@ -3898,8 +3920,10 @@ struct XOHCL
|
||||
if (result)
|
||||
{
|
||||
//
|
||||
upper = ppBar.low;
|
||||
end = time;
|
||||
lower = high;
|
||||
upper = ppBar.low;
|
||||
start = ppBar.time;
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
@@ -33,6 +33,12 @@
|
||||
// All Available POI(s) ...
|
||||
enum ENUM_XPOIS
|
||||
{
|
||||
//
|
||||
// Trading Day ...
|
||||
X_POI_TRADING_DAY, // Trading Day ...
|
||||
//
|
||||
// Market Session ...
|
||||
X_POI_MARKET_SESSION, // Market Session ...
|
||||
//
|
||||
// Momentum Bar ...
|
||||
X_POI_MOMENTUM_BAR, // Momentum Bar ...
|
||||
@@ -45,8 +51,8 @@ enum ENUM_XPOIS
|
||||
X_POI_SWING_LOW, // Simple Swing Low ...
|
||||
//
|
||||
// Support nad Resistance ...
|
||||
X_POI_SUPPORT, // Support Zone ...
|
||||
X_POI_RESISTANCE, // Resistance Zone ...
|
||||
X_POI_SUPPORT_ZONE, // Support Zone ...
|
||||
X_POI_RESISTANCE_ZONE, // Resistance Zone ...
|
||||
//
|
||||
// Supply and Demand Zones ...
|
||||
X_POI_SUPPLY_ZONE, // Supply Zone ...
|
||||
@@ -261,7 +267,7 @@ struct XTradeDay
|
||||
}
|
||||
|
||||
//
|
||||
result = "XDay_" + ToFormatString(from) + "_" + ToFormatString(to);
|
||||
result = ToString(X_POI_TRADING_DAY) + "_" + ToFormatString(from) + "_" + ToFormatString(to);
|
||||
|
||||
//
|
||||
return result;
|
||||
@@ -320,7 +326,10 @@ struct XMarketSession
|
||||
|
||||
//
|
||||
result =
|
||||
ToFormatString(from) + "_" +
|
||||
ToString(X_POI_MARKET_SESSION) + "_" +
|
||||
ToString(session) + "_" +
|
||||
ToFormatString(from) +
|
||||
"_" +
|
||||
ToFormatString(to) + "_";
|
||||
|
||||
//
|
||||
@@ -483,6 +492,16 @@ string ToString(ENUM_XPOIS value)
|
||||
//
|
||||
switch (value)
|
||||
{
|
||||
//
|
||||
case X_POI_TRADING_DAY:
|
||||
result = "XTDAY";
|
||||
break;
|
||||
|
||||
//
|
||||
case X_POI_MARKET_SESSION:
|
||||
result = "XMSESS";
|
||||
break;
|
||||
|
||||
//
|
||||
case X_POI_MOMENTUM_BAR:
|
||||
result = "XMNTMB";
|
||||
@@ -504,12 +523,12 @@ string ToString(ENUM_XPOIS value)
|
||||
break;
|
||||
|
||||
//
|
||||
case X_POI_SUPPORT:
|
||||
case X_POI_SUPPORT_ZONE:
|
||||
result = "XSUP";
|
||||
break;
|
||||
|
||||
//
|
||||
case X_POI_RESISTANCE:
|
||||
case X_POI_RESISTANCE_ZONE:
|
||||
result = "XRES";
|
||||
break;
|
||||
|
||||
@@ -573,6 +592,11 @@ string ToString(ENUM_XSESSION value)
|
||||
result = "Tokyo";
|
||||
break;
|
||||
|
||||
//
|
||||
case X_FRANKFORT:
|
||||
result = "FrankGurt";
|
||||
break;
|
||||
|
||||
//
|
||||
case X_LONDON:
|
||||
result = "London";
|
||||
|
||||
Reference in New Issue
Block a user