文档介绍:mt4-编程入门4
2
dfd34343434343MT4编程入门教程
MT4编程入门教程目录
MT4编程入门1:MT4自定义指标的基本操作
MT4编程入门2:指标源码中的常用符号说明
MT4编程函数运行结束时自动消失,仅在函数内部有效,与函数外部无关。
四、函数的调用
函数调用非常简单,只要函数名正确、参数个数一致、类型相同就能正确调用
如我们前面创建了ft(x,y)函数,则别处我们可以用ft(4,5)等样式来调用ft(x,y)函数求值。
调用时,传递参数值给ft(x,y)函数(按顺序把4传给x,把5传给y),返回结果23后继续执行主程序。
13
MT4编程入门5:自定义数组
一、数组是一系列同类型变量的集合,可以同时存储多个数值。
例:int aa[4]={4,3,2,1};
这是一个数据名为aa、包含了4个元素的整数型数组(即数组长度为4),可以同时存储4个数值。fdsfsdfs三、数组使用时的赋值
数组的赋值必须指定明确的赋值对象,除了新建数组时可以批量赋值外,数组元素必须一个一个赋值
例如:dd[2]=1;
这是对数组dd的第3个元素dd[2]([0]是第1个,[2]表示第3个)重新赋值为1
在这里,没有整数型变量定义符int,
这样,数组dd原有三个值{9,8,7}就变为{9,8,1}
四、数组的引用
数组只是一系列变量的集合,所以每次只能使用数组中的一个元素。
数组的引用必须指定明确的引用对象,一次只能引用一个。如果需要使用整列数组,则必须逐个使用。
例如:数组aa[4]的值为{4,3,2,1}
我们用aa来引用数组aa中的值
当i=0时,aa[i]的值为4
当i=1时,aa[i]的值为3
当i=2时,aa[i]的值为2
当i=3时,aa[i]的值为1
15
MT4编程入门6:市场数据取值
一、预定义数组(MT4已经定义好的,可以直接使用)
开盘价、最高价、最低价、收盘价、成交量等历史数据,每根K线蜡烛都各有一个,所以必须用数组来解决问题,MT4有几个预定义数组:
开盘价Open[]、最高价High[]、最低价Low[]、收盘价close[]、成交量Volume[]、所属时间Time[]
类型为双精度double型(即精确小数)
这里有一个位置的问题,右边第一根K线蜡烛(即最新的蜡烛)的编号为0,第二根蜡烛编号1,第三根蜡烛编号2,也就是说从右向左倒着数过去。
Open[0]、High[0]、Low[0]、Close[0],表示最新的开盘价、最高价、最低价、收盘价
Open[1]、High[1]、Low[1]、close[1],表示第2根K线蜡烛的开盘价、最高价、最低价、收盘价
Open[2]、High[2]、
15
Low[2]、close[2],表示第3根K线蜡烛的开盘价、最高价、最低价、收盘价
Open[3]、High[3]、Low[3]、close[3],表示第4根K线蜡烛的开盘价、最高价、最低价、收盘价
Open、High、Low、close,表示第i+1根K线蜡烛的开盘价、最高价、最低价、收盘价
以此类推。。。。。。
注意:这些是数组,用的是方括号。
二、预定义变量
买入价、卖出价是实时价格,MT4用预定义变量Ask和Bid表示,数值类型为double双精度
还有一些预定义变量,如:
Bars 表示图表中的蜡烛数,类型为int整数型
Digits 表示当前货币对的小数位,类型为int整数型,无日元币对为4,有日元币对为2,黄金石油等一般也为2
Point 表示当前货币对的点值,类型为双精度double型,,。与Digits正好相反。
三、指标函数
1、价格、成交量、时间
它们都有三个参数:货币对名、K线周期、位置序号
开盘价:iOp
17
en(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分钟