Complete Ticks Zones ...
This commit is contained in:
@@ -28,6 +28,7 @@
|
||||
#include <ChartObjects/ChartObjectsArrows.mqh>
|
||||
#include <ChartObjects/ChartObjectsLines.mqh>
|
||||
#include <ChartObjects/ChartObjectsShapes.mqh>
|
||||
#include <ChartObjects\ChartObjectsTxtControls.mqh>
|
||||
|
||||
//
|
||||
// Definitions ...
|
||||
@@ -60,6 +61,8 @@ enum ENUM_XCHARTOBJECTS
|
||||
X_BEARISH_ORDERBLOCK_OBJ = 9873,
|
||||
X_BULLISH_FVG_OBJ = 9874,
|
||||
X_BEARISH_FVG_OBJ = 9875,
|
||||
X_TICK_ZONE_OBJ = 9876,
|
||||
X_TICKS_ZONE_OBJ = 9877,
|
||||
};
|
||||
|
||||
enum ENUM_X_CHART_IDS
|
||||
@@ -1532,4 +1535,327 @@ class XCBearishFairValueGapObject : public XCZoneObject
|
||||
}
|
||||
};
|
||||
|
||||
//
|
||||
// Zone Ticks ...
|
||||
|
||||
class XCTickZoneObject : public XCBaseObject
|
||||
{
|
||||
//
|
||||
public:
|
||||
//
|
||||
|
||||
/**
|
||||
* Creator ...
|
||||
*
|
||||
* @param chart_id: Long, Specified Chart ID ...
|
||||
* @param window: Integer, Specified Chart Window ID ...
|
||||
* @param name: String, Specify Chart Object Identifier ...
|
||||
* @param from: Datetime ...
|
||||
* @param to: Datetime ...
|
||||
* @param zone: XCTickZone instance ...
|
||||
* @param prefix: String ...
|
||||
*
|
||||
* @return ( bool )
|
||||
*/
|
||||
bool Create(
|
||||
long chart_id,
|
||||
int window,
|
||||
string name,
|
||||
datetime from,
|
||||
datetime to,
|
||||
XCTickZone *zone,
|
||||
string prefix = NULL //
|
||||
)
|
||||
{
|
||||
//
|
||||
bool result = false;
|
||||
|
||||
//
|
||||
result =
|
||||
IsValid(name) &&
|
||||
zone.IsValid() &&
|
||||
IsValid(to) &&
|
||||
IsValid(from);
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
if (IsValid(prefix))
|
||||
{
|
||||
name = prefix + "_" + name;
|
||||
}
|
||||
|
||||
//
|
||||
string rectName = "TKZ_" + name;
|
||||
result = mRect.Create(
|
||||
chart_id,
|
||||
rectName,
|
||||
window,
|
||||
from,
|
||||
zone.high,
|
||||
to,
|
||||
zone.low //
|
||||
);
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
string lblName = "LBL_" + name;
|
||||
result = mLabel.Create(
|
||||
chart_id,
|
||||
lblName,
|
||||
window,
|
||||
from,
|
||||
zone.high //
|
||||
);
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
mLabel.Description(ToString(zone.percent) + "%");
|
||||
|
||||
//
|
||||
ObjName(name);
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
// Virtual ...
|
||||
|
||||
/**
|
||||
* Retrieve Object Type ...
|
||||
*
|
||||
* @return ( ENUM_XCHARTOBJECTS )
|
||||
*/
|
||||
virtual ENUM_XCHARTOBJECTS Type()
|
||||
{
|
||||
return X_TICK_ZONE_OBJ;
|
||||
}
|
||||
|
||||
//
|
||||
// Getter(s) / Setter(s) ...
|
||||
|
||||
/**
|
||||
* Set Zone Width ...
|
||||
*
|
||||
* @param value: Integer ...
|
||||
*/
|
||||
void ZoneWidth(int value)
|
||||
{
|
||||
//
|
||||
if (value < 1)
|
||||
{
|
||||
value = 1;
|
||||
}
|
||||
|
||||
//
|
||||
mRect.Width(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Zone Color ...
|
||||
*
|
||||
* @param value: Color ...
|
||||
*/
|
||||
void ZoneColor(color value)
|
||||
{
|
||||
mRect.Color(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Zone Style ...
|
||||
*
|
||||
* @param value: ENUM_LINE_STYLE member ...
|
||||
*/
|
||||
void ZoneStyle(ENUM_LINE_STYLE value)
|
||||
{
|
||||
mRect.Style(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Zone Fill ...
|
||||
*
|
||||
* @param value: Boolean ...
|
||||
*/
|
||||
void ZoneFill(bool value)
|
||||
{
|
||||
mRect.Fill(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Label Color ...
|
||||
*
|
||||
* @param value: Color ...
|
||||
*/
|
||||
void LabelColor(color value)
|
||||
{
|
||||
mLabel.Color(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Label Size ...
|
||||
*
|
||||
* @param value: Integer ...
|
||||
*/
|
||||
void LabelSize(int value)
|
||||
{
|
||||
mLabel.FontSize(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Label Font ...
|
||||
*
|
||||
* @param value: String ...
|
||||
*/
|
||||
void LabelFont(string value)
|
||||
{
|
||||
mLabel.Font(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Label Angle ...
|
||||
*
|
||||
* @param value: double ...
|
||||
*/
|
||||
void LabelAngle(double value)
|
||||
{
|
||||
mLabel.Angle(value);
|
||||
}
|
||||
|
||||
//
|
||||
private:
|
||||
//
|
||||
// Props ...
|
||||
CChartObjectRectangle mRect;
|
||||
CChartObjectLabel mLabel;
|
||||
|
||||
//
|
||||
};
|
||||
class XCTicksZoneObject : public XCBaseObject
|
||||
{
|
||||
//
|
||||
public:
|
||||
//
|
||||
|
||||
//
|
||||
void ~XCTicksZoneObject()
|
||||
{
|
||||
mZones.Clear();
|
||||
}
|
||||
|
||||
/**
|
||||
* Creator ...
|
||||
*
|
||||
* @param chart_id: Long, Specified Chart ID ...
|
||||
* @param window: Integer, Specified Chart Window ID ...
|
||||
* @param zone: XCTicksZone instance ...
|
||||
* @param prefix: String ...
|
||||
*
|
||||
* @return ( bool )
|
||||
*/
|
||||
bool Create(
|
||||
long chart_id,
|
||||
int window,
|
||||
XCTicksZone &zone,
|
||||
string prefix = NULL //
|
||||
)
|
||||
{
|
||||
//
|
||||
bool result = false;
|
||||
|
||||
//
|
||||
result = zone.IsValid();
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
string name = zone.GetTag();
|
||||
int levels = zone.Levels();
|
||||
result = levels > 0;
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
for (int i = 0; i < levels; i++)
|
||||
{
|
||||
//
|
||||
XCTickZone *iZone = zone.GetZone(i);
|
||||
XCTickZoneObject *iObj;
|
||||
iObj = new XCTickZoneObject();
|
||||
result = iObj.Create(
|
||||
chart_id,
|
||||
window,
|
||||
ToString(i) + "_" + name,
|
||||
zone.From(),
|
||||
zone.To(),
|
||||
iZone,
|
||||
prefix //
|
||||
);
|
||||
if (!result)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
//
|
||||
mZones.Add(iObj);
|
||||
}
|
||||
|
||||
//
|
||||
if (result)
|
||||
{
|
||||
ObjName(name);
|
||||
}
|
||||
else
|
||||
{
|
||||
mZones.Clear();
|
||||
}
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
// Virtual ...
|
||||
|
||||
/**
|
||||
* Retrieve Object Type ...
|
||||
*
|
||||
* @return ( ENUM_XCHARTOBJECTS )
|
||||
*/
|
||||
virtual ENUM_XCHARTOBJECTS Type()
|
||||
{
|
||||
return X_TICKS_ZONE_OBJ;
|
||||
}
|
||||
|
||||
//
|
||||
// Getter(s) / Setter(s) ...
|
||||
|
||||
//
|
||||
// Actions ...
|
||||
|
||||
void Destroy() {
|
||||
mZones.Clear();
|
||||
}
|
||||
|
||||
//
|
||||
private:
|
||||
//
|
||||
// Props ...
|
||||
CArrayObj mZones;
|
||||
|
||||
//
|
||||
};
|
||||
|
||||
//
|
||||
Reference in New Issue
Block a user