在图表上画椭圆与矩形这是 MT4 编程斥地实战系列的第 2 站,正在上一节中,咱们进修了奈何应用 ObjectCreate 函 数正在图外上画直线。正在这一节中,咱们将连续用 ObjectCreate 函数正在图外上画出更众的图 形。 有时期咱们思对某些时光段的图形用卵形标识出来,下面咱们沿途来竣工云云的一个指 标。 应用 ObjectCreate 函数能够利便的正在图外上画出一个卵形,MQL 讲话中体现椭圆的常量 是 OBJ_ELLIPSE。画一个椭圆必要两个坐标点,是以,画一个椭圆的根基语句如下: ObjectCreate(“ellipse”, OBJ_ELLIPSE, 0, x1, y1, x2, y2) 新筑一个目标文献,定名为”Lesson2_DrawShape_1”,然后正在 start 函数中到场如下语句:
保管文献,按 F5 编译目标文献,然后把正在 MT4 中新筑一个图外,把 Lesson2_DrawShape_1 目标增加到图外上,能够看到咱们一经正在图外上画出了一个卵形。
外明一下 ObjectCreate 函数中的各个参数,第 1 个是图形的名字,能够随便写(忘却了 就回来看看第一节);第 2 个是 MT4 体系默认的一个常量,道理是告诉 MT4 咱们要画一 个椭圆;第 3 个 0 是体现咱们要正在主窗口进取行绘图;第 4 个是坐标点 1 的 x 坐标,简易 起睹,我这里写了 Time[0],代外起始是现在时光(还记得 MT4 图外的倾向是从右到左的 吗?);第 5 个参数是坐标点 1 的 y 坐标,为简易起睹,这里我写了 Bid,体现现在的卖出 价;第 6 个是坐标点 2 的 x 坐标,Time[10]体现正在现在图外上从现在时光往左第 10 根 K 线 的 y 坐标,Ask 体现现在的买入价。 椭圆一经画出来了,颜色类似不敷注目,那咱们应当奈何编削已画出来的图形的颜色呢? 用 ObjectSet 函数。比如我现正在思把椭圆的颜色改为血色,能够正在 ObjectCreate 函数下面添 加云云一句:
ObjectSet 的第一个参数是图形的名字,道理是告诉 MT4 我将要对”ellipse”这个图形实行修 改;OBJPROP_COLOR 这个参数是 MT4 默认的体系常量,体现 Object 的颜色属性,正在后 面咱们将会看到,Object 还会有许众百般各样的属性,这些属生命名的章程都是 OBJ_XXX 云云的,只须把这个常量更改为咱们思要编削的属性就行了;第 3 个参数 Red 是 MT4 默认的体系常量,体现血色,正在 MQL 讲话中,百般颜色都能够直接用它们的英文 名称来体现,相当利便。 椭圆的颜色一经编削好了,可是巨细类似还不写意,咱们再把它改大一点,正在前面代码的 根源上再增加一句:
OBJ_SCALE 体现对图形实行缩放,1 是缩放的数值,越小椭圆就越大,全部恶果能够己方 编削看看。 下面,我思用一个矩形来替换上面咱们画出来的椭圆,该奈何做呢?很简易,只须用 OBJ_RECTANGLE 替代 OBJ_ELLIPSE 就行了。下面咱们沿途开端做。开始新创筑一个指 标文献,定名为 Lesson2_DrawShape_2,正在 start 函数到场如下语句:
编译后运转,然后正在 MT4 中新筑一张图外,把 Lesson2_DrawShape_2 目标增加到图外上, 能够看到咱们一经正在图外上画了一个矩形:
外明一下上面的代码:咱们用 OBJ_RECTANGLE 替代了前面的 OBJ_ELLIPSE,道理是告 诉 MT4 咱们将要正在图外上画一个矩形;Time[0]和 Time[10]分散是坐标点 1 的 x 轴坐标和 坐标点 2 的 x 轴坐标,这个咱们正在前面都讲过了,枢纽是 iHigh 和 iLow 这两个函数,iHigh 和 iLow 都是 MT4 自带的体系函数,iHigh 的道理是获取指定周期的最高代价,iHigh 函数 内部有 3 个参数:Symbol()函数说明用现在图外上的钱币、1440 体现天图、0 体现取当天 的最高价。这里做个增补,正在 MT4 编程中,体现时光周期有两种伎俩:一是直接用数字外 示,MT4 中的时光单元是分钟,是以你要指定哪个时光周期,就直接填众少分钟行了,正在 上面的例子中,由于 1 天是 1440 分钟,是以直接填 1440 就行了,假如要取 1 小时图的最 高值就填 60,30 分钟图就填 30,如许类推;二是用 MT4 默认的体系变量,像上面的语句, 咱们也能够云云写:
编译出来的目标是一律的,PERIOD_D1 是 MT4 默认的体系变量,体现周期为天,假如 1 小时图即是 PERIOD_H1,30 分钟图即是 PERIOD_M30,如许类推。同理,iLow 即是取指 定周期的最低价;最终一个参数是 0,这里体现取最天图最右边的 K 线的最高价和最低价, 即当天的最高价和最低价,假如改为 1,上面的例子即是取昨天的最高价和最低价了(还 记得 MT4 图外的倾向是由右往左吧?)。 同样,咱们能够用 ObjectSet 函数把上面画出来的矩形变为血色:
现正在,咱们把目标 Lesson2_DrawShape_2 从图外上删除掉,挖掘一经画出来的矩形并没有 从图外上删除,为什么呢?正在 MT4 中,一经画出来的图形默认是不会随目标沿途被删除的, 这时咱们就要用到 deinit 和 ObjectDelete 函数了。前面说过,deinit 函数是正在目标被删除的 时期挪用的,首要用来做极少清算性的事务,ObjectDelete 函数是删除一个指定的图形对象, 于是,咱们能够正在 deinit 函数中到场如下代码:
ObjectDelete 函数中的参数体现告诉 MT4 咱们要删除哪个图形。
转载请注明出处。