DoEasy 函数库中的图形(第八十三部分):抽象标准图形对象类·进阶篇
(2/3)·手工创建的标准图形对象如何被函数库接管?抽象类先收下所有对象共有的属性与方法
很多交易者把 MT5 里手画的箭头、趋势线当成一次性标注,库里没法统一改属性就懒得管。其实只要给每类标准对象配一个绑定类,面板菜单就能替你批量调属性,省掉重复右键。
「图形对象归属与属性枚举的底层定义」
在自建图形库时,先要把对象的「身份」和「归属」用枚举钉死。ENUM_GRAPH_OBJ_BELONG 只给两个值:GRAPH_OBJ_BELONG_PROGRAM 表示对象由程序创建并受控,GRAPH_OBJ_BELONG_NO_PROGRAM 则是图表上那些不属于当前 EA/脚本的散落对象。 对象类型再细分为 ENUM_GRAPH_ELEMENT_TYPE:从 GRAPH_ELEMENT_TYPE_STANDART 标准对象,到 ELEMENT、SHADOW_OBJ、FORM、WINDOW 五类。实际写面板时,WINDOW 和 FORM 最常用来做可拖拽容器,SHADOW_OBJ 多用于鼠标悬停的临时高亮层。 整数属性枚举 ENUM_GRAPH_OBJ_PROP_INTEGER 从 0 开始排:GRAPH_OBJ_PROP_ID=0 是对象唯一 ID,紧接着 TYPE、ELEMENT_TYPE、BELONG、CHART_ID、WND_NUM、NUM。CHART_ID 与 WND_NUM 组合能定位对象挂在哪个图表、哪个子窗口,NUM 则是列表内序号。 开 MT5 把这段枚举贴进头文件,编译后用一个 Print() 轮询 GRAPH_OBJ_PROP_BELONG 的两个常量值,能确认库里「程序内/程序外」对象的过滤逻辑是否按预期分流。外汇与贵金属图表对象受报价跳动影响,高频重绘时归属判断失误可能导致对象泄漏,属高风险操作。
enum ENUM_GRAPH_OBJ_BELONG { GRAPH_OBJ_BELONG_PROGRAM, class=class="str">"cmt">// Graphical object belongs to a program GRAPH_OBJ_BELONG_NO_PROGRAM, class=class="str">"cmt">// Graphical object does not belong to a program }; enum ENUM_GRAPH_ELEMENT_TYPE { GRAPH_ELEMENT_TYPE_STANDART, class=class="str">"cmt">// Standard graphical object GRAPH_ELEMENT_TYPE_ELEMENT, class=class="str">"cmt">// Element GRAPH_ELEMENT_TYPE_SHADOW_OBJ, class=class="str">"cmt">// Shadow object GRAPH_ELEMENT_TYPE_FORM, class=class="str">"cmt">// Form GRAPH_ELEMENT_TYPE_WINDOW, class=class="str">"cmt">// Window }; enum ENUM_GRAPH_OBJ_PROP_INTEGER { class=class="str">"cmt">//--- Additional properties GRAPH_OBJ_PROP_ID = class="num">0, class=class="str">"cmt">// Object ID GRAPH_OBJ_PROP_TYPE, class=class="str">"cmt">// Graphical object type(ENUM_OBJECT) GRAPH_OBJ_PROP_ELEMENT_TYPE, class=class="str">"cmt">// Graphical element type(ENUM_GRAPH_ELEMENT_TYPE) GRAPH_OBJ_PROP_BELONG, class=class="str">"cmt">// Graphical object affiliation GRAPH_OBJ_PROP_CHART_ID, class=class="str">"cmt">// Chart ID GRAPH_OBJ_PROP_WND_NUM, class=class="str">"cmt">// Chart subwindow index GRAPH_OBJ_PROP_NUM, class=class="str">"cmt">// Object index in the list };
◍ 图形对象属性的枚举分层
在 MT5 里给图表挂对象,先得搞清楚属性枚举的归类逻辑。一类是所有图形对象通用的底层属性,另一类是按对象类型才生效的专属属性,混用会导致赋值无效或运行时报错。 通用属性里,GRAPH_OBJ_PROP_CREATETIME 记录对象创建时间,GRAPH_OBJ_PROP_TIMEFRAMES 控制多周期可见性,GRAPH_OBJ_PROP_BACK 决定是否为背景层对象,GRAPH_OBJ_PROP_ZORDER 影响鼠标点击图表的事件优先级,GRAPH_OBJ_PROP_HIDDEN 可隐藏对象在终端列表中的名称。 专属属性则包括坐标时间 GRAPH_OBJ_PROP_TIME、颜色 GRAPH_OBJ_PROP_COLOR、线型 GRAPH_OBJ_PROP_STYLE 与宽度 GRAPH_OBJ_PROP_WIDTH,以及填充 GRAPH_OBJ_PROP_FILL。文本类对象还有 GRAPH_OBJ_PROP_READONLY、GRAPH_OBJ_PROP_ALIGN、GRAPH_OBJ_PROP_FONTSIZE 等可控项。 趋势线相关的射线开关值得单独记:GRAPH_OBJ_PROP_RAY_LEFT 向左延伸,GRAPH_OBJ_PROP_RAY_RIGHT 向右延伸,GRAPH_OBJ_PROP_RAY 则让竖线穿透图表所有子窗口。外汇与贵金属图表对象受报价跳空影响,射线类对象可能在大跳空后视觉错位,实操前建议在 MT5 用 EURUSD 的 M1 数据手动建一个对象验证属性响应。
class=class="str">"cmt">//--- Common properties of all graphical objects GRAPH_OBJ_PROP_CREATETIME, class=class="str">"cmt">// Object creation time GRAPH_OBJ_PROP_TIMEFRAMES, class=class="str">"cmt">// Object visibility on timeframes GRAPH_OBJ_PROP_BACK, class=class="str">"cmt">// Background object GRAPH_OBJ_PROP_ZORDER, class=class="str">"cmt">// Priority of a graphical object for receiving the event of clicking on a chart GRAPH_OBJ_PROP_HIDDEN, class=class="str">"cmt">// Disable displaying the name of a graphical object in the terminal object list GRAPH_OBJ_PROP_SELECTED, class=class="str">"cmt">// Object selection GRAPH_OBJ_PROP_SELECTABLE, class=class="str">"cmt">// Object availability class=class="str">"cmt">//--- Properties belonging to different graphical objects GRAPH_OBJ_PROP_TIME, class=class="str">"cmt">// Time coordinate GRAPH_OBJ_PROP_COLOR, class=class="str">"cmt">// Color GRAPH_OBJ_PROP_STYLE, class=class="str">"cmt">// Style GRAPH_OBJ_PROP_WIDTH, class=class="str">"cmt">// Line width GRAPH_OBJ_PROP_FILL, class=class="str">"cmt">// Object class="type">color filling GRAPH_OBJ_PROP_READONLY, class=class="str">"cmt">// Ability to edit text in the Edit object GRAPH_OBJ_PROP_LEVELS, class=class="str">"cmt">// Number of levels GRAPH_OBJ_PROP_LEVELCOLOR, class=class="str">"cmt">// Level line class="type">color GRAPH_OBJ_PROP_LEVELSTYLE, class=class="str">"cmt">// Level line style GRAPH_OBJ_PROP_LEVELWIDTH, class=class="str">"cmt">// Level line width GRAPH_OBJ_PROP_ALIGN, class=class="str">"cmt">// Horizontal text alignment in the Edit object(OBJ_EDIT) GRAPH_OBJ_PROP_FONTSIZE, class=class="str">"cmt">// Font size GRAPH_OBJ_PROP_RAY_LEFT, class=class="str">"cmt">// Ray goes to the left GRAPH_OBJ_PROP_RAY_RIGHT, class=class="str">"cmt">// Ray goes to the right GRAPH_OBJ_PROP_RAY, class=class="str">"cmt">// Vertical line goes through all windows of a chart
图形对象整数属性的尾部枚举与计数
上面这段枚举收尾,补齐了 MT5 图形对象整数属性里偏「界面与内嵌图表」的一组成员。 GRAPH_OBJ_PROP_ELLIPSE 控制斐波那契弧是否画完整椭圆;GRAPH_OBJ_PROP_ARROWCODE 决定 Arrow 对象的箭头样式代码;GRAPH_OBJ_PROP_ANCHOR 是对象绑定点的对齐位置。 GRAPH_OBJ_PROP_XDISTANCE / YDISTANCE 用像素定义对象距基准角的偏移;GRAPH_OBJ_PROP_DIRECTION 管甘氏对象的趋势方向;GRAPH_OBJ_PROP_DEGREE 和 DRAWLINES 则对应艾略特波浪标注的层级与连线显示。 再往下是 OBJ_CHART 内嵌图表相关:CHART_OBJ_PERIOD 设周期,DATE_SCALE / PRICE_SCALE / CHART_SCALE 控制时间轴、价格轴与整体缩放是否显示及比例。 XSIZE / YSIZE 以像素定宽高,XOFFSET / YOFFSET 是可见区域左上角坐标;BGCOLOR、BORDER_TYPE、BORDER_COLOR 管 Edit / Button / Label 类控件的背景与边框。 枚举闭括号后紧跟 #define GRAPH_OBJ_PROP_INTEGER_TOTAL (51),说明整套整数属性共 51 个。开 MT5 在 <stdlib> 或自定义头文件里搜这个宏,能直接核对自己平台版本是否一致,若数目不符可能要重编译依赖库。
GRAPH_OBJ_PROP_ELLIPSE, class=class="str">"cmt">// Display the full ellipse of the Fibonacci Arc object GRAPH_OBJ_PROP_ARROWCODE, class=class="str">"cmt">// Arrow code for the "Arrow" object GRAPH_OBJ_PROP_ANCHOR, class=class="str">"cmt">// Position of the binding point of the graphical object GRAPH_OBJ_PROP_XDISTANCE, class=class="str">"cmt">// Distance from the base corner along the X axis in pixels GRAPH_OBJ_PROP_YDISTANCE, class=class="str">"cmt">// Distance from the base corner along the Y axis in pixels GRAPH_OBJ_PROP_DIRECTION, class=class="str">"cmt">// Gann object trend GRAPH_OBJ_PROP_DEGREE, class=class="str">"cmt">// Elliott wave marking level GRAPH_OBJ_PROP_DRAWLINES, class=class="str">"cmt">// Display lines for Elliott wave marking GRAPH_OBJ_PROP_STATE, class=class="str">"cmt">// Button state(pressed/released) GRAPH_OBJ_PROP_OBJ_CHART_ID, class=class="str">"cmt">// Chart object ID(OBJ_CHART). GRAPH_OBJ_PROP_CHART_OBJ_PERIOD, class=class="str">"cmt">// Chart object period GRAPH_OBJ_PROP_CHART_OBJ_DATE_SCALE, class=class="str">"cmt">// Time scale display flag for the Chart object GRAPH_OBJ_PROP_CHART_OBJ_PRICE_SCALE, class=class="str">"cmt">// Price scale display flag for the Chart object GRAPH_OBJ_PROP_CHART_OBJ_CHART_SCALE, class=class="str">"cmt">// Chart object scale GRAPH_OBJ_PROP_XSIZE, class=class="str">"cmt">// Object width along the X axis in pixels. GRAPH_OBJ_PROP_YSIZE, class=class="str">"cmt">// Object height along the Y axis in pixels. GRAPH_OBJ_PROP_XOFFSET, class=class="str">"cmt">// X coordinate of the upper-left corner of the visibility area. GRAPH_OBJ_PROP_YOFFSET, class=class="str">"cmt">// Y coordinate of the upper-left corner of the visibility area. GRAPH_OBJ_PROP_BGCOLOR, class=class="str">"cmt">// Background class="type">color for OBJ_EDIT, OBJ_BUTTON, OBJ_RECTANGLE_LABEL GRAPH_OBJ_PROP_CORNER, class=class="str">"cmt">// Chart corner for binding a graphical object GRAPH_OBJ_PROP_BORDER_TYPE, class=class="str">"cmt">// Border type for "Rectangle border" GRAPH_OBJ_PROP_BORDER_COLOR, class=class="str">"cmt">// Border class="type">color for OBJ_EDIT and OBJ_BUTTON }; class="macro">#define GRAPH_OBJ_PROP_INTEGER_TOTAL(class="num">51) class=class="str">"cmt">// Total number of integer properties
「图形对象属性的枚举拆分与排序偏移」
在 MT5 里给标准图形对象做批量排序前,得先理清它三类属性的底层编号。整数属性、实数属性、字符串属性各自成枚举,且后两类靠前面类型的 TOTAL 常量做下标偏移,不是从 0 重排。 实数属性枚举 ENUM_GRAPH_OBJ_PROP_DOUBLE 从 GRAPH_OBJ_PROP_INTEGER_TOTAL 接着数,定义了 5 个:价格坐标、水平值、缩放、角度、标准差通道偏离,宏 GRAPH_OBJ_PROP_DOUBLE_TOTAL 写死为 5,SKIP 为 0 表示没有跳过不参与排序的项。 字符串属性枚举 ENUM_GRAPH_OBJ_PROP_STRING 起点是 INT_TOTAL+DBL_TOTAL,共 7 个:对象名、文本、提示框、水平描述、字体、位图文件名、Chart 对象品种。宏 GRAPH_OBJ_PROP_STRING_TOTAL 等于 7,这是后续按名称或品种筛对象时的索引上限。 排序模式的下界用两个宏算出:FIRST_GRAPH_OBJ_DBL_PROP 等于整数总数减跳过数,FIRST_GRAPH_OBJ_STR_PROP 再叠加实数总数减跳过数。你开 MT5 的 MetaEditor 把这套枚举贴进 EA,就能直接拿 ObjectGetInteger/ObjectGetString 按索引遍历,不用硬背属性 ID。外汇与贵金属图表对象受报价跳空影响,遍历结果可能漏掉非活跃时段手绘线,属正常概率现象。
class="macro">#define GRAPH_OBJ_PROP_INTEGER_SKIP(class="num">0) class=class="str">"cmt">// Number of integer properties not used in sorting class=class="str">"cmt">//+------------------------------------------------------------------+ class=class="str">"cmt">//| Real properties of a standard graphical object | class=class="str">"cmt">//+------------------------------------------------------------------+ enum ENUM_GRAPH_OBJ_PROP_DOUBLE { GRAPH_OBJ_PROP_PRICE = GRAPH_OBJ_PROP_INTEGER_TOTAL,class=class="str">"cmt">// Price coordinate GRAPH_OBJ_PROP_LEVELVALUE, class=class="str">"cmt">// Level value GRAPH_OBJ_PROP_SCALE, class=class="str">"cmt">// Scale GRAPH_OBJ_PROP_ANGLE, class=class="str">"cmt">// Angle GRAPH_OBJ_PROP_DEVIATION, class=class="str">"cmt">// Deviation of the standard deviation channel }; class="macro">#define GRAPH_OBJ_PROP_DOUBLE_TOTAL(class="num">5) class=class="str">"cmt">// Total number of real properties class="macro">#define GRAPH_OBJ_PROP_DOUBLE_SKIP(class="num">0) class=class="str">"cmt">// Number of real properties not used in sorting class=class="str">"cmt">//+------------------------------------------------------------------+ class=class="str">"cmt">//| String properties of a standard graphical object | class=class="str">"cmt">//+------------------------------------------------------------------+ enum ENUM_GRAPH_OBJ_PROP_STRING { GRAPH_OBJ_PROP_NAME = (GRAPH_OBJ_PROP_INTEGER_TOTAL+GRAPH_OBJ_PROP_DOUBLE_TOTAL), class=class="str">"cmt">// Object name GRAPH_OBJ_PROP_TEXT, class=class="str">"cmt">// Object description(text contained in the object) GRAPH_OBJ_PROP_TOOLTIP, class=class="str">"cmt">// Tooltip text GRAPH_OBJ_PROP_LEVELTEXT, class=class="str">"cmt">// Level description GRAPH_OBJ_PROP_FONT, class=class="str">"cmt">// Font GRAPH_OBJ_PROP_BMPFILE, class=class="str">"cmt">// BMP file name for the "Bitmap Level" object GRAPH_OBJ_PROP_CHART_OBJ_SYMBOL, class=class="str">"cmt">// Symbol for the Chart object }; class="macro">#define GRAPH_OBJ_PROP_STRING_TOTAL(class="num">7) class=class="str">"cmt">// Total number of class="type">class="kw">string properties class=class="str">"cmt">//+------------------------------------------------------------------+ class=class="str">"cmt">//+------------------------------------------------------------------+ class=class="str">"cmt">//| Possible sorting criteria of graphical objects | class=class="str">"cmt">//+------------------------------------------------------------------+ class="macro">#define FIRST_GRAPH_OBJ_DBL_PROP(GRAPH_OBJ_PROP_INTEGER_TOTAL-GRAPH_OBJ_PROP_INTEGER_SKIP) class="macro">#define FIRST_GRAPH_OBJ_STR_PROP(GRAPH_OBJ_PROP_INTEGER_TOTAL-GRAPH_OBJ_PROP_INTEGER_SKIP+GRAPH_OBJ_PROP_DOUBLE_TOTAL-GRAPH_OBJ_PROP_DOUBLE_SKIP) enum ENUM_SORT_GRAPH_OBJ_MODE { class=class="str">"cmt">//--- Sort by integer properties
◍ 图形对象排序枚举的逐条含义
在 MT5 的 ObjectsTotal / ObjectGet 相关调用里,经常需要按某种规则批量枚举图表上的图形对象。系统提供了一组 SORT_BY_GRAPH_OBJ_* 枚举,用来决定 ObjectsFind / 集合遍历时的排列依据。 下面这段枚举定义了 26 个排序维度,从对象 ID 到水平线颜色都有覆盖。比如 SORT_BY_GRAPH_OBJ_CREATETIME 按创建时间排,SORT_BY_GRAPH_OBJ_ZORDER 按点击接收优先级排,SORT_BY_GRAPH_OBJ_TIMEFRAMES 按各周期可见性排。 实盘写 EA 时,如果你要清理某图表子窗口(SORT_BY_GRAPH_OBJ_WND_NUM)里所有手工画的线,用对应枚举拿到的列表顺序会更可控,避免误删主图对象。外汇与贵金属杠杆高,脚本批量删对象前务必在模拟盘验一遍。
SORT_BY_GRAPH_OBJ_ID = class="num">0, class=class="str">"cmt">// Sort by object ID SORT_BY_GRAPH_OBJ_TYPE, class=class="str">"cmt">// Sort by object type SORT_BY_GRAPH_OBJ_ELEMENT_TYPE, class=class="str">"cmt">// Sort by graphical element type SORT_BY_GRAPH_OBJ_BELONG, class=class="str">"cmt">// Sort by a graphical element affiliation SORT_BY_GRAPH_OBJ_CHART_ID, class=class="str">"cmt">// Sort by chart ID SORT_BY_GRAPH_OBJ_WND_NUM, class=class="str">"cmt">// Sort by chart subwindow index SORT_BY_GRAPH_OBJ_NUM, class=class="str">"cmt">// Sort by object index in the list SORT_BY_GRAPH_OBJ_CREATETIME, class=class="str">"cmt">// Sort by object creation time SORT_BY_GRAPH_OBJ_TIMEFRAMES, class=class="str">"cmt">// Sort by object visibility on timeframes SORT_BY_GRAPH_OBJ_BACK, class=class="str">"cmt">// Sort by the "Background object" class="kw">property SORT_BY_GRAPH_OBJ_ZORDER, class=class="str">"cmt">// Sort by the priority of a graphical object for receiving the event of clicking on a chart SORT_BY_GRAPH_OBJ_HIDDEN, class=class="str">"cmt">// Sort by a disabling display of the name of a graphical object in the terminal object list SORT_BY_GRAPH_OBJ_SELECTED, class=class="str">"cmt">// Sort by the "Object selection" class="kw">property SORT_BY_GRAPH_OBJ_SELECTABLE, class=class="str">"cmt">// Sort by the "Object availability" class="kw">property SORT_BY_GRAPH_OBJ_TIME, class=class="str">"cmt">// Sort by time coordinate SORT_BY_GRAPH_OBJ_COLOR, class=class="str">"cmt">// Sort by class="type">color SORT_BY_GRAPH_OBJ_STYLE, class=class="str">"cmt">// Sort by style SORT_BY_GRAPH_OBJ_WIDTH, class=class="str">"cmt">// Sort by line width SORT_BY_GRAPH_OBJ_FILL, class=class="str">"cmt">// Sort by the "Object class="type">color filling" class="kw">property SORT_BY_GRAPH_OBJ_READONLY, class=class="str">"cmt">// Sort by the ability to edit text in the Edit object SORT_BY_GRAPH_OBJ_LEVELS, class=class="str">"cmt">// Sort by number of levels SORT_BY_GRAPH_OBJ_LEVELCOLOR, class=class="str">"cmt">// Sort by line level class="type">color
图形对象排序枚举的尾部清单
在 MT5 的 ObjectsTotal / ObjectGetInteger 体系里,图形对象排序方式走到 SORT_BY_GRAPH_OBJ_LEVELSTYLE 之后,还有一整组以 SORT_BY_GRAPH_OBJ_ 开头的枚举量,专门覆盖画线样式、宽度、文字对齐、字体尺寸等细分属性。 这些枚举大多用于 ObjectsSort() 的排序模式参数,例如 SORT_BY_GRAPH_OBJ_RAY_LEFT 对应「射线向左延伸」属性,SORT_BY_GRAPH_OBJ_RAY_RIGHT 对应「射线向右延伸」,SORT_BY_GRAPH_OBJ_RAY 则针对「垂直线穿透图表所有子窗口」这一开关。 斐波那契弧、江恩、艾略特等复杂对象也有专属排序键:SORT_BY_GRAPH_OBJ_ELLIPSE 管「显示完整椭圆」,SORT_BY_GRAPH_OBJ_DIRECTION 管「江恩对象趋势」,SORT_BY_GRAPH_OBJ_DEGREE 与 SORT_BY_GRAPH_OBJ_DRAWLINES 分别管「艾略特波浪标注层级」和「是否显示波浪连线」。 内嵌图表对象(Chart object)同样可排:从 OBJ_CHART_ID、周期、时间/价格轴显示旗标到图表缩放比例,对应 SORT_BY_GRAPH_OBJ_CHART_OBJ_CHART_SCALE 等四个枚举。外汇与贵金属图表上滥用这些排序可能拖慢刷新,属高风险环境下的性能细节,建议开 MT5 用以下片段自查枚举值。
SORT_BY_GRAPH_OBJ_LEVELSTYLE, class=class="str">"cmt">// Sort by line level style SORT_BY_GRAPH_OBJ_LEVELWIDTH, class=class="str">"cmt">// Sort by line level width SORT_BY_GRAPH_OBJ_ALIGN, class=class="str">"cmt">// Sort by the "Horizontal text alignment in the Entry field" class="kw">property SORT_BY_GRAPH_OBJ_FONTSIZE, class=class="str">"cmt">// Sort by font size SORT_BY_GRAPH_OBJ_RAY_LEFT, class=class="str">"cmt">// Sort by "Ray goes to the left" class="kw">property SORT_BY_GRAPH_OBJ_RAY_RIGHT, class=class="str">"cmt">// Sort by "Ray goes to the right" class="kw">property SORT_BY_GRAPH_OBJ_RAY, class=class="str">"cmt">// Sort by the "Vertical line goes through all windows of a chart" class="kw">property SORT_BY_GRAPH_OBJ_ELLIPSE, class=class="str">"cmt">// Sort by the "Display the full ellipse of the Fibonacci Arc object" class="kw">property SORT_BY_GRAPH_OBJ_ARROWCODE, class=class="str">"cmt">// Sort by an arrow code for the Arrow object SORT_BY_GRAPH_OBJ_ANCHOR, class=class="str">"cmt">// Sort by the position of a binding point of a graphical object SORT_BY_GRAPH_OBJ_XDISTANCE, class=class="str">"cmt">// Sort by a distance from the base corner along the X axis in pixels SORT_BY_GRAPH_OBJ_YDISTANCE, class=class="str">"cmt">// Sort by a distance from the base corner along the Y axis in pixels SORT_BY_GRAPH_OBJ_DIRECTION, class=class="str">"cmt">// Sort by the "Gann object trend" class="kw">property SORT_BY_GRAPH_OBJ_DEGREE, class=class="str">"cmt">// Sort by the "Elliott wave marking level" class="kw">property SORT_BY_GRAPH_OBJ_DRAWLINES, class=class="str">"cmt">// Sort by the "Display lines for Elliott wave marking" class="kw">property SORT_BY_GRAPH_OBJ_STATE, class=class="str">"cmt">// Sort by button state(pressed/released) SORT_BY_GRAPH_OBJ_OBJ_CHART_ID, class=class="str">"cmt">// Sort by Chart object ID. SORT_BY_GRAPH_OBJ_CHART_OBJ_PERIOD, class=class="str">"cmt">// Sort by Chart object period SORT_BY_GRAPH_OBJ_CHART_OBJ_DATE_SCALE, class=class="str">"cmt">// Sort by time scale display flag for the Chart object SORT_BY_GRAPH_OBJ_CHART_OBJ_PRICE_SCALE, class=class="str">"cmt">// Sort by price scale display flag for the Chart object SORT_BY_GRAPH_OBJ_CHART_OBJ_CHART_SCALE, class=class="str">"cmt">// Sort by Chart object scale SORT_BY_GRAPH_OBJ_XSIZE class=class="str">"cmt">// Sort by Object width along the X axis in pixels