mt4编程入门教程

上传人:suns****4568 文档编号:60809392 上传时间:2018-11-18 格式:PDF 页数:26 大小:324.85KB
返回 下载 相关 举报
mt4编程入门教程_第1页
第1页 / 共26页
mt4编程入门教程_第2页
第2页 / 共26页
mt4编程入门教程_第3页
第3页 / 共26页
mt4编程入门教程_第4页
第4页 / 共26页
mt4编程入门教程_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《mt4编程入门教程》由会员分享,可在线阅读,更多相关《mt4编程入门教程(26页珍藏版)》请在金锄头文库上搜索。

1、MT4 编程入门教程编程入门教程 MT4 编程入门 1:MT4 自定义指标的基本操作.1 MT4 编程入门 2:指标源码中的常用符号说明7 MT4 编程入门 3:自定义变量8 MT4 编程入门 4:自定义函数9 MT4 编程入门 5:自定义数组10 MT4 编程入门 6:市场数据取值11 MT4 编程入门 7:判断语句14 MT4 编程入门 8:循环15 MT4 编程入门 9:MT4 自定义指标的结构.17 MT4 编程入门 10:画一条指标线19 MT4 编程入门 11:MT4 的报警.24 MT4 编程入门编程入门 1:MT4 自定义指标的基本操作自定义指标的基本操作 MT4 自定义指标的

2、保存目录、指标编缉器与指标调用 一、MT4 自定义指标保存在 C:Program FilesMetaTrader 4expertsindicators 这个目录中, 该目录中主要有二种类型的文件,一种是 mq4 文件,这是 MT4 自定义指标的源码文件,是 一种高级语言文件,可以人工编写修改,机器不能直接执行,但能在 MT4 启动时自动编译为 ex4 可执行文件。 另一种就是 ex4 文件, 这是 MT4 自定义指标的可执行文件,由 mq4 文件编译得到。 mq4文件必须编译为ex4文件才 能被 MT4 执行。但 ex4 文件是机器 码文件,人工不可修改 另 外 还 有 一 个 文 件 是 m

3、qlcache.dat,它用来保存目录中的 文件信息, 如果 MT4 无法自动编译, 只要删除此文件即可解决问题。 mq4文件编译为ex4可执行文件 有两种方法: 1、MT4 启动时,会自动把此目 录中的 mq4 文件编译为 ex4 文件。 1 2、用 MQ 语言编辑器打开 mq4 文件,点一下“编写”按钮,即可生成 ex4 文件 二、下载保存 mq4 文件、ex4 文件 在论坛上我们经常看到有 mq4 文件、ex4 文件可供下载,我们只要把 它们保存到 C:Program FilesMetaTrader 4expertsindicators 这个目录, 也就是下面这个目录中, 就可以了。 如

4、果下载的是 ex4 文件,那可以 直接调用;如果是 mq4 文件,则 需 要重启动 MT4,让系统自动 编译生成 ex4 可执行文件。如果 下载的是 rar、zip 等类型的压缩 文件,还必须下载后解压到此目 录才能使用。 三、将源码保存为源码文件 在论坛上,我们也经常能看到指标源码贴在网页上,但没有 mq4、ex4 等文件可以下载, 只能复制源码。此时需要我们自己动手将源码保存为源码文件,那也没关系,非常地简单, 多点几下鼠标就搞定。 1、打开 MQ 语言编辑器 2、在 MQ 语言编辑器中新建一个文件,文件名一定要输,别的随便操作都没关系。 2 3 3、删除新文件里面的所有内容,成为一个空文

5、件, 4、接着我们就可以将网页上源码复制粘贴进来 试着点一下“编写” ,如果左下角出现“0 错误,0 警告” ,那说明源码没问题,编译通过 了,成功生成了 ex4 可执行文件 4 5、还有很重要的一点,就是要把源码文件保存到正确的目录中 5 保存后,再点一下编写。 到此,源码保存完成。 当然,我们也还有另的办法: 可以打开一个原已存在的 mq4 文件,然后另存为你需要的文件名,再删除文件中的所有 内容成为空文件,把网页上的源贴到文件中保存即可 也可以在记事本中新建一个文件,把网页上的源码贴进记事本,然后取个文件名保存到 上面提到的目录,不过文件后缀必须输入 mq4,保存类型选择“所以文件” 四

6、、mt4 程序调用自定义指标 这非常简单 6 MT4 编程入门编程入门 2:指标源码中的常用符号说明:指标源码中的常用符号说明 一、注释符:单行注释“/” 、多行注释“/* */” 程序不执行注释,注释内容仅供阅读或保留不用的语句 在 MQ 语言编辑器中,注释内容以灰色显示 二、分号“; ” 表示一个语句结束 三、逗号“, ” 表示一个语句内部间隔,不结束语句。 四、等于号“=” 赋值语句,把等号后面的值赋给等号前的变量中 五、加号“+” 整数或小数,则表示值相加;字符串,则表示前后连接。 六、加加“+” 表示把符号前的变量值加 1,例如: “i+;” 这实际上就是: “i=i+1;”的简写,

7、表示 i 的值加 1 七、加等于“+=” 7 8 表示把符号后的值加到符号前的变量中。例如“i+=2;” ,实际上就是“i=i+2;”的简写, 表示 i 的值加 2 八、双等号“=” 等于号。用于逻辑判断,双等号前后值相等,则返回逻辑值“真 true” ;双等号前后值不 相等,则返回逻辑值“假 false” 九、叹号等号“!=” 不等于号。用于逻辑判断,不等号前后值不相等,则返回逻辑值“真 true” ;不等号前后 值相等,则返回逻辑值“假 false” 十、 “ temp=3*x+2*y; return(temp); 一、和自定义变量一样,自定义函数在使用前,也必须先设立,以定义其类型、名称

8、、 参数和运算语句。 函数类型、名称、参数位于函数头部(参数间以逗号分隔), 大括号中的是运算语句,也就是函数体部分。 return 语句为函数结束语句,return 后面括号中的值为函数返回值,即函数运算结果。 上例中,int 为函数类型,表示该函数的返回值(运算结果)是整数; (x,y)为参数,由于自定义变量使用之前都必须先创建,所以要加上类型定义词 int ft 为函数名,有了函数名,我们就可以在别处用 ft(2,1)的形式来调用此函数; 函数体部分有三句: 第一句,定义一个整形变量 temp 第二句,计算 temp 的值 第三句,函数结束,返回调用点,以 temp 的值作为本函数返回值

9、。 此函数也可以简写为:int ft(int x,int y) return(3*x+2*y); 二、函数类型与类型符 10 函数类型就是函数返回值(运算结果)的类型,与自定义变量类型差不多 有整型(int)、双精度型(double)、字符串型(string)、逻辑型(bool)等, 还有一种函数是以函数运行为目的,运行结束后不需要返回值也没有返回值的,则函数 类型可以写成 void(无值型) 三、函数中如果定义了自定义变量,那么此变量仅在本函数内部存在,函数运行结束时, 自定义变量也就自动注销。 上例中,有 x、y、temp 三个自定义变量,在函数运行时创建,在函数运行结束时自动消 失,仅在

10、函数内部有效,与函数外部无关。 四、函数的调用 函数调用非常简单,只要函数名正确、参数个数一致、类型相同就能正确调用 如我们前面创建了 ft(x,y)函数,则别处我们可以用 ft(4,5)等样式来调用 ft(x,y)函数求值。 调用时,传递参数值给 ft(x,y)函数(按顺序把 4 传给 x,把 5 传给 y),返回结果 23 后继续 执行主程序。 MT4 编程入门编程入门 5:自定义数组:自定义数组 一、数组是一系列同类型变量的集合,可以同时存储多个数值。 例:int aa4=4,3,2,1; 这是一个数据名为 aa、包含了 4 个元素的整数型数组(即数组长度为 4),可以同时存储 4 个数

11、值。 二、自定义数组也必须“先建立,后使用” 创建(定义)时,必须设定类型和名称。 创建(定义)时,数组的元素个数也可以设定,也可以不设定 数组中第一个元素的编号为 0,第二个为 1,以此类推。编号使用方括号括起来 在这上例中 aa0的值为 4、aa1的值为 3、aa2的值为 2、aa3的值为 1 创建(定义)数组的同时,可以赋初值,也可以不赋初值。 例: int bb; 创建数组 bb,不设定数组元素个数 int cc8; 创建数组 cc,设定数组元素为 8 个,不赋初值 int dd3=9,8,7; 创建数组 dd,设定数组元素为 4 个,并赋初值 赋值后,dd0的值为 9、dd1的值为

12、8、dd2的值为 7 int ee9=0,1,2,3; 创建数组 ee,设定数组元素为 9 个,但只给前 4 个元素赋初值 三、数组使用时的赋值 11 数组的赋值必须指定明确的赋值对象,除了新建数组时可以批量赋值外,数组元素必须 一个一个赋值 例如:dd2=1; 这是对数组 dd 的第 3 个元素 dd2(0是第 1 个,2表示第 3 个)重新赋值为 1 在这里,没有整数型变量定义符 int, 这样,数组 dd 原有三个值9,8,7就变为9,8,1 四、数组的引用 数组只是一系列变量的集合,所以每次只能使用数组中的一个元素。 数组的引用必须指定明确的引用对象,一次只能引用一个。如果需要使用整列

13、数组,则 必须逐个使用。 例如:数组 aa4的值为4,3,2,1 我们用 aa 来引用数组 aa 中的值 当 i=0 时,aai的值为 4 当 i=1 时,aai的值为 3 当 i=2 时,aai的值为 2 当 i=3 时,aai的值为 1 MT4 编程入门编程入门 6:市场数据取值:市场数据取值 一、预定义数组(MT4 已经定义好的,可以直接使用) 开盘价、最高价、最低价、收盘价、成交量等历史数据,每根 K 线蜡烛都各有一个,所 以必须用数组来解决问题,MT4 有几个预定义数组: 开盘价 Open、最高价 High、最低价 Low、收盘价 close、成交量 Volume、所属 时间 Tim

14、e 类型为双精度 double 型(即精确小数) 这里有一个位置的问题, 右边第一根 K 线蜡烛(即最新的蜡烛)的编号为 0, 第二根蜡烛编 号 1,第三根蜡烛编号 2,也就是说从右向左倒着数过去。 Open0、High0、Low0、Close0,表示最新的开盘价、最高价、最低价、收盘价 Open1、High1、Low1、close1,表示第 2 根 K 线蜡烛的开盘价、最高价、最低价、收 盘价 Open2、High2、Low2、close2,表示第 3 根 K 线蜡烛的开盘价、最高价、最低价、收 盘价 12 Open3、High3、Low3、close3,表示第 4 根 K 线蜡烛的开盘价、

15、最高价、最低价、收 盘价 Open、High、Low、close,表示第 i+1 根 K 线蜡烛的开盘价、最高价、最低价、收盘价 以此类推。 。 。 。 。 。 注意:这些是数组,用的是方括号。 二、预定义变量 买入价、卖出价是实时价格,MT4 用预定义变量 Ask 和 Bid 表示,数值类型为 double 双精度 还有一些预定义变量,如: Bars 表示图表中的蜡烛数,类型为 int 整数型 Digits 表示当前货币对的小数位,类型为 int 整数型,无日元币对为 4,有日元币对为 2, 黄金石油等一般也为 2 Point 表示当前货币对的点值,类型为双精度 double 型,无日元币对

16、为 0.0001,有日元 币对为 0.01。与 Digits 正好相反。 三、指标函数 1、价格、成交量、时间 它们都有三个参数:货币对名、K 线周期、位置序号 开盘价:iOpen(symbol,timeframe,shift) 双精度 double 型 收盘价:iClose(symbol,timeframe,shift) 双精度 double 型 最高价:iHigh(symbol,timeframe,shift) 双精度 double 型 最低价:iLow(symbol,timeframe,shift) 双精度 double 型 成交量:iVolume(symbol,timeframe,shift) 双精度 double 型 所属时间:iTime(symbol,timeframe,shift) 日期时间 datetime 型 K 线周期为: 1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号