交易机器人结构
在完成此前的系列课程后,您已了解了MetaTrader 5中交易机器人的类型。 您还知道了在MT5里应该去哪里找到这些主要的算法交易工具,以及如何设置它们。 在这一讲里,我们会来探索一下交易机器人的骨架。 我们可以向您保证,在这一讲之后,您对MQL5编程的恐惧会开始消退!
一套交易机器人会包含些什么?
首先,我们来通过MetaEditor观察下机器人的结构。
看起来有点吓人,是不是? 然而,其实,所有的交易机器人都有着一致的核心元素,这些也正是您需要了解的。
交易机器人可以分成四大模块:
- Setup
- OnIntIt
- OnDeinit
- OnTick
让我们来分别仔细的看下这些元素。
Setup
机器人的这部分存放的是所有的管理信息。 在这里,您可以写下注释,定义变量 (拥有专有名称的不同类型信息),跟踪变化列表,声明所有权。
在上方截图中,是一套Setup代码的范例。 其中包含有版权、机器人的主要属性、以及将特定文件内容插入您EA系统的#include命令。 此外,在这部分,我们还会通过#input命令定义主要的输入数据。
OnInIt
第二个部分叫做OnInit (OnInitiation)。 这部分会在您第一次启动EA的时候运行。
在这部分,您可以看到程序里那些在您第一次运行后会被执行的命令。 关于这些命令,我们会在之后的课时里为大家讲解!
OnDeInIt
接下来的部分叫做OnDeinitiation,或者简称OnDeInIt。 这部分会在EA关机的时候运行。
OnTick
这是整套EA里最有意思的部分。 其中包含三个主要部分,它们每一滴答(tick)就会更新一次 (价格的新信息)。 它们是entries、exits、以及sizing。这些模块对于任何EA来说都十分重要,因为它们会告诉您何时做多、什么价位做空、以及何时平仓。
每次一个新滴答进入您的MetaTrader 5平台,这些代码就会开始运行。 也就是说,如果报价、要价、或成交量出现变化,这个变化会同样影响到您代码里的OnTick部分。
在上方截图中,您可以看到机器人会检查最近一次交易处理时间和其它数据。
那么,如果您是计算机,您会怎么来解读这些代码架构?
首先,您需要调用OnInit模块并运行一下里头的全部内容。 您需要设置所有您策略所需的变量和参数。 这些操作只执行一次。
在以上操作执行完毕后,您会进入OnTick模块。 首先,是检查下是否有任何需要退出的交易。 之后,检查是否有可以进场的交易。 最后,增减仓算法会帮您确定仓位的大小。
一旦您要关闭EA,就会调用OnDeInIt模块。 这部分会清除走势图中的图像,并删除一切链接到EA本身的内容。
文末小结
综上,如您希望搭建一套交易机器人,您需要彻底了解它的结构。 走运的是,所有机器人都有着差不多的结构,您可以一步步的来将其解构。