外汇返佣网

您当前的位置:第一外汇返佣网 > 外汇学习 > 外汇百科 >

外汇百科

MT5编程实例课程(阿郎)第一讲:Hello,MT5

时间: 2023-06-12 19:22 文章来源: 外汇返佣网 点击次数:

  MT5的推出,实在是广大汇友之福!新增的众多强大功能,相信会让大家在交易时如虎添翼。废话不多说,沿袭MTx编程实战开发系列的惯例,先来个小例子,让大家感受一下MT5的强大。

  选择菜单上”Tools->MetaQuotes Language Editor”选项,启动MQL5编辑器MetaEditor5(以下简称ME5),或者在MT5中直接按快捷键F4,同样可启动。进入ME5后,点击工具栏上的“New”按钮

  在弹出的对话框中选择Expert Advisor选项:

  点击“下一步”,输入EA的名称:

  这里我们将第一个EA例子命名为Lesson1,输入后点击“完成”按钮,即可生成Lensson1.mq5文件,一切与ME4基本一致。

  让我们来观察一下Lesson1.mq5的代码结构,与MT4时代自动生成的EA代码基本一样,也是三个函数,其功能也是一样的,区别在于名字变了,MT4时代的是init、deinit和start,而MT5中生成的是OnInit、OnDeinit和OnTick。On我们可以理解为“当。。。”的意思,那么这三个函数就很形象了,分别为:当初始化、当程序结束和当价格跳动。这里作个补充:MT5中虽然增加了Timer机制,但默认仍然是基于Tick驱动事件的,Timer机制需自行启动(最后这段话看不懂?没关系,以后再用例子说明,这里不看也罢,呵呵)。

  好了,框架有了,那么我们想让第一个例子Lesson1实现些什么功能呢?我是这样打算的:让Lesson1在图表上添加一个按钮,当点击这个按钮时,会弹出一个对话框,对话框的内容是“Hello, MT5!”。有了目标就好办,我们继续前进!

  首先我们让Lessson1具备在图表上添加按钮的功能。我们在OnInit函数中添加如下代码:

  输入完毕后,按下编译快捷键F5,如输入无误,会自动切换到MT5图表:

  如图1-3勾上两个选项,点“确定”,EA就加载到图表上了。这时我们可以发现,在图表中多了个按钮。

  点击这个按钮,什么都没发生,那是因为我们还没有为这个按钮添加处理代码。下面,我们继续为Lesson1添砖加瓦。

  在OnTick函数下面添加一个函数OnChartEvent,并输入如图1-5所示代码:

  输入完毕,再次按下编译快捷键F5,然后点击图表上的按钮,这时就会弹出个对话框,内容为”Hello,MT5!”:

  至此,我们的Lesson1就完成了!怎样,MT5的功能不错吧?

  下面,为大家讲解一下上面的代码含义。首先我们看看在OnInit函数里面添加的代码

  如果读者有MT4编程基础的话,ObjectCreate函数就非常熟悉了(如不熟悉请参阅笔者的《MT4编程实战开发系列》,创建一个Object(物件),外汇开户网,OBJ_BUTTON是MT5新增的参数,意即创建一个Button1(按钮)。

  ObjectSetInteger(0, Button1, OBJPROP_XDISTANCE, 250);

  ObjectSetInteger(0, Button1, OBJPROP_YDISTANCE, 100);

  上面两句分别设定了Button1的X坐标和Y坐标。注意:在MT4时代,Object的所有属性都是用ObjectSet函数来设定的,在MT5中,将其细分为ObjectSetInteger、ObjectSetDouble和ObjectSetString三个函数了,三权分立,各司其职。

  ObjectSetString(0, Button1, OBJPROP_TEXT, Say);

  ObjectSetString函数功能为设定Object的string类型(字符串类型)属性,这里设置Button1上面的文字。补充一下:MT5中对中文的支持仍然很差,这里如果设置为中文则无法显示,希望后续版本有所改善

  ObjectSetInteger(0, Button1, OBJPROP_STATE, 0);

  最后,设定OBJPROP_STATE属性,这个属性控制着Button1的显示状态,设置为0,表示默认显示为弹起的,大家可将其设为1,看看效果。

  综述,上面的几句代码创建了一个叫做Button1的按钮,并设置了x,y坐标及按钮文字、显示状态。

  接着,我们来看看新增的函数OnChartEvent。如上所述,OnChartEvent顾名思义就是“当图表上发生了事情时。。。”,OnChartEvent的参数比较多,也比较复杂,这里暂时不解释,后面有机会再细谈,这里我们需要知道的是:在MT5中,当图表上发生了任何事情,如点击按钮、输入框中输入文字、拖动Object、按下键盘等等,就会调用OnChartEvent函数。那么,我们只需守株待兔,在OnChartEvent函数中检测Button1是否被按下:

  if (id==CHARTEVENT_OBJECT_CLICK sparam==Button1)

  这句,意思就是当图表上发生了事情,如果是Object被按下,且Object的名字是Button1,第一外汇返佣网,则满足条件,继续下面的操作:

  MessageBox(Hello, MT5!, Button1, MB_OK);

  MessageBox函数功能是弹出一个对话框,其中参数这里就不详述了

  看起来Lesson1似乎工作得不错,但仔细看看,外汇返佣,按钮在按下之后不会自动弹起来!为了解决这个问题,返佣网,我们把OnChartEvent函数改进一下:

  还记得OBJPROP_STATE属性吧,控制按钮的显示状态,那么这里的意思就是显示完MessageBox后,再次把按钮的显示状态恢复为弹起。至此,Lesson1开发全部结束,敬请关注MT5编程实战开发系列第二讲!

  作者:阿郎(shawnyau)

第一外汇返佣网-最专业的外汇返佣平台外汇返佣:交易者不可忽

开户返佣提示
选择平台前,建议重点查看监管主体、账户类型、点差成本、出入金方式和返佣周期。不同平台交易条件不同,开户前请先咨询确认。
申请返佣
×

第一外汇返佣网声明
尊敬的投资者:
头条声明:您需要充分了解您投资外汇的经济承担和风险自担能力,否则建议远离外汇市场。
1. 因平台考核有风险,考核受管理层决策及人事变动影响较大,因此返佣高低将可能会受影响,此风险我们概不负责。
2. 所有平台默认均为月结算,周结与半月结算均是在平台商代理授权允许下我们提前透支佣金,我们有权随时终止周结算或调整周结算时间。
3. 第一外汇返佣网并非外汇平台,只提供免费的外汇信息资讯服务、外汇平台咨询及降低交易成本咨询。我们不接触客户资金和资料,不邀约任何人投资外汇和其他产品。
4. 如有滥用平台赠金、平台漏洞或违反平台交易规则导致处罚者,我们有权不负责协调处理。
5. 因佣金统计错误、信用卡漏洞或 Skrill 漏洞入金而被平台扣除佣金,我们有权进行追偿。
6. 部分平台禁止代客理财、刷延迟、刷错价、刷单、AB仓、赠金套利等,如有此类交易手法,请先向客服了解清楚。
7. 禁止任何代理以“第一外汇返佣网”名义进行商业活动,一经发现将取消代理资格,并追究相应责任。
8. 当您填好此表后,将正式成为我们代理或返佣直客,本人或客户均可享受返佣服务。
9. 我们确认您提交的账号后,会在提交返佣信息的邮箱中再次发送风险忠告,请认真阅读。
10. 第一外汇返佣网有权随时结束返佣,返佣属于平台商授权代理允许下的市场回馈奖励费用,不构成任何投资承诺。

*联系手机:
*Q Q号码:
*开户平台:
*银行卡号:
*开户邮箱:
*开户银行:
*MT4账号:
*开户姓名: