mt4箭头符号
更新时间:2023-11-28 22:03:01 阅读量: 教育文库 文档下载
MT4编程开发实战系列:画图系列
第一节如何画水平线与垂直线
这是MT4编程开发实战系列的第一站,我们先来学习一下如何在MT4图表上进行基本的画图操作。
在开始动手之前,首先讲一个很基本也很重要的概念:
在MT4系统中,图表的方向是从右到左的,举例说:在一个记录有当前图表每根K线位置的数组中,第一个数值表示的是图表最右边、也就是当前的K线的数值!
画图最基本的操作是画直线。下面的两个例子将演示如何在图表上画一条直线。
1、画水平线:
首先,在MetaEditor编辑器中创建一个客户指标文件,名字可以任意,我这里就把它命名为Lesson1_DrawLine。
然后,在其中的start()函数中添加下面的代码:
添加完毕后,按F5编译代码,然后在MT4中打开任意一张图表,把编译好的指标Lesson1_DrawLine添加到图表上,我们可以看到图表上已经画出了一条横线:
现在来解释一下上面的代码。
上面的代码使用了ObjectCreate这个函数。
ObjectCreate是一个非常重要的函数,在后面的画图教程中会多次使用到这个函数。
在上面的例子中,ObjectCreate函数有5个参数,第1个”Hline”是对你要画的横线起一个名字,这个名字是可以任意的;
第2个OBJ_HLINE是MT4系统默认的一个变量,表示横线,意义是告诉系统你准备画一条横线;
第3个参数是0,表示在主窗口进行画图的操作,这里暂时不对这个参数作详细的说明,后面我会专门用一个专题来将画图窗口的知识;
第4个参数也是0,这个代表的是横坐标(X轴),
第5个参数是Bid,这个是MT4系统默认的一个变量,意思是当前的卖出价。
这里重点说一下最后两个参数:
在MT4中,图表的横坐标(X轴)代表时间,纵坐标(Y轴)代表价格,
二、画垂直线:
在上面的例子中,ObjectCreate函数的最后两个参数0和Bid就分别代表X轴坐标和Y轴坐标,意思是在Y轴为当前卖出价格的地方画一条横线(因为直线为无限长,X坐标没有意义,所以这里就设成0了)。
明白了这点,再画条竖线就很简单了。只要把X轴坐标设为你想要的数值即可。
例如:我想在当前的K线位置上画条竖线,代码如下:
Time[]数组是MT4系统默认的一个数组,数组中每个数值对应当前图表上每根K线所处的时间。同样,因为直线是无限的,Y轴坐标此时也失去了意义,我们就把它设为0好了。
在本节的最后,我补充说明一下指标文件的各个组成部分:
当你创建了一个指标文件后,会发现系统已经自动生成了init()、deinit()和start()这3个函数。
Init函数是在初始化的时候调用的,也就是添加到图表的同时会执行一次,之后就不会再执行了;
deinit函数是在关闭图表或删除指标的同时执行一次,主要作用是把该指标制作出来的东西删除掉;
start函数是主函数,每次价格变动的时候,都会执行一次这个函数。
第二节如何画椭圆形与矩形
这是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线的位置;
第7个是坐标点2的y坐标,Ask表示当前的买入价。
椭圆已经画出来了,颜色似乎不够醒目,那我们应该如何修改已画出来的图形的颜色呢?
在start函数内添加如下语句:
Int start()
{
Int counted_bars=IndicatorCounted();
Int cnt;
//----
If(counted_bars>0) counted_bars--;
Int limit=Bars-counted_bars-1;
For(cnt=0;cnt { ExtMapBuffer[cnt]=(High[cnt]+Low[cnt])/2; } //----- Return(0); } 编译后,将Lesson4_DrawCurve_1指标添加到图表上,会看到我们已创建了一条红色的曲线,将图表上每根K线的中间部分连接了起来: 下面来解释一下上面代码的意思。首先我们在指标文件的开始部分插入了3条语句,前面两条分别是: #property indicator_buffer 1的意思是本指标将使用一个指标缓存(最多只能有8个指标,编码是从0至7); #property indicator_color Red的意思是创建的指标将用红色显示。#property的意思是给指标文件添加一个编译参数(注:由于这些东西涉及到程序开发中比较专业的部分了,本教程的主旨是“实用为主”,所以我将不会对一些太过专业的部分进行深入探讨,只需知道应该这样做就行了。 有兴趣的朋友可以私下聊?)。假如你想创建两条曲线,则可以写成:#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函数改写为如下这样: SetIndexStyle(0,DRAW_LINE,STYLE_DASH); 编译后重新添加到图表上,会发现现在的曲线已经是一条虚线了。 同理,如果用STYLE_DOT替换STYLE_DASH,就可以画出一条由点组成的曲线了,更多的类型大家可以通过查找编程文档获得。 现在,假如我们觉得曲线太细了,想加粗该怎么做呢?这时就需要给SetIndexStyle函数增加第4个参数了: SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,4); SetIndexStyle的第4个参数4,意思是把曲线的宽度设置为4(从1开始,最大为5)。 最后,假如想把刚才画的线更改一下颜色,可以用到SetIndexStyle的第5个参数,像下面这句: SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,4,Blue); 最后一个参数Blue的意思是把曲线的颜色改为蓝色。 第五节如何创建警报 在前面几节,我们学习了MT4编程开发中画图方面的一些基础知识,这次我们来学习一下如何在MT4编程中应用报警功能。 大家都知道,外汇市场是24小时不间断的,而人的精力是有限的,那么,在休息的时候如果价位到达了自己的目标价位,这时候该怎么办呢?答案是利用MT4的警报功能。在MT4平台上如何设置警报这里就不详述了,具体可参考帮助文档,这里说一下如何通过编程来实现。 首先,我们来实现一个最简单的指标:当价格到达指定价位时,进行报警。 新创建一个指标文件,命名为:Lesson5_Alert_1。 在程序头部加入如下一句: #property indicator_chart_window Extern double Price; 其中红色部分为我们添加的语句。Extern的意思是Price为一个外部变量,可以在指标运行期间动态进行修改。 然后在start函数中加入如下语句: Int start() { Int counted_bars=IndicatorCounted(); //---- If(Bid==Price) Alert(“到达指定价位!”); //---- Return(0); } 编译后运行,然后把Lesson5_Alert_1指标添加到图表上,并设置好Price变量,当当前的卖出价等于设定的Price价格时,则会弹出如下的报警窗口:
正在阅读:
mt4箭头符号11-28
述职报告08-23
Zebra打印机驱动程序安装设置指南08-30
学包饺子作文500字07-05
个人与团队管理课程考核04-09
2018-2023年中国感应洁具行业市场发展趋势分析及投资战略研究报告(目录)12-05
2011年1月资本运营与融资试卷答案07-17
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 箭头
- 符号
- mt4
- 审计一些案例分析练习
- 基本运算放大器(二元一次方程)09.05.01 - 图文
- 浅析高校微信公众平台在大学生教育中的应用
- 毕节市学习贯彻《准则》《条例》知识竞赛答案1 -
- 财政学自测试卷2
- 露天矿卡车运输安全质量标准化评分表 -
- 部编八年级上册历史第七单元解放战争第23课内战爆发导学案(无答案)
- 广东省肇庆市高中生物第二章基因和染色体的关系第2课时教案新人教版必修2
- 县教育局20XX年工作总结暨2019年工作计划
- 济南市小学对口直升初中一览表 - 图文
- 英语词根4
- 《MATLAB与应用》上机考试试卷与答案
- 2014年科学方法与论文写作考试题及答案
- 工作岗位调查表
- 太原市卫生局关于印发调整市级卫生应急队伍成员名单的通知
- 第二章补充习题及答案 普通化学
- 汽车的四轮定位的探讨论文
- 2019年度医院医德医风工作总结范文
- 物理学中阿拉伯字母的读法
- 药物制剂的稳定性习题及答案