设为首页 收藏本站 切换语言

MT4编程入门:自定义变量、函数  

| 发表于 2020-8-18 07:00:02 | 显示全部楼层 |复制链接
最后由 EA学院 于 2020-7-13 21:58 编辑

如果你是刚入门学习外汇EA编程或者对EA编程感兴趣的朋友,都会看到EA源码里面有很多的变量问题,这也是EA编程初学者的一个很大门槛,其实对于自定义变量并不难,以下是小编为您总结的-MT4自定义变量及函数。

MT4编程入门:自定义函数

一、自定义变量在使用前,必须先创建(定义),设定变量的类型和名称。

创建时可同时赋值,也可以不赋值。名称可以使用中文字符。

例:
int  mark;创建一个整型变量,变量名为“mark”。
bool 是否报警=true;  创建一个逻辑型变量,变量名为“是否报警”,同时,赋初值“true”

二、类型和类型定义词

EA自定义变量的基本类型有:

1、整形(int):就是整数,包括负整数
2、双精度小数(double):可以简单地理解为带小数位的数
3、字符串型(string)。
4、逻辑型(bool):其值分别为“true、false”,即“真、假”,也可以写成“1、0”(1真,0假)。

类型定义词仅在创建变量时使用,后面使用变量时,就不能再加类型定义词了

三、附加变量

附加变量就是在程序投入使用后,变量值允许用户自由更改的变量,一般用作程序参数。
一般指标,例如MACD(12,26,9)参数输入就是通过附加变量实现,(12,26,9)分别为三个附加变量的默认值。
定义附加变量只需在变量定义语句前加“extern”

例:
extern int 周期=9;  创建一个整型附加变量,变量名为“周期”,默认值为9,允许用户在程序外部修改参数值

MT4编程入门:自定义函数

自定义函数与数学函数在本质上是一致的

例如:
数学函数ft(x,y)=3x+2y (x,y为正整数) 写成程序语句就是:
int ft(int x,int y)
{
     int temp;
     temp=3*x+2*y;
     return(temp);
}

一、和自定义变量一样,自定义函数在使用前,也必须先设立,以定义其类型、名称、参数和运算语句。

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

函数体部分有三句:

第一句,定义一个整形变量temp
第二句,计算temp的值
第三句,函数结束,返回调用点,以temp的值作为本函数返回值。

此函数也可以简写为:int ft(int x,int y)  {return(3*x+2*y);}

二、函数类型与类型符

函数类型就是函数返回值(运算结果)的类型,与自定义变量类型差不多
有整型(int)、双精度型(double)、字符串型(string)、逻辑型(bool)等,
还有一种函数是以函数运行为目的,运行结束后不需要返回值也没有返回值的,则函数类型可以写成void(无值型)

三、函数中如果定义了自定义变量,那么此变量仅在本函数内部存在,函数运行结束时,自定义变量也就自动注销。

上例中,有x、y、temp三个自定义变量,在函数运行时创建,在函数运行结束时自动消失,仅在函数内部有效,与函数外部无关。

四、函数的调用

函数调用非常简单,只要函数名正确、参数个数一致、类型相同就能正确调用
如我们前面创建了ft(x,y)函数,则别处我们可以用ft(4,5)等样式来调用ft(x,y)函数求值。
调用时,传递参数值给ft(x,y)函数(按顺序把4传给x,把5传给y),返回结果23后继续执行主程序。
如果有帮助,就支持一下我呗
举报

评论 使用道具

精彩评论18

wang
DDD
| 发表于 2020-8-18 07:58:47 | 显示全部楼层
谢谢分享 学习了
举报

点赞 评论 使用道具

sk678
D
| 发表于 2020-8-18 12:34:47 来自手机 | 显示全部楼层
感谢分享,学习了
举报

点赞 评论 使用道具

摩羯羽人
DDD
| 发表于 2020-8-18 23:59:59 | 显示全部楼层
很好,很重要的学习内容
举报

点赞 评论 使用道具

lyldr
DDD
| 发表于 2020-8-26 09:07:56 | 显示全部楼层
谢谢分享
举报

点赞 评论 使用道具

txws
DD
| 发表于 2021-2-14 10:57:41 | 显示全部楼层
写得好
举报

点赞 评论 使用道具

thekof32
CC
| 发表于 2021-2-14 11:34:27 | 显示全部楼层
感谢分享,学习了
举报

点赞 评论 使用道具

beck168
DD
| 发表于 2021-10-4 22:16:31 | 显示全部楼层
谢谢分享
举报

点赞 评论 使用道具

秒秒007
DDD
| 发表于 2021-10-6 08:42:39 | 显示全部楼层
受教了
举报

点赞 评论 使用道具

tianping
DDD
| 发表于 2021-10-27 17:29:28 | 显示全部楼层
谢谢分享
举报

点赞 评论 使用道具

Jacquelinekxl
D
| 发表于 2021-10-29 11:13:56 | 显示全部楼层
不要未来函数就行
举报

点赞 评论 使用道具

a451780267
DDD
| 发表于 2021-10-29 19:03:55 | 显示全部楼层
感谢分享
举报

点赞 评论 使用道具

交易者
DDD
| 发表于 2022-1-8 21:05:15 | 显示全部楼层
感谢分享
举报

点赞 评论 使用道具

wltjmm
D
| 发表于 2022-2-4 20:49:59 | 显示全部楼层
想学,但是感觉好难
举报

点赞 评论 使用道具

nanaliu
CC
| 发表于 2022-5-26 15:00:46 | 显示全部楼层
看看。。学习学习。。。。
举报

点赞 评论 使用道具

mamapi
DD
| 发表于 2022-5-26 15:09:02 | 显示全部楼层
感谢分享
举报

点赞 评论 使用道具

刘先生io
未及格
| 发表于 2022-5-26 15:25:32 | 显示全部楼层
感谢分享
举报

点赞 评论 使用道具

ssbienhild
DD
| 发表于 2022-5-27 09:28:42 | 显示全部楼层
谢谢分享
举报

点赞 评论 使用道具

liubing1986
D
| 发表于 2022-5-27 10:26:57 | 显示全部楼层
洞箫愁绝翠屏间
举报

点赞 评论 使用道具

发新帖
EA交易
您需要登录后才可以评论 登录 | 立即注册

简体中文
繁體中文
English(英语)
日本語(日语)
Deutsch(德语)
Русский язык(俄语)
بالعربية(阿拉伯语)
Türkçe(土耳其语)
Português(葡萄牙语)
ภาษาไทย(泰国语)
한어(朝鲜语/韩语)
Français(法语)