- EA 交易的主要事件:OnTick
- 基本原理和概念:订单、交易和仓位
- 交易操作类型
- 订单类型
- 按价格和数量划分的订单执行模式
- 挂单到期日期
- 期货订单的保证金计算方法:OrderCalcMargin
- 估算交易操作的利润:OrderCalcProfit
- MqlTradeRequest 结构体
- MqlTradeCheckResult 结构体
- 请求验证:OrderCheck
- 请求发送结果:MqlTradeResult 结构体
- 发送交易请求:OrderSend 和 OrderSendAsync
- 买入和卖出操作
- 修改仓位的止损和/或止盈水平
- 跟踪止损
- 平仓:全部和部分
- 反向平仓:全部和部分
- 挂单
- 修改挂单
- 删除挂单
- 获取活动订单列表
- 订单特性(现行和历史)
- 用于读取活动订单特性的函数
- 按特性选择订单
- 获取仓位列表
- 仓位特性
- 用于读取仓位特性的函数
- 交易特性
- 从历史中选择订单和交易
- 用于从历史中读取订单特性的函数
- 用于从历史中读取交易特性的函数
- 交易类型
- OnTradeTransaction 事件
- 同步和异步请求
- OnTrade 事件
- 监测交易环境变化
- 创建多交易品种 EA 交易
- EA 交易的优势和局限性
- 在 MQL 向导中创建 EA 交易
在 MQL 向导中创建 EA 交易
至此,我们即将学完有关开发 EA 交易的交易 API。在这一章中,我们探讨了各种示例,你可以将其作为你自己项目的起点。但是,如果你想从零开始创建 EA 交易,也不必真得“从零开始”。MetaEditor 提供了内置的 MQL 向导,可用于创建 EA 交易模板。此外,在 EA 交易的情况下,该向导提供了两种不同的方法来生成源代码。
我们已经在 MQL 向导和程序草稿一节中熟悉了该向导的第 1 步。显然,在第 1 步中,我们应选择要创建的项目类型。在上一章中,我们创建了一个脚本模板。之后,在关于指标的一章中,我们介绍了如何 创建指标模板。现在我们将考虑以下两个选项:
- EA 交易(模板)
- EA 交易(生成)
第一个选项更简单。你可以选择一个名称、输入参数及其所需的事件处理程序,如下面的截屏所示,但是在产生的源文件中不会有交易逻辑和现成的算法。
第二个选项更复杂。选择该选项将生成一个基于标准库的现成 EA 交易,该标准库在标准 MetaTrader 5 包中提供了头文件中的一组类。文件位于 MQL5/Include/Expert/、MQL5/Include/Trade、MQL5/Include/Indicators 及其他几个文件夹中。库类实现了最流行的指标信号、基于信号组合执行交易操作的机制以及资金管理和跟踪止损算法。对标准库的详细研究超出了本书的范围。
无论你选择哪个选项,在向导的第 2 步,都需要输入 EA 交易名称和输入参数。该步骤的外观与 MQL 向导和程序草稿一节中显示的内容相似。唯一需要注意的是,基于标准库的 EA 交易必须有两个强制参数(不可移除):Symbol 和 TimeFrame。
对于一个简单的模板,在第 3 步,除了 OnTick(始终会插入 OnTick)之外,建议选择将要添加到源代码的附加事件处理程序。
创建 EA 交易模板。第 3 步.其他事件处理程序
最后的第 4 步允许你为测试程序指定一个或多个可选的事件处理程序。将在下一章讨论这些事件处理程序。
创建 EA 交易模板。第 4 步.测试程序的事件处理程序
如果用户在该向导的第 1 步选择生成一个基于标准库的程序,那么第 3 步为设置交易信号。
生成现成的 EA 交易。第 3 步.设置交易信号
你可以在本 文档中了解更多信息。
第 4 步和第 5 步旨在将跟踪纳入到 EA 交易中,并根据预定义的方法之一自动选择手数。
生成现成的 EA 交易。第 4 步.选择跟踪止损方法
生成现成的 EA 交易。第 5 步.选择手数
当然,该向导并非万能工具,生成的程序原型通常也需要改进。但是,本章学到的知识会让你对生成的源代码更有信心,并可根据需要扩展。