Object Properties
Graphical objects can have various properties depending on the object type. All objects used in technical analysis are bound to the time and price coordinates: trendline, channels, Fibonacci tools, etc. But there is a number of auxiliary objects intended to improve the user interface that are bound to the always visible part of a chart (main chart windows or indicator subwindows):
The following designations are used in the table:
- X/Y - coordinates of anchor points specified in pixels relative to a chart corner;
- Width/Height - objects have width and height. For "read only", the width and height values are calculated only once the object is rendered on chart;
- Date/Price - anchor point coordinates are specified using the date and price values;
- OBJPROP_CORNER - defines the chart corner relative to which the anchor point coordinates are specified. Can be one of the 4 values of the ENUM_BASE_CORNER enumeration;
- OBJPROP_ANCHOR - defines the anchor point in object itself and can be one of the 9 values of the ENUM_ANCHOR_POINT enumeration. Coordinates in pixels are specified from this very point to selected chart corner;
- OBJPROP_ANGLE - defines the object rotation angle counterclockwise.
Object value index used with ObjectGet() and ObjectSet() functions. It can be any of the following values:
|
|
|
|
OBJPROP_TIME1
|
0
|
datetime
|
Datetime value to set/get first coordinate time part
|
OBJPROP_PRICE1
|
1
|
double
|
Double value to set/get first coordinate price part
|
OBJPROP_TIME2
|
2
|
datetime
|
Datetime value to set/get second coordinate time part
|
OBJPROP_PRICE2
|
3
|
double
|
Double value to set/get second coordinate price part
|
OBJPROP_TIME3
|
4
|
datetime
|
Datetime value to set/get third coordinate time part
|
OBJPROP_PRICE3
|
5
|
double
|
Double value to set/get third coordinate price part
|
OBJPROP_COLOR
|
6
|
color
|
Color value to set/get object color
|
OBJPROP_STYLE
|
7
|
int
|
Value is one of STYLE_SOLID, STYLE_DASH, STYLE_DOT, STYLE_DASHDOT, STYLE_DASHDOTDOT constants to set/get object line style
|
OBJPROP_WIDTH
|
8
|
int
|
Integer value to set/get object line width. Can be from 1 to 5
|
OBJPROP_BACK
|
9
|
bool
|
Boolean value to set/get background drawing flag for object
|
OBJPROP_RAY
|
10
|
bool
|
Boolean value to set/get ray flag of object.
|
OBJPROP_ELLIPSE
|
11
|
bool
|
Boolean value to set/get ellipse flag for fibo arcs
|
OBJPROP_SCALE
|
12
|
double
|
Double value to set/get scale object property
|
OBJPROP_ANGLE
|
13
|
double
|
Double value to set/get angle object property in degrees
|
OBJPROP_ARROWCODE
|
14
|
uchar
|
Integer value or arrow enumeration to set/get arrow code object property
|
OBJPROP_TIMEFRAMES
|
15
|
int
|
Value can be one or combination (bitwise addition) of object visibility constants to set/get timeframe object property
|
OBJPROP_DEVIATION
|
16
|
double
|
Double value to set/get deviation property for Standard deviation objects
|
OBJPROP_FONTSIZE
|
100
|
int
|
Integer value to set/get font size for text objects
|
OBJPROP_CORNER
|
101
|
int
|
Integer value to set/get anchor corner property for label objects. Must be from 0-3.
|
OBJPROP_XDISTANCE
|
102
|
int
|
Integer value to set/get anchor X distance object property in pixels (see note)
|
OBJPROP_YDISTANCE
|
103
|
int
|
Integer value is to set/get anchor Y distance object property in pixels (see note)
|
OBJPROP_FIBOLEVELS
|
200
|
int
|
Integer value to set/get Fibonacci object level count. Can be from 0 to 32
|
OBJPROP_LEVELCOLOR
|
201
|
color
|
Color value to set/get object level line color
|
OBJPROP_LEVELSTYLE
|
202
|
int
|
Value is one of STYLE_SOLID, STYLE_DASH, STYLE_DOT, STYLE_DASHDOT, STYLE_DASHDOTDOT constants to set/get object level line style
|
OBJPROP_LEVELWIDTH
|
203
|
int
|
Integer value to set/get object level line width. Can be from 1 to 5
|
OBJPROP_FIRSTLEVEL+n
|
210+n
|
int
|
Integer value to set/get the value of Fibonacci object level with index n. Index n can be from 0 (number of levels -1), but not larger than 31
|
Every graphical object in a price chart has a certain set of properties. Values of object properties are set up and received by corresponding functions for working with graphical objects. For each object type there is its own set of properties. Here all possible values from the ENUM_OBJECT_PROPERTY enumeration family are listed. Some properties require clarification, such as the level number for the Fibonacci extension object. In such cases it is necessary to specify the value of the modifier parameter in the functions of ObjectSet...() and ObjectGet...().
For functions ObjectSetInteger() and ObjectGetInteger()
ENUM_OBJECT_PROPERTY_INTEGER
|
|
|
OBJPROP_COLOR
|
Color
|
color
|
OBJPROP_STYLE
|
Style
|
ENUM_LINE_STYLE
|
OBJPROP_WIDTH
|
Line thickness
|
int
|
OBJPROP_BACK
|
Object in the background
|
bool
|
OBJPROP_ZORDER
|
Priority of a graphical object for receiving events of clicking on a chart (CHARTEVENT_CLICK). The default zero value is set when creating an object; the priority can be increased if necessary. When objects are placed one atop another, only one of them with the highest priority will receive the CHARTEVENT_CLICK event.
|
long
|
OBJPROP_HIDDEN
|
Prohibit showing of the name of a graphical object in the list of objects from the terminal menu "Charts" - "Objects" - "List of objects". The true value allows to hide an object from the list. By default, true is set to the objects that display calendar events, trading history and to the objects created from MQL4 programs. To see such graphical objects and access their properties, click on the "All" button in the "List of objects" window.
|
bool
|
OBJPROP_SELECTED
|
Object is selected
|
bool
|
OBJPROP_READONLY
|
Ability to edit text in the Edit object
|
bool
|
OBJPROP_TYPE
|
Object type
|
ENUM_OBJECT r/o
|
OBJPROP_TIME
|
Time coordinate
|
datetime modifier=number of anchor point
|
OBJPROP_SELECTABLE
|
Object availability
|
bool
|
OBJPROP_CREATETIME
|
Time of object creation
|
datetime r/o
|
OBJPROP_LEVELS
|
Number of levels
|
int
|
OBJPROP_LEVELCOLOR
|
Color of the line-level
|
color modifier=level number
|
OBJPROP_LEVELSTYLE
|
Style of the line-level
|
ENUM_LINE_STYLE modifier=level number
|
OBJPROP_LEVELWIDTH
|
Thickness of the line-level
|
int modifier=level number
|
OBJPROP_ALIGN
|
Horizontal text alignment in the "Edit" object (OBJ_EDIT)
|
ENUM_ALIGN_MODE
|
OBJPROP_FONTSIZE
|
Font size
|
int
|
OBJPROP_RAY_RIGHT
|
Ray goes to the right
|
bool
|
OBJPROP_ELLIPSE
|
Showing the full ellipse of the Fibonacci Arc object (OBJ_FIBOARC)
|
bool
|
OBJPROP_ARROWCODE
|
Arrow code for the Arrow object
|
uchar
|
OBJPROP_TIMEFRAMES
|
Visibility of an object at timeframes
|
set of flags flags
|
OBJPROP_ANCHOR
|
Location of the anchor point of a graphical object
|
ENUM_ARROW_ANCHOR (for OBJ_ARROW),
ENUM_ANCHOR_POINT (for OBJ_LABEL, OBJ_BITMAP_LABEL and OBJ_TEXT)
|
OBJPROP_XDISTANCE
|
The distance in pixels along the X axis from the binding corner (see note)
|
int
|
OBJPROP_YDISTANCE
|
The distance in pixels along the Y axis from the binding corner (see note)
|
int
|
OBJPROP_DRAWLINES
|
Displaying lines for marking the Elliott Wave
|
bool
|
OBJPROP_STATE
|
Button state (pressed / depressed)
|
bool
|
OBJPROP_XSIZE
|
The object's width along the X axis in pixels. Specified for OBJ_LABEL (read only), OBJ_BUTTON, OBJ_BITMAP, OBJ_BITMAP_LABEL, OBJ_EDIT, OBJ_RECTANGLE_LABEL objects.
|
int
|
OBJPROP_YSIZE
|
The object's height along the Y axis in pixels. Specified for OBJ_LABEL (read only), OBJ_BUTTON, OBJ_BITMAP, OBJ_BITMAP_LABEL, OBJ_EDIT, OBJ_RECTANGLE_LABEL objects.
|
int
|
OBJPROP_XOFFSET
|
The X coordinate of the upper left corner of the rectangular visible area in the graphical objects "Bitmap Label" and "Bitmap" (OBJ_BITMAP_LABEL and OBJ_BITMAP). The value is set in pixels relative to the upper left corner of the original image.
|
int
|
OBJPROP_YOFFSET
|
The Y coordinate of the upper left corner of the rectangular visible area in the graphical objects "Bitmap Label" and "Bitmap" (OBJ_BITMAP_LABEL and OBJ_BITMAP). The value is set in pixels relative to the upper left corner of the original image.
|
int
|
OBJPROP_BGCOLOR
|
The background color for OBJ_EDIT, OBJ_BUTTON, OBJ_RECTANGLE_LABEL
|
color
|
OBJPROP_CORNER
|
The corner of the chart to link a graphical object
|
ENUM_BASE_CORNER
|
OBJPROP_BORDER_TYPE
|
Border type for the "Rectangle label" object
|
ENUM_BORDER_TYPE
|
OBJPROP_BORDER_COLOR
|
Border color for the OBJ_EDIT and OBJ_BUTTON objects
|
color
|
For objects OBJ_BITMAP_LABEL and OBJ_BITMAP, a special mode of image display can be set programmatically. In this mode, only part of an original image (at which a rectangular visible area is applied) is displayed, while the rest of the image becomes invisible. The size of this area should be set using the properties OBJPROP_XSIZE and OBJPROP_YSIZE. The visible area can be "moved" only within the original image using the properties OBJPROP_XOFFSET and OBJPROP_YOFFSET.
For the fixed-sized objects: OBJ_BUTTON, OBJ_RECTANGLE_LABEL and OBJ_EDIT, properties OBJPROP_XDISTANCE and OBJPROP_YDISTANCE set the position of the top left point of the object relative to the chart corner (OBJPROP_CORNER), from which the X and Y coordinates will be counted in pixels.
For functions ObjectSetDouble() and ObjectGetDouble()
ENUM_OBJECT_PROPERTY_DOUBLE
|
|
|
OBJPROP_PRICE
|
Price coordinate
|
double modifier=number of anchor point
|
OBJPROP_LEVELVALUE
|
Level value
|
double modifier=level number
|
OBJPROP_SCALE
|
Scale (properties of Gann objects, Fibonacci Arcs and Ellipse)
|
double
|
OBJPROP_ANGLE
|
Angle. For the objects with no angle specified, created from a program, the value is equal to EMPTY_VALUE
|
double
|
OBJPROP_DEVIATION
|
Deviation for the Standard Deviation Channel
|
double
|
For functions ObjectSetString() and ObjectGetString()
ENUM_OBJECT_PROPERTY_STRING
|
|
|
OBJPROP_NAME
|
Object name
|
string
|
OBJPROP_TEXT
|
Description of the object (the text contained in the object)
|
string
|
OBJPROP_TOOLTIP
|
The text of a tooltip. If the property is not set, then the tooltip generated automatically by the terminal is shown. A tooltip can be disabled by setting the "\n" (line feed) value to it
|
string
|
OBJPROP_LEVELTEXT
|
Level description
|
string modifier=level number
|
OBJPROP_FONT
|
Font
|
string
|
OBJPROP_BMPFILE
|
The name of BMP-file for Bitmap Label. See also Resources
|
string modifier: 0-state ON, 1-state OFF
|
OBJPROP_SYMBOL
|
Symbol for the Chart object
|
string
|
For the OBJ_RECTANGLE_LABEL object ("Rectangle label") one of the three design modes can be set, to which the following values of ENUM_BORDER_TYPE correspond.
ENUM_BORDER_TYPE
|
|
BORDER_FLAT
|
Flat form
|
BORDER_RAISED
|
Prominent form
|
BORDER_SUNKEN
|
Concave form
|
For the OBJ_EDIT object ("Edit") and for the ChartScreenShot()function, you can specify the horizontal alignment type using the values of the ENUM_ALIGN_MODE enumeration.
ENUM_ALIGN_MODE
|
|
ALIGN_LEFT
|
Left alignment
|
ALIGN_CENTER
|
Centered (only for the Edit object)
|
ALIGN_RIGHT
|
Right alignment
|
Example:
#define UP "\x0431"
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
//---
string label_name="my_OBJ_LABEL_object";
if(ObjectFind(0,label_name)<0)
{
Print("Object ",label_name," not found. Error code = ",GetLastError());
//--- create Label object
ObjectCreate(0,label_name,OBJ_LABEL,0,0,0);
//--- set X coordinate
ObjectSetInteger(0,label_name,OBJPROP_XDISTANCE,200);
//--- set Y coordinate
ObjectSetInteger(0,label_name,OBJPROP_YDISTANCE,300);
//--- define text color
ObjectSetInteger(0,label_name,OBJPROP_COLOR,clrWhite);
//--- define text for object Label
ObjectSetString(0,label_name,OBJPROP_TEXT,UP);
//--- define font
ObjectSetString(0,label_name,OBJPROP_FONT,"Wingdings");
//--- define font size
ObjectSetInteger(0,label_name,OBJPROP_FONTSIZE,10);
//--- 45 degrees rotation clockwise
ObjectSetDouble(0,label_name,OBJPROP_ANGLE,-45);
//--- disable for mouse selecting
ObjectSetInteger(0,label_name,OBJPROP_SELECTABLE,false);
//--- draw it on the chart
ChartRedraw(0);
}
} |
|