文章目录 [显示]
对于当前图表有关的图表物件的一组函数。
18.1 ObjectCreate(创建对象)
bool ObjectCreate( string name, int type, int window, datetime time1, double price1, void time2, void price2, void time3, void price3)
物件创建的指定名称、类型和最初坐标的指定窗口。计数坐标与物件的关联可以是从1到3物件类型。 如果函数成功,返回值将是 TRUE,否则,它将是 FALSE。获得详细的错误信息, 查看 GetLastError()函数。 OBJ_LABEL类型的物件忽略坐标。 使用ObjectSet() 设定 OBJPROP_XDISTANCE 和 OBJPROP_YDISTANCE 属性。
注解: 子窗口图表(如果子窗口带有指标)编号从1 开始。主窗口的存在的索引为零。
必须通过的坐标: 时间和价格。 例如, OBJ_VLINE只物件需要时间,但必须通过价格(任何值)。
参量:
name – 物件唯一名称。
type – 物件类型。它可以是物件类型列举的任意值。
window – 件窗口将增加的索引。窗口索引必须多于或等于0并且小于 WindowsTotal()。
time1 – 第一点的时间部分。
price1 – 第一点的值部分。
time2 – 第二点的时间部分。
price2 – 第二点的值部分。
time3 – 第三点的时间部分。
price3 – 第三点的值部分。
示例:
// 新文本物件
if(!ObjectCreate(“text_object”, OBJ_TEXT, 0, D’2004.02.20 12:30′, 1.0045))
{
Print(“错误:不能创建文本! 代码 #”,GetLastError());
return(0);
}
// 新文本标签
if(!ObjectCreate(“label_object”, OBJ_LABEL, 0, 0, 0))
{
Print(“错误:不能创建文本! 代码 #”,GetLastError());
return(0);
}
ObjectSet(“label_object”, OBJPROP_XDISTANCE, 200);
ObjectSet(“label_object”, OBJPROP_YDISTANCE, 100);
18.2 ObjectDelete(删除对象)
bool ObjectDelete( string name)
删除物件已有的指定名称。 如果函数成功,返回值将是TRUE,否则,它将是 FALSE。
获得详细的错误信息, 查看GetLastError() 函数。
参量:
name – 被删除的物件名称。
示例:
ObjectDelete(“text_object”);
18.3 ObjectDescription(对象描述)
string ObjectDescription( string name)
返回物件描述。 对于OBJ_TEXT和OBJ_LABEL类型物件,这些物件文本将返回。
获得详细的错误信息,查看GetLastError() 函数。
参见 ObjectSetText() 函数。
参量:
name – 物件名称。
示例:
// 对于文件写下图表物件
int handle, total;
string obj_name,fname;
// 文件名称
fname=”objlist_”+Symbol();
handle=FileOpen(fname,FILE_CSV|FILE_WRITE);
if(handle!=false)
{
total=ObjectsTotal();
for(int i=-;i<total;i++)
{
obj_name=ObjectName(i);
FileWrite(handle,”Object “+obj_name+” description= “+ObjectDescription(obj_name));
}
FileClose(handle);
}
18.4 ObjectFind(查找对象)
int ObjectFind( string name)
查找指定的物件名称。窗口的索引包含所找到的物件。如果它失败, 返回值将是-1 。获得详细的错误信息, 查看 GetLastError() 函数。子窗口图表(如果子窗口带有指标)编号从1 开始。主窗口的索引为零。
参量:
name – 查找的物件名称。
示例:
if(ObjectFind(“line_object2”)!=win_idx) return(0);
18.5 ObjectGet(获取对象属性)
double ObjectGet( string name, int index)
函数返回指定物件的属性。检查错误,查看 GetLastError() 函数。
参见 ObjectSet()函数。
参量:
name – 物件名称。
index – 物件属性索引。它可以是物件属性列举值的任意。
示例:
color oldColor=ObjectGet(“hline12”, OBJPROP_COLOR);
18.6 ObjectGetFiboDescription(获取斐波那契描述)
string ObjectGetFiboDescription( string name, int index)
函数返回对斐波纳契物件的平实描述。相当数量斐波纳契水平取决于物件类型。 最大斐波纳契水平是32。
获得详细的错误信息,查看 GetLastError() 。
参见 ObjectSetFiboDescription() 函数。
参量:
name – 斐波纳契物件名称。
index – 斐波纳契索引水平(0-31)。
示例:
#include <stdlib.mqh>
…
string text;
for(int i=0;i<32;i++)
{
text=ObjectGetFiboDescription(MyObjectName,i);
//—- 检查物件少于32水平线
if(GetLastError()!=ERR_NO_ERROR) break;
Print(MyObjectName,”水平: “,i,” description: “,text);
}
18.7 ObjectGetShiftByValue(计算索引柱值)
int ObjectGetShiftByValue( string name, double value)
函数计算并返回索引柱(移动当前相关的柱)给出的值。 索引柱由第一和第二坐标应用线性方程计算。 适用于趋势线和相似的物件。获得详细的错误信息, 查看 GetLastError() 函数。
参见 ObjectGetValueByShift() 函数。
参量:
name – 物件名称。
value – 价格值。
示例:
int shift=ObjectGetShiftByValue(“MyTrendLine#123”, 1.34);
18.8 ObjectGetValueByShift(计算返回K柱号)
double ObjectGetValueByShift( string name, int shift)
函数计算并返回指定柱的值(转移当前相关的柱)。索引柱由第一和第二坐标应用线性方程计算。 适用于趋势线和相似的物件。获得详细的错误信息, 查看 GetLastError() 函数。
参见 ObjectGetShiftByValue() 函数。
参量:
name – 物件名称。
shift – 柱索引。
示例:
double price=ObjectGetValueByShift(“MyTrendLine#123”, 11);
18.9 ObjectMove(移动对象)
bool ObjectMove( string name, int point, datetime time1, double price1)
函数在图移动一个物件座标。 物件可能根据他们的 类型 有一个到三个座标。 如果函数成功 ,返回值将是 TRUE, 否则,它将是FALSE。获得详细的错误信息, 查看 GetLastError() 函数。物件坐标的开始数字必须是0。
参量:
name – 物件名称。
point – 坐标索引(0-2)。
time1 – 新时间值。
price1 – 新值。
示例:
ObjectMove(“MyTrend”, 1, D’2005.02.25 12:30′, 1.2345);
18.10 ObjectName(对象名)
string ObjectName( int index)
在物件列表中用它的索引函数返回物件名称。获得详细的错误信息, 查看 GetLastError() 函数。
参量:
index – 在物件列表中的物件索引。物件索引必须超过或等于0并且小于ObjectsTotal()。
示例:
int obj_total=ObjectsTotal();
string name;
for(int i=0;i<obj_total;i++)
{
name=ObjectName(i);
Print(i,”物件名称为 ” + name);
}
18.11 ObjectsDeleteAll(删除所有对象)
int ObjectsDeleteAll( void window, void type)
在图表的子窗口删除全部类型物件。函数返回删除物件数。获得详细的错误信息, 查看 GetLastError() 函数。
注解: 子窗口图表(如果子窗口带有指标)编号从1 开始。主窗口的存在的索引为零。如果窗口索引错误或值为-1,物件 会从现有的图表中删除。
如果类型 值等与-1 或这个参量是错误的,在子窗口的全部指定物件将被删除。
参量:
window – 选择参量。 物件的索引窗口将被删除。 必须超过或等于 -1 (EMPTY为默认值)并且小于 WindowsTotal()。
type – 选择参量。被删除的物件类型。它可以是 任意列举值的物件类型或EMPTY常数删除所有物件类型。
示例:
ObjectsDeleteAll(2, OBJ_HLINE); // 从第二子窗口移除全部水平线。
ObjectsDeleteAll(2); // 从第二子窗口移除全部物件。
ObjectsDeleteAll(); //从图表中移除全部物件
18.12 ObjectSet(设置对象属性)
bool ObjectSet( string name, int index, double value)
改变指定物件属性的值。如果函数成功, 返回值将是 TRUE。否则, 它将是FALSE. 获得详细的错误信息, 查看 GetLastError() 函数。
参见 ObjectGet() 函数。
参量:
name – 物件名称。
index – 物件索引值。 它可以是列举的任意物件属性值。
value – 新的属性值。
示例:
// moving the first coord to the last bar time
ObjectSet(“MyTrend”, OBJPROP_TIME1, Time[0]);
// setting the second fibo level
ObjectSet(“MyFibo”, OBJPROP_FIRSTLEVEL+1, 1.234);
// setting object visibility. object will be shown only on 15 minute and 1 hour charts
ObjectSet(“MyObject”, OBJPROP_TIMEFRAMES, OBJ_PERIOD_M15 | OBJ_PERIOD_H1);
18.13 ObjectSetFiboDescription(设置斐波那契描述)
bool ObjectSetFiboDescription( string name, int index, string text)
函数分配一个新的描述到斐波纳契物件的水平。 相当数量斐波纳契水平取决于物件类型。 最大金额斐波纳契水平是32。
获得详细的错误信息,查看 GetLastError() 函数。
参量:
name – 物件名称。
index – 斐波纳契索引水平(0-31)。
text – 新的水平描述
示例:
ObjectSetFiboDescription(“MyFiboObject”,2,”Second line”);
18.14 ObjectSetText(设置对象文字)
bool ObjectSetText( string name, string text, int font_size, void font, void text_color)
改变物件描述。对于OBJ_TEXT 和OBJ_LABEL物件的描述作为图表的文本显示。如果函数成功, 返回的值将是TRUE。 否则, 它是FALSE。获得详细的错误信息, 查看GetLastError() 函数。
只有字体大小,字体名称和文本颜色参量使用为 font_size, font_name和 text_color 物件。为其它类型
物件, 这些参量被忽略。
参见 ObjectDescription() 函数。
参量:
name – 物件名称。
text – 描述物件文本。
font_size – 字体大小点数。
font – 字体名称。
text_color – 文本颜色。
示例:
ObjectSetText(“text_object”, “Hello world!”, 10, “Times New Roman”, Green);
18.15 ObjectsTotal(对象总数)
int ObjectsTotal( void type)
在图表中返回指定物件类型总量。
参量:
type – 选择参量。将计数的物件类型。 它可以是 物件类型列举的任意值或EMPTY常数计算全部类型物件。
示例:
int obj_total=ObjectsTotal();
string name;
for(int i=0;i<obj_total;i++)
{
name=ObjectName(i);
Print(i,”对于 #的物件名称”,i,” is ” + name);
}
18.16 ObjectType(对象类型)
int ObjectType( string name)
函数返回 物件类型值。获得详细的错误信息, 查看 GetLastError() 函数。
参量:
name – 物件名称。
示例:
if(ObjectType(“line_object2”)!=OBJ_HLINE) return(0);