打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
实战系列4:在图表上画曲线

这是MT4编程开发实战系列的第4站。在前面3节我们分别学习了直线、椭圆和矩形、文字及符号的创建方法,这次我们要学习一下如何在图表上创建曲线。
虽然MT4中已经自带了很多曲线类型的指标,如各种不同的均线、布林带等等,但经常有些朋友还需要创建一些自己独有的曲线,系统自带的指标已经无法满足需求,这时我们就需要通过MT4编程来开发自己的曲线指标了。
下面我们一起通过实例来学习如何画曲线。假设我现在想把图表上每根K线的中间部分(即最高价与最低价之和的均值)用一条曲线连接起来。首先创建一个新的指标文件,命名为Lesson4_DrawCurve_1。在指标文件的开始部分,添加如下语句:

红色框内部分为我们添加的语句。然后在init函数内添加如下语句:

在start函数内添加如下语句:

编译后,将Lesson4_DrawCurve_1指标添加到图表上,会看到我们已创建了一条红色的曲线,将图表上每根K线的中间部分连接了起来:

下面来解释一下上面代码的意思。首先我们在指标文件的开始部分插入了3条语句,前面两条分别是:
#property indicator_buffer 1的意思是本指标将使用一个指标缓存(最多只能有8个指标,编码是从0至7);
#property indicator_color Red的意思是创建的指标将用红色显示。#property的意思是给指标文件添加一个编译参数(注:由于这些东西涉及到程序开发中比较专业的部分了,本教程的主旨是“实用为主”,所以我将不会对一些太过专业的部分进行深入探讨,只需知道应该这样做就行了。有兴趣的朋友可以私下聊J)。假如你想创建两条曲线,则可以写成:#property indicator_buffer 2;假如想改变曲线的颜色,则可以把Red数值改为其它颜色,如Yellow、Green等。
在添加了两个编译参数后,我们还创建了一个double类型的数组ExtMapBuffer[],这个数组的作用是储存每根K线中间部分的数值,画图的时候就根据这个数组里面的数值来画。
在init函数中,我们用到了SetIndexStyle和SetIndexBuffer这两个MT4中的系统函数。SetIndexStyle的意思是设置我们要画的图形的类型,SetIndexStyle中的第一个参数0,表示我们要对第一个指标的样式进行设置,在MT4中,最多只能设置8个指标,编码是从0开始至7结束;第二个参数DRAW_LINE是MT4默认的系统变量,意思是告诉MT4我们将要在图表上画线。如果我们现在想在每根K线的中间部分画个箭头,该如何做呢?用DRAW_ARROW替换DRAW_LINE就行了,替换后的效果如下:

刚才我们画出来的曲线是一条连续的曲线,如果我想画一条虚线该如何做呢?给SetIndexStyle增加一个参数就行了,现在我们把SetIndexStyle函数改写为如下这样:

编译后重新添加到图表上,会发现现在的曲线已经是一条虚线了。

同理,如果用STYLE_DOT替换STYLE_DASH,就可以画出一条由点组成的曲线了,更多的类型大家可以通过查找编程文档获得。
现在,假如我们觉得曲线太细了,想加粗该怎么做呢?这时就需要给SetIndexStyle函数增加第4个参数了:

SetIndexStyle的第4个参数4,意思是把曲线的宽度设置为4(从1开始,最大为5)。
最后,假如想把刚才画的线更改一下颜色,可以用到SetIndexStyle的第5个参数,像下面这句:

最后一个参数Blue的意思是把曲线的颜色改为蓝色。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
MT4编程入门
MT4编程的输出方式
实战系列5:创建警报 - 阿狼的MT4编程外汇博客
问题集
外汇EA怎么安装到MT4上?外汇EA安装使用教程
[转载]MQL4 开始动手写自己的外汇智能交易系统
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服