MT4编程初级手册课件docWord格式.docx
- 文档编号:14640592
- 上传时间:2022-10-23
- 格式:DOCX
- 页数:14
- 大小:23.82KB
MT4编程初级手册课件docWord格式.docx
《MT4编程初级手册课件docWord格式.docx》由会员分享,可在线阅读,更多相关《MT4编程初级手册课件docWord格式.docx(14页珍藏版)》请在冰豆网上搜索。
六、加加“++”
自增运算符,表示把符号前的变量值加1,例如:
“i++;
”实际上进行的运算就是:
“i=i+1;
的简写,表示把i的值加1。
七、加等于“+=”
表示把符号后的值加到符号前的变量中。
例如“i+=2;
”,实际进行的运算就是“i=i+2;
”的
简写,表示i的值加2。
八、双等号“==”
逻辑判断符,等于号。
用于逻辑判断,双等号两边值相等,则返回布尔值“真-true”;
双等
号两边值不相等,则返回布尔值“假-false”。
九、叹号等号“!
=”
逻辑判断符,不等于号。
用于逻辑判断,不等号两边值不相等,则返回布尔值“真-true”;
不等号两边值相等,则返回布尔值“假-false”。
十、“&
&
逻辑判断符“与”,“并且”。
十一、“||”
逻辑判断符“或者”。
十二、大括号“{}”
用以表示函数体,在其中写函数的语句。
{}内部为函数体语句。
MT4编程初级手册(3):
自定义变量
一、自定义变量在使用前,必须先声明(定义),向系统声明变量的类型和名称。
创建时可同时进行赋值(赋默认值),也可以不赋值。
MQ语法中自定义变量的名称可以使
用中文字符。
例子:
intflag;
创建一个整型变量,变量名为“flag”。
bool是否报警=flase;
创建一个布尔型变量,变量名为“是否报警”,同时,赋初值“flase”
二、变量类型和类型定义关键词
自定义变量的基本类型有:
1、整形(int):
就是整数,包括负整数;
2、双精度浮点数(double):
可以简单地理解为带小数位的数;
3、字符串型(string);
4、布尔型(bool):
其值分别为“true、false”,即“真、假”,也可以写成“1、0”(1真,0
假)。
类型定义词仅在创建和声明变量时时候使用,后面使用再变量时,如进行运算时,就不能
再加这些类型定义词了。
三、附加变量(参数)
附加变量就是在程序完善后投入使用时,变量值允许用户自由更改的变量,一般用作程序
参数。
一般指标,例如MACD(12,26,9)参数输入就是通过附加变量实现的,(12,26,9)分别为三个
附加变量值。
定义附加变量只需在变量定义语句前加“extern”
例:
externint时间框架=9;
创建一个整型附加变量,变量名为“时间框架”,默认值为9,
允许用户在程序外部修改参数值,或进行参数优化。
MT4编程初级手册(4):
自定义函数
大家可以将自定义函数与数学函数在本质上看作是是一致的,在程序中需要用到的地方直接
以函数名来调用。
例如:
数学函数fuc(x,y)=5x+6y(x,y为正整数)写成程序语句就是:
doublefuc(doublex,doubley){
doubletemp;
temp=5*x+6*y;
return(temp);
}
一、同自定义变量一样,自定义函数在付诸使用前,也必须先声明设立,应定义其返回值类
型、名称、参数和函数体(运算处理语句)。
函数返回值类型、名称、参数位于的函数头部(参数间以逗号分隔),
大括号中的是运算语句或者处理语句,也就是函数体部分。
return语句为函数结束语句,return后面的括号中的值为函数返回值,即函数运算处理结果。
在上面例子中,double为函数类型,表示该函数的返回值(运算结果)是小数;
x,y为参数,由于自定义变量使用之前都必须先声明,否则函数不知道参数的类型,所以要
加上类型定义关键词double;
fa为函数名,有了函数名,我们就可以在需要使用的地方用fa(2,1)的格式来调用此函数;
函数体部分有三个语句:
第一句,定义一个整形变量temp(函数内部使用的变量);
第二句,用我们设定的规则计算temp的值;
第三句,函数结束,返回调用点,以temp的值作为本函数返回值。
此函数也可以简写为:
doublefa(doublex,doubley){return(5*x+6*y);
二、函数的类型与类型符
函数的类型就是函数返回值(运算结果)的类型,与自定义变量类型一致。
包括整型(int)、双精度浮点型(double)、字符串型(string)、布尔型(bool)等,
还有一种函数是以函数运行或进行一定的处理为目的,运行结束后不需要返回值也没有返
回值的,则函数类型可以在声明中写成void(无值型)
三、函数中如果需要定义自定义变量,那么此变量作用域仅在本函数内部,函数运行结束时,
这个自定义变量也就自动注销了。
上例中,有x、y、temp三个自定义变量,在函数运行时被声明创建,在函数运行结束的时
侯自动消失,仅在函数内部有效,与函数外部无关,外部不可使用这些变量,需要注意的是
外部可以使用与内部同名的变量但不影响内部的变量,不过为了程序的清晰性,不建议大家
这么做。
四、函数的调用
函数调用非常便捷,只要函数名正确,参数个数一致,类型相同就能够正确的调用。
如我们前面创建了一个fa(x,y)函数,在程序的别处我们可以用ft(4,5)等样式来调用fa(x,y)
函数运算求值。
调用时,传递参数值给fa(x,y)函数(按次序把4传给x,把5传给y),返回结果22后继续
向下执行主程序。
MT4编程初级手册(5):
自定义数组
一、数组是一组同类型变量的集合,可以以一个名称同时存储多个数值,由索引来调用,在
实现我们EA的算法时是一个非常重要的工具。
intarrai[5]={5,4,3,2,1};
这是一个数组名为arrai、包含了5个元素的整数型数组(即数组长度length为5),可以同时
存储5个数据。
二、自定义数组也必须遵循“先声明,后使用”原则
声明(创建)时,必须设置类型与名称;
声明(创建)时,数组的数据元素个数可以设定也可以不设定;
数组中第一个元素的索引编号为0,第二个为1,以此类推。
编号使用方括号跟在数组的后
面;
在这上例中arrai[0]的值为5、aa[1]的值为4、aa[2]的值为3、aa[3]的值为2、aa[4]的值为
1.
声明(创建)数组的同时,可以赋初始值,也可以不赋初始值。
intaa[];
创建数组aa,不指定数据元素的个数;
intbb[10];
创建数组bb,设定数据元素为10个,不赋给这些数据元素初始值;
intcc[3]={3,4,5};
创建数组cc,设定数组元素为2个,并赋给初始值;
赋值后,cc[0]的值为3、cc[1]的值为4、cc[2]的值为5;
intdd[7]={5,6,7};
创建数组dd,设定数组元素为7个,但只给前3个元素赋初始值。
三、数组使用时的赋值
数组的赋值必须指定明确的将要赋值对象的索引,除新建数组时可以批量赋值以外,数组
元素必须一个一个地赋值。
cc[1]=5;
这个是对数组cc的第2个元素cc[1]([0]是第1个,[1]表示第2个)重新赋值为5。
在这里,不需要整数型变量定义符int,
这样,数组cc原有三个值{3,4,5}就变为{3,5,5}
四、数组的引用
数组是一系列相同类型的变量的集合,所以每次只能使用数组中的一个元素。
数组的引用必须指定明确的引用对象索引值,一次只能引用一个。
如果需要使用整列数组,
则必须逐个使用。
在程序中经常使用循环与数组相互配合来完成相应的功能。
数组arrai[5]的值为{5,4,3,2,1}
我们用数组名称arrai加索引值来引用数组arrai中的值:
当i=0时,aa[i]的值为5;
当i=1时,aa[i]的值为4;
当i=2时,aa[i]的值为3;
当i=3时,aa[i]的值为2;
当i=4时,aa[i]的值为1;
MT4编程初级手册(6):
市场数据取值
一、预定义数组(MT4已经预先定义好了的,可直接调用)
开盘价、最高价、最低价、收盘价、成交量等市场历史数据,每根K线实体都各自有一个,
所以必须使用数组来调用,MT4有几个预定义数组,预定义的意思就是这些数据都是被准
备好了的,EA的开发者可以直接使用:
预定义数组:
开盘价Open[]、最高价High[]、最低价Low[]、收盘价close[]、成交量Volume[]、
K线所属时间Time[]
类型为双精度浮点double型(即精确小数)
这里有一个引用顺序或位置的问题,从右边起第一根K线实体(即最新的K线)的索引为0,
第二根K线索引1,第三根K线索引3,以此类推,也就是说从右向左倒着数过去,最近的
数值小,而越远的数值越大。
Open[0]、High[0]、Low[0]、Close[0],表示最新的开盘价、最高价、最低价、收盘价;
Open[1]、High[1]、Low[1]、close[1],表示第2根K线蜡烛的开盘价、最高价、最低价、
收盘价(也就是昨天);
Open[2]、High[2]、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表示图表中的K线数,类型为int整数型;
Digits表示当前货币对的小数位数,类型为int整数型,无日元币对为4(位),有日元币
对为2(位),黄金石油等一般也为2(位);
Point表示当前货币对的点值(相当于最小变动价位),类型为双精度浮点double型,无日
元币对为0.0001,有日元币对为0.01。
与Digits正好相反。
三、指标函数
1、价格、成交量、时间
它们都有三个参数:
货币对名(相当于品种名)、K线时间框架、位置序号。
开盘价:
iOpen(symbol,timeframe,shift)双精度浮点double型;
收盘价:
iClose(symbol,timeframe,shift)双
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MT4 编程 初级 手册 课件 doc