脚本和服务的主要函数:OnStart
实用程序(脚本和服务)在终端中通过调用其唯一的事件处理函数 OnStart来执行。
void OnStart()
该函数没有参数,也不返回任何值。它仅作为从终端侧进入应用程序的入口点。
脚本通常用于在图表上执行一次性操作(稍后我们将探讨图表 API 提供的所有功能)。例如,脚本可用于执行以下操作:设置订单网格,反过来关闭所有盈利的未平仓头寸,自动应用图形对象标记或临时隐藏所有对象。
在脚本中,可以使用封装在无限循环中的持续性操作,但如前所述,必须始终检查停止标志 (_StopFlag) 并定期释放处理器 (Sleep)。这里需要记住的是,在关闭并重新启动终端后,脚本也必须重新运行。
因此,对于这类持续性活动,如果其与时间表无直接关联,则最好使用服务。服务的标准实现方式正是通过“无限”循环来完成。
在本书之前的章节中,几乎所有示例都是以脚本的形式实现。服务的其中一个示例是 GlobalsWithCondition.mq5程序,详见 使用全局变量同步程序章节。在下一节关于使用 ExpertRemove函数停止 EA 交易和脚本的内容中,我们还会看到另一个示例。