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_DEMAND_ZONE,
|
||||||
X_BULLISH_ORDERBLOCK,
|
X_BULLISH_ORDERBLOCK,
|
||||||
X_BEARISH_ORDERBLOCK,
|
X_BEARISH_ORDERBLOCK,
|
||||||
|
X_BULLISH_FVG,
|
||||||
|
X_BEARISH_FVG,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum ENUM_X_CHART_IDS
|
enum ENUM_X_CHART_IDS
|
||||||
@@ -105,9 +107,51 @@ string ToString(ENUM_X_CHART_IDS value)
|
|||||||
//
|
//
|
||||||
// Global Chart Objects ...
|
// 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 ...
|
// From To Chart Object ...
|
||||||
class XCFromToObject : public CChartObject
|
class XCFromToObject : public XCBaseObject
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
public:
|
public:
|
||||||
@@ -141,19 +185,15 @@ class XCFromToObject : public CChartObject
|
|||||||
const string name,
|
const string name,
|
||||||
const int window,
|
const int window,
|
||||||
const datetime from,
|
const datetime from,
|
||||||
const datetime to,
|
const datetime to //
|
||||||
const string objprefix = NULL //
|
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
bool result = false;
|
bool result = false;
|
||||||
|
|
||||||
//
|
|
||||||
string mPrefix = (IsValid(objprefix) ? objprefix + "_" : "");
|
|
||||||
|
|
||||||
//
|
//
|
||||||
string mFromVLineName =
|
string mFromVLineName =
|
||||||
mPrefix + ToString(X_FROM) + "_" + name;
|
ToString(X_FROM) + "_" + name;
|
||||||
result = mFromVLine.Create(chart_id, mFromVLineName, window, from);
|
result = mFromVLine.Create(chart_id, mFromVLineName, window, from);
|
||||||
if (!result)
|
if (!result)
|
||||||
{
|
{
|
||||||
@@ -162,13 +202,17 @@ class XCFromToObject : public CChartObject
|
|||||||
|
|
||||||
//
|
//
|
||||||
string mToVLineName =
|
string mToVLineName =
|
||||||
mPrefix + ToString(X_TO) + "_" + name;
|
ToString(X_TO) + "_" + name;
|
||||||
result = mToVLine.Create(chart_id, mToVLineName, window, to);
|
result = mToVLine.Create(chart_id, mToVLineName, window, to);
|
||||||
if (!result)
|
if (!result)
|
||||||
{
|
{
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Set Object Name ...
|
||||||
|
ObjName(name);
|
||||||
|
|
||||||
//
|
//
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -246,7 +290,7 @@ class XCFromToObject : public CChartObject
|
|||||||
|
|
||||||
//
|
//
|
||||||
// Zone Chart Object ...
|
// Zone Chart Object ...
|
||||||
class XCZoneObject : public CChartObject
|
class XCZoneObject : public XCBaseObject
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
public:
|
public:
|
||||||
@@ -321,6 +365,11 @@ class XCZoneObject : public CChartObject
|
|||||||
!IsValid(objprefix)
|
!IsValid(objprefix)
|
||||||
? ""
|
? ""
|
||||||
: objprefix + "_";
|
: objprefix + "_";
|
||||||
|
result = Name(prefix);
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Check Params For Rectangle ...
|
// Check Params For Rectangle ...
|
||||||
@@ -393,6 +442,12 @@ class XCZoneObject : public CChartObject
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
if (result)
|
||||||
|
{
|
||||||
|
ObjName(name);
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -570,8 +625,7 @@ class XCTardeDayObject : public XCFromToObject
|
|||||||
name,
|
name,
|
||||||
window,
|
window,
|
||||||
day.from,
|
day.from,
|
||||||
day.to,
|
day.to //
|
||||||
"XTDAY" //
|
|
||||||
);
|
);
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -639,14 +693,12 @@ class XCMarketSessionObject : public XCFromToObject
|
|||||||
bool result = false;
|
bool result = false;
|
||||||
|
|
||||||
//
|
//
|
||||||
string sessionLabel = ToString(session.session);
|
|
||||||
result = Create(
|
result = Create(
|
||||||
chart_id,
|
chart_id,
|
||||||
name,
|
name,
|
||||||
window,
|
window,
|
||||||
session.from,
|
session.from,
|
||||||
session.to,
|
session.to //
|
||||||
sessionLabel //
|
|
||||||
);
|
);
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -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 //
|
_Period //
|
||||||
);
|
);
|
||||||
eaPOI.EnableDrawPOIs();
|
eaPOI.EnableDrawPOIs();
|
||||||
eaPOI.AllowDrawSwingLows(false);
|
// eaPOI.AllowDrawSwingLows(false);
|
||||||
eaPOI.AllowDrawSwingHighs(false);
|
// eaPOI.AllowDrawSwingHighs(false);
|
||||||
eaPOI.AllowDrawMomentumBars(false);
|
// eaPOI.AllowDrawBullishFVGs(false);
|
||||||
eaPOI.AllowDrawSupportZones(false);
|
// eaPOI.AllowDrawBearishFVGs(false);
|
||||||
eaPOI.AllowDrawRejectionBars(false);
|
// eaPOI.AllowDrawSupplyZones(false);
|
||||||
eaPOI.AllowDrawMarketSessions(false);
|
// eaPOI.AllowDrawDemandZones(false);
|
||||||
eaPOI.AllowDrawResistanceZones(false);
|
// eaPOI.AllowDrawMomentumBars(false);
|
||||||
|
// eaPOI.AllowDrawSupportZones(false);
|
||||||
|
// eaPOI.AllowDrawRejectionBars(false);
|
||||||
|
// eaPOI.AllowDrawMarketSessions(false);
|
||||||
|
// eaPOI.AllowDrawResistanceZones(false);
|
||||||
|
// eaPOI.AllowDrawBullishOrderBlocks(false);
|
||||||
|
// eaPOI.AllowDrawBearishOrderBlocks(false);
|
||||||
|
|
||||||
|
//
|
||||||
eaPOI.Init();
|
eaPOI.Init();
|
||||||
|
|
||||||
// //
|
// //
|
||||||
|
|||||||
@@ -3701,7 +3701,10 @@ struct XOHCL
|
|||||||
bool HasBullishFVG(
|
bool HasBullishFVG(
|
||||||
double &upper,
|
double &upper,
|
||||||
double &lower,
|
double &lower,
|
||||||
bool forceMiddleBarCheck = true //
|
datetime &start,
|
||||||
|
datetime &end,
|
||||||
|
bool forceMiddleBarCheck = true,
|
||||||
|
bool forceCheckLastBarDirection = false //
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
@@ -3711,6 +3714,10 @@ struct XOHCL
|
|||||||
upper = 0;
|
upper = 0;
|
||||||
lower = 0;
|
lower = 0;
|
||||||
|
|
||||||
|
//
|
||||||
|
end = NULL;
|
||||||
|
start = NULL;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Validate Content and Ignore 0 Bar
|
// Validate Content and Ignore 0 Bar
|
||||||
// since it is not Completed ...
|
// since it is not Completed ...
|
||||||
@@ -3722,7 +3729,10 @@ struct XOHCL
|
|||||||
|
|
||||||
//
|
//
|
||||||
// Current Bar Must be Bullish ...
|
// Current Bar Must be Bullish ...
|
||||||
result = IsBullish();
|
result =
|
||||||
|
!forceCheckLastBarDirection
|
||||||
|
? true
|
||||||
|
: IsBullish();
|
||||||
if (!result)
|
if (!result)
|
||||||
{
|
{
|
||||||
return result;
|
return result;
|
||||||
@@ -3793,8 +3803,10 @@ struct XOHCL
|
|||||||
if (result)
|
if (result)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
|
end = time;
|
||||||
upper = low;
|
upper = low;
|
||||||
lower = ppBar.high;
|
lower = ppBar.high;
|
||||||
|
start = ppBar.time;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -3806,7 +3818,10 @@ struct XOHCL
|
|||||||
bool HasBearishFVG(
|
bool HasBearishFVG(
|
||||||
double &upper,
|
double &upper,
|
||||||
double &lower,
|
double &lower,
|
||||||
bool forceMiddleBarCheck = true //
|
datetime &start,
|
||||||
|
datetime &end,
|
||||||
|
bool forceMiddleBarCheck = true,
|
||||||
|
bool forceCheckLastBarDirection = false //
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
@@ -3816,6 +3831,10 @@ struct XOHCL
|
|||||||
upper = 0;
|
upper = 0;
|
||||||
lower = 0;
|
lower = 0;
|
||||||
|
|
||||||
|
//
|
||||||
|
end = NULL;
|
||||||
|
start = NULL;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Validate Content and Ignore 0 Bar
|
// Validate Content and Ignore 0 Bar
|
||||||
// since it is not Completed ...
|
// since it is not Completed ...
|
||||||
@@ -3827,7 +3846,10 @@ struct XOHCL
|
|||||||
|
|
||||||
//
|
//
|
||||||
// Current Bar Must be Bearish ...
|
// Current Bar Must be Bearish ...
|
||||||
result = IsBearish();
|
result =
|
||||||
|
!forceCheckLastBarDirection
|
||||||
|
? true
|
||||||
|
: IsBullish();
|
||||||
if (!result)
|
if (!result)
|
||||||
{
|
{
|
||||||
return result;
|
return result;
|
||||||
@@ -3898,8 +3920,10 @@ struct XOHCL
|
|||||||
if (result)
|
if (result)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
upper = ppBar.low;
|
end = time;
|
||||||
lower = high;
|
lower = high;
|
||||||
|
upper = ppBar.low;
|
||||||
|
start = ppBar.time;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -33,6 +33,12 @@
|
|||||||
// All Available POI(s) ...
|
// All Available POI(s) ...
|
||||||
enum ENUM_XPOIS
|
enum ENUM_XPOIS
|
||||||
{
|
{
|
||||||
|
//
|
||||||
|
// Trading Day ...
|
||||||
|
X_POI_TRADING_DAY, // Trading Day ...
|
||||||
|
//
|
||||||
|
// Market Session ...
|
||||||
|
X_POI_MARKET_SESSION, // Market Session ...
|
||||||
//
|
//
|
||||||
// Momentum Bar ...
|
// Momentum Bar ...
|
||||||
X_POI_MOMENTUM_BAR, // Momentum Bar ...
|
X_POI_MOMENTUM_BAR, // Momentum Bar ...
|
||||||
@@ -45,8 +51,8 @@ enum ENUM_XPOIS
|
|||||||
X_POI_SWING_LOW, // Simple Swing Low ...
|
X_POI_SWING_LOW, // Simple Swing Low ...
|
||||||
//
|
//
|
||||||
// Support nad Resistance ...
|
// Support nad Resistance ...
|
||||||
X_POI_SUPPORT, // Support Zone ...
|
X_POI_SUPPORT_ZONE, // Support Zone ...
|
||||||
X_POI_RESISTANCE, // Resistance Zone ...
|
X_POI_RESISTANCE_ZONE, // Resistance Zone ...
|
||||||
//
|
//
|
||||||
// Supply and Demand Zones ...
|
// Supply and Demand Zones ...
|
||||||
X_POI_SUPPLY_ZONE, // Supply Zone ...
|
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;
|
return result;
|
||||||
@@ -320,7 +326,10 @@ struct XMarketSession
|
|||||||
|
|
||||||
//
|
//
|
||||||
result =
|
result =
|
||||||
ToFormatString(from) + "_" +
|
ToString(X_POI_MARKET_SESSION) + "_" +
|
||||||
|
ToString(session) + "_" +
|
||||||
|
ToFormatString(from) +
|
||||||
|
"_" +
|
||||||
ToFormatString(to) + "_";
|
ToFormatString(to) + "_";
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -483,6 +492,16 @@ string ToString(ENUM_XPOIS value)
|
|||||||
//
|
//
|
||||||
switch (value)
|
switch (value)
|
||||||
{
|
{
|
||||||
|
//
|
||||||
|
case X_POI_TRADING_DAY:
|
||||||
|
result = "XTDAY";
|
||||||
|
break;
|
||||||
|
|
||||||
|
//
|
||||||
|
case X_POI_MARKET_SESSION:
|
||||||
|
result = "XMSESS";
|
||||||
|
break;
|
||||||
|
|
||||||
//
|
//
|
||||||
case X_POI_MOMENTUM_BAR:
|
case X_POI_MOMENTUM_BAR:
|
||||||
result = "XMNTMB";
|
result = "XMNTMB";
|
||||||
@@ -504,12 +523,12 @@ string ToString(ENUM_XPOIS value)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
//
|
//
|
||||||
case X_POI_SUPPORT:
|
case X_POI_SUPPORT_ZONE:
|
||||||
result = "XSUP";
|
result = "XSUP";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
//
|
//
|
||||||
case X_POI_RESISTANCE:
|
case X_POI_RESISTANCE_ZONE:
|
||||||
result = "XRES";
|
result = "XRES";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -573,6 +592,11 @@ string ToString(ENUM_XSESSION value)
|
|||||||
result = "Tokyo";
|
result = "Tokyo";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
//
|
||||||
|
case X_FRANKFORT:
|
||||||
|
result = "FrankGurt";
|
||||||
|
break;
|
||||||
|
|
||||||
//
|
//
|
||||||
case X_LONDON:
|
case X_LONDON:
|
||||||
result = "London";
|
result = "London";
|
||||||
|
|||||||
Reference in New Issue
Block a user