品牌EA编程教程大全之图表函数 | 有效期至长期有效 | 最后更新2019-01-10 18:46 |
浏览次数289 |
EA编程教程大全之图表函数
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);
bool ObjectDelete( string name)
删除物件已有的指定名称。 如果函数成功,返回值将是TRUE,否则,它将是 FALSE。
获得详细的错误信息, 查看GetLastError() 函数。
参量:
name - 被删除的物件名称。
示例:
ObjectDelete( text_object
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);
}
int ObjectFind( string name)
查找指定的物件名称。窗口的索引包含所找到的物件。如果它失败, 返回值将是-1 。获得详细的错误信息, 查看 GetLastError() 函数。子窗口图表(如果子窗口带有指标)编号从1 开始。主窗口的索引为零。
参量:
name - 查找的物件名称。
示例:
if(ObjectFind( line_object2 )!=win_idx) return(0);
double ObjectGet( string name, int index)
函数返回指定物件的属性。检查错误,查看 GetLastError() 函数。
参见 ObjectSet()函数。
参量:
name - 物件名称。
index - 物件属性索引。它可以是物件属性列举值的任意。
示例:
color oldColor=ObjectGet( hline12 , OBJPROP_COLOR);
string ObjectGetFiboDescription( string name, int index)
函数返回对斐波纳契物件的平实描述。相当数量斐波纳契水平取决于物件类型。最大斐波纳契水平是32。
获得详细的错误信息,查看 GetLastError() 函数。
参见 ObjectSetFiboDescription() 函数。
参量:
name - 斐波纳契物件名称。
index - 斐波纳契索引水平(0-31)。
示例:
#include stdlib.mqh
...
string text;
for(int i=0;i i++)
{
text=ObjectGetFiboDescription(MyObjectName,i);
//---- 检查物件少于32水平线
if(GetLastError()!=ERR_NO_ERROR) break;
Print(MyObjectName, 水平: ,i, description: ,text);
}
int ObjectGetShiftByValue( string name, double value)
函数计算并返回索引柱(移动当前相关的柱)给出的值。 索引柱由第一和第二坐标应用线性方程计算。适用于趋势线和相似的物件。获得详细的错误信息, 查看 GetLastError() 函数。
参见 ObjectGetValueByShift() 函数。
参量:
name - 物件名称。
value - 价格值。
示例:
int shift=ObjectGetShiftByValue( MyTrendLine#123 , 1.34);
double ObjectGetValueByShift( string name, int shift)
函数计算并返回指定柱的值(转移当前相关的柱)。索引柱由第一和第二坐标应用线性方程计算。适用于趋势线和相似的物件。获得详细的错误信息, 查看 GetLastError() 函数。
参见 ObjectGetShiftByValue() 函数。
参量:
name - 物件名称。
shift - 柱索引。
示例:
double price=ObjectGetValueByShift( MyTrendLine#123 , 11);
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);
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);
}
int ObjectsDeleteAll( void window, void type)
在图表的子窗口删除全部类型物件。函数返回删除物件数。获得详细的错误信息, 查看 GetLastError() 函数。
注解: 子窗口图表(如果子窗口带有指标)编号从1 开始。主窗口的存在的索引为零。如果窗口索引错误或值为-1,物件 会从现有的图表中删除。
如果类型 值等与-1 或这个参量是错误的,在子窗口的全部指定物件将被删除。
参量:
window - 选择参量。 物件的索引窗口将被删除。 必须超过或等于 -1 (EMPTY为默认值)并且小于 WindowsTotal()。
type - 选择参量。被删除的物件类型。它可以是 任意列举值的物件类型或EMPTY常数删除所有物件类型。
示例:
ObjectsDeleteAll(2, OBJ_HLINE); // 从第二子窗口移除全部水平线。
ObjectsDeleteAll(2); // 从第二子窗口移除全部物件。
ObjectsDeleteAll(); //从图表中移除全部物件。
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);
bool ObjectSetFiboDescription( string name, int index, string text)
函数分配一个新的描述到斐波纳契物件的水平。 相当数量斐波纳契水平取决于物件类型。最大金额斐波纳契水平是32。
获得详细的错误信息,查看 GetLastError() 函数。
参量:
name - 物件名称。
index - 斐波纳契索引水平(0-31)。
text - 新的水平描述
示例:
ObjectSetFiboDescription( MyFiboObject ,2, Second line
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);
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);
}
int ObjectType( string name)
函数返回 物件类型值。获得详细的错误信息, 查看 GetLastError() 函数。
参量:
name - 物件名称。
示例:
if(ObjectType( line_object2 )!=OBJ_HLINE) return(0);
本文标签: