购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 EA运行规则

我们做任何事情都要遵循一定的规则,无规矩不成方圆,EA的运行也是一样的道理。比如有的EA成百上千行,如果没有一套约束机制,EA一会儿读这一句,一会儿执行那一句,最终的结果就是一团糟。没有规则地放任EA运行很难达到我们编程的目的。因此学习编程要知道EA是怎样运行的,有什么规则要遵守。

EA执行程序语句按照从上到下、从左到右的顺序。

我们以图2-2所示的 EA 为大家做一个演示。下面的程序是一个简单的策略,该策略的一个亮点就是主程序使用的是80%的中文,只要你能看懂中文、略懂英文,就能看明白该策略。我们后续的编写都将采用这种形式,这也是本书的一个特点。

图2-2 EA运行规则

在这个程序中只是将主程序模块做了截图,其他的模块构成我们的编写模板,本书所有的策略都是在编写模板上进行的,EA其他模块基本相同,区别就在于主程序模块。按照第2.1节讲到的EA结构,主程序模块是策略的核心,它有两种运行函数,在这个例子中用到的是 OnTick(),意思是每当货币对的价格变动一次,主程序就执行一次。

下面我们对这个策略进行详细讲解,帮助大家深刻认识 EA 的运行规则。按照执行顺序从上到下,从左到右的规则,EA依照下列顺序执行相应的程序。

第一步执行“货币对=Symbol()”。意思是先给EA明确要操作的货币对名称。

第二步执行“户口检查管理()”。该子函数是模板中的一个,存放在子函数存储模块,主要完成有关该货币对买卖单数量、买卖单盈亏的计算。

第三步执行“if(买单数量==0){买上();}”。意思是如果买单的数量为0,也就是没有买单,那么就执行“买上()”,完成一个下买单的动作。

第四步执行“if(买单数量>0&&买单盈利>0){关闭买上();}”。意思是如果市场上该货币对有买单,同时买单的盈利大于零,那么就执行“关闭买上()”,把该货币对全部买单平仓。

第五步执行“if(卖单数量==0){ 卖下();}”。意思是如果卖单的数量为0,也就是没有卖单,那么就执行“卖下()”,完成一个下卖单的动作。

第六步执行“if(卖单数量>0&&卖单盈利>0){关闭卖下();}”。意思是如果市场上该货币对有卖单,同时卖单的盈利大于零,那么就执行“关闭卖下()”,把该货币对全部卖单平仓。

每当加载EA的货币对价格变动一次,EA就按照上面的步骤运行一次,一直循环执行,直到退出程序。

根据 EA 运行的顺序规则,我们在编写过程中不能随心所欲地编写,一定要在 EA 运行规则的框架下操作。如果在编写的过程中不是按照上面的步骤顺序操作的,比如把第一步和第二步的程序放置到后面运行,那么造成的结果则是不会开单。因为程序只有运行过第一步和第二步才能计算出下面要用到的自定义变量。 PhJLOIi8174nmVqLHkslMOWOWzoruKsfS/4QZk5v2Dv8nnydT5ZgoyWNlsv9wSYG

点击中间区域
呼出菜单
上一章
目录
下一章
×