专栏首页EA编程速成教程【漆学军】EA编程速成教程(1)准备知识
原创

【漆学军】EA编程速成教程(1)准备知识

EA编程速成教程要求你必须了解并具备如下一些知识和能力:

第一、需要具备一定的编程基础,最好是熟悉任意一门传统编程语言,比如说C语言,VB等等,都可以,需要了解程序的逻辑。

第二、你需要了解MT4是什么,MT4就是MetaTrader 4外汇交易软件。

第三,你需要了解EA是什么,我相信您肯定知道什么是EA,EA就是Expert Adviser(智能交易系统),EA就是使用MQL4语言编写的程序,EA程序使用在MT4软件上面,可帮你自动进行外汇黄金期货交易,至于什么时候交易,怎样买卖,什么时候平仓等等问题,就看你的EA代码是怎样写的了。EA本身没有分析判断能力,我们写EA的人想要让EA具备什么能力,EA就可以具备什么能力。 什么是速成教程? 就是教会你在很短很短的时间内就可以学会如何编写EA,这个时间究竟有多长,在于你的基础和理解能力。 预计快的话1到3天,慢的话5到10天即可。 什么叫“易学难精”? 就是你很快的就上手,难在成为厉害的高手。 这需要时间去多多看别人的代码,多多写自己的代码。 久而久之你就可以是EA编写高手了。

学会了EA编程之后,建议先去为别人写写代码,一来可以自己多多练手,二来可以搜集各种各样的策略,最终为自己设计策略编写EA服务。

下面进入正题,首先来看看一个MT4是什么样子的。

MetaTrader4软件界面

在MT4软件上点“工具”菜单,即可看到“MQ语言编辑器”,点击即可打开

MetaEditor

我们新建一个空的EA程序,系统默认自带了部分EA属性和3个函数如下:

默认空的EA程序代码

我们来对这段代码做个简单的解释:

1到5行,还有10,11,12,20,21,22等等,由双斜杠(“//”)开头的行为注释行,程序不会执行,只会在编辑代码的时候帮助我们了解程序。

6,7,8,9行是由“#property”开始,property在英文里面是属性的意思,代表这几行展示了EA的相关属性。

13到19行是初始化函数OnInit(),意思是EA刚被加载到图表上去正是运行之前执行的一些初始化操作。

23到27行是反初始化函数OnDeinit(),细心地朋友可以发现,这个函数和初始化函数非常相似,就是在Init前面加了个De,所以被称为反初始化函数,此函数在关闭MT4,卸载EA之后执行一次。

31到35行为EA的tick函数,意思就是加个每波动一次,执行一次函数体里面的代码。 什么是“.mq4”? EA制作好了就save成.mq4的文件 这文件是程序源码文件,可以修改的 什么是“.ex4”? EA制作好了 按“编写”就会自动save成.ex4的文件 这文件是不可以被修改的 这文件是加密的 可以出售的文件。

【漆天编程】

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【漆学军】EA编程速成教程(2)第一个程序:下单

    大家好,我是漆天编程团队的漆学军,也是MT4专家论坛的创办者,下面是我为大家准备的《EA编程速成教程》第二课。

    漆学军
  • 【漆学军】EA编程速成教程(4)修改止损止盈

    大家好,我是漆天编程团队的漆学军,也是MT4专家论坛的创办者,下面是我为大家准备的《EA编程速成教程》第四课。

    漆学军
  • 【漆学军】EA编程速成教程(3)设置EA属性

    大家好,我是漆天编程团队的漆学军,也是MT4专家论坛的创办者,下面是我为大家准备的《EA编程速成教程》第三课。

    漆学军
  • Salesforce如果做企业架构

    当我们说企业架构(EA)会引发大家的很多共鸣,从我们需要他,到我们试过,最后到它根本没用。CIO,CTO,首席架构师和业务功能的Leader一般都会从过去的经验...

    臭豆腐
  • Cookie

    2.Chrome浏览器中F12打开,开发者工具 —— Application面板中查找cookie即可

    jinghong
  • Deeplearning4j库学习

    一、基础知识(了解) 背景知识:     如官网描述,dl4j-examples含有丰富的深度学习神经网络应用案例,这是一个为Java和Scala编写的首个商...

    sparkexpert
  • jQuery进阶,$.Deferred() 延迟对象

    JS里面有大量的异步方法,写着写着,代码就会变得>>。多层嵌套的回调,很影响后续代码的维护,也许今天你还记得这块回调逻辑,明天你就很有可能被这回调姿势给坑了。

    libo1106
  • 简单讲解《前端模块化》(一)

    也就是后来的 common.js ,AMD, es6 ,CMD这些。。这些就下次再说了,

    web前端教室
  • JMeter,判断字符串是否存在该集合

    在学习 JMeter 的 JDBC 模块中,遇到了 ArrayList 和 String 的之间需要对比的问题,折腾我一周时间了。这个问题如果用代码解决的话,一...

    企鹅号小编
  • 对幕布的几条改进建议

    (由于微信公众号外部链接的限制,文中的部分链接可能无法正确打开。如有需要,请点击文末的“阅读原文”按钮,访问可以正常显示外链的版本。)

    王树义

扫码关注云+社区

领取腾讯云代金券