ObjectCreate() 函数
bool ObjectCreate(string name, int type, int window, datetime time1, double price1, datetime time2=0,double price2=0, datetime time3=0, double price3=0)
这个函数用于在指定的图表子窗口中创建一个对象,设定其名称和坐标。对象的坐标数量可以根据对象类型的不同从 1 个到 3 个不等。如果对象成功创建,函数返回 TRUE;如果失败,则返回 FALSE。要获取详细的错误信息,可以使用 GetLastError() 函数。
坐标需要成对传递,包括时间和价格。例如,OBJ_VLINE 对象只需要时间,但价格也必须传递(可以是任意值)。对于 OBJ_LABEL 类型的对象,该函数中的坐标将被忽略;要设置该对象的 OBJPROP_XDISTANCE 和 OBJPROP_YDISTANCE 属性,需要使用 ObjectSet() 函数。
参数说明:
- name - 对象的名称;
- type - 对象的类型(可以是预定义的类型之一);
- window - 对象将被添加到的窗口编号。图表的子窗口(如果有指标窗口)编号从 1 开始,主窗口的编号始终为 0;指定的窗口编号必须大于或等于 0,并且小于 WindowsTotal() 函数返回的值;
- time1 - 第一个坐标的时间;
- price1 - 第一个坐标的价格;
- time2 - 第二个坐标的时间;
- price2 - 第二个坐标的价格;
- time3 - 第三个坐标的时间;
- price3 - 第三个坐标的价格。
本指南特别适合那些在 MetaTrader 平台上使用 MQL4 或 MQL5 编码并处理图表对象的程序员。
使用 MQL4 和 MQL5 代码绘制图表矩形
在 MQL 编写的指标或专家顾问中绘制矩形在 MetaTrader 4 和 MetaTrader 5 平台上都是比较简单的任务。你只需使用相对简单的参数调用 ObjectCreate() 函数即可。例如,在 MQL4 中可以这样写:
- ObjectCreate("Rectangle", OBJ_RECTANGLE, 0, Time[0], price1, Time[5], price2);
复制代码
在 MQL5 中则几乎相同:
- ObjectCreate(0, "Rectangle", OBJ_RECTANGLE, 0, iTime(NULL, 0, 0), price1, iTime(NULL, 0, 5), price2);
复制代码
但在 MQL5 中填充矩形或在 MQL4 中绘制未填充矩形的方式并不像我想象的那么明显。在 MT4 中,矩形默认是填充的,而在 MT5 中则是默认不填充的。
|