- EA 交易的主要事件:OnTick
- 基本原理和概念:订单、交易和仓位
- 交易操作类型
- 订单类型
- 按价格和数量划分的订单执行模式
- 挂单到期日期
- 期货订单的保证金计算方法:OrderCalcMargin
- 估算交易操作的利润:OrderCalcProfit
- MqlTradeRequest 结构体
- MqlTradeCheckResult 结构体
- 请求验证:OrderCheck
- 请求发送结果:MqlTradeResult 结构体
- 发送交易请求:OrderSend 和 OrderSendAsync
- 买入和卖出操作
- 修改仓位的止损和/或止盈水平
- 跟踪止损
- 平仓:全部和部分
- 反向平仓:全部和部分
- 挂单
- 修改挂单
- 删除挂单
- 获取活动订单列表
- 订单特性(现行和历史)
- 用于读取活动订单特性的函数
- 按特性选择订单
- 获取仓位列表
- 仓位特性
- 用于读取仓位特性的函数
- 交易特性
- 从历史中选择订单和交易
- 用于从历史中读取订单特性的函数
- 用于从历史中读取交易特性的函数
- 交易类型
- OnTradeTransaction 事件
- 同步和异步请求
- OnTrade 事件
- 监测交易环境变化
- 创建多交易品种 EA 交易
- EA 交易的优势和局限性
- 在 MQL 向导中创建 EA 交易
仓位特性
所有的仓位特性根据值的类型分为三组:整数型及其兼容型,实数型和字符串型。它们用于读取 PositionGet 函数,其类似于 OrderGet 函数。我们将在下一节介绍函数本身,此处我们将给出所有可用于在这些函数的第一个参数中指定的特性标识符。
整数型特性在 ENUM_POSITION_PROPERTY_INTEGER 枚举中提供。
标识符 |
说明 |
类型 |
---|---|---|
POSITION_TICKET |
仓位订单号 |
ulong |
POSITION_TIME |
开仓时间 |
datetime |
POSITION_TIME_MSC |
开仓时间(毫秒) |
ulong |
POSITION_TIME_UPDATE |
仓位变化(交易量)时间 |
datetime |
POSITION_TIME_UPDATE_MSC |
仓位变化(交易量)时间(毫秒) |
ulong |
POSITION_TYPE |
仓位类型 |
ENUM_POSITION_TYPE |
POSITION_MAGIC |
仓位 Magic 号(基于 ORDER_MAGIC) |
ulong |
POSITION_IDENTIFIER |
仓位标识符;分配给每个新开设仓位的唯一编号,在其整个寿命周期内不会改变。 |
ulong |
POSITION_REASON |
开仓原因 |
ENUM_POSITION_REASON |
通常,POSITION_IDENTIFIER 对应于开仓订单的订单号。仓位标识符在每个开仓、更改或平仓的订单 (ORDER_POSITION_ID) 和交易 (DEAL_POSITION_ID) 中指明。因此,使用该标识符来搜索与仓位相关的订单和交易非常方便。
如果订单部分履行,那么剩余交易量的仓位和活动挂单以及匹配的订单号可以同时存在。而且此类仓位可以及时平仓,在下一次补仓剩下挂单时,会再次出现同样订单号的仓位。
在净额结算模式下,用一笔交易反转仓位视为仓位变更,而不是新的变更,因此保留 POSITION_IDENTIFIER。只有在零交易量中平仓前一个仓位后,交易品种上的新仓位才是可能的。
POSITION_TIME_UPDATE 特性仅响应交易量的变化(例如,部分平仓或持仓增加的结果),而不响应其他参数,如 Stop Loss/Take Profit 水平或掉期费用。
仓位只有两种类型 (ENUM_POSITION_TYPE)。
标识符 |
说明 |
---|---|
POSITION_TYPE_BUY |
买入 |
POSITION_TYPE_SELL |
卖出 |
ENUM_POSITION_REASON 枚举中提供了仓位原点的选项,即仓位如何打开。
标识符 |
说明 |
---|---|
POSITION_REASON_CLIENT |
触发从桌面终端下达的订单 |
POSITION_REASON_MOBILE |
触发从移动应用程序下达的订单 |
POSITION_REASON_WEB |
触发从 WEB 平台(浏览器)下达的订单 |
POSITION_REASON_EXPERT |
触发由 EA 交易或脚本下达的订单 |
实数型特性收集在 ENUM_POSITION_PROPERTY_DOUBLE 中。
标识符 |
说明 |
---|---|
POSITION_VOLUME |
仓位交易量 |
POSITION_PRICE_OPEN |
仓位价格 |
POSITION_SL |
止损价格 |
POSITION_TP |
止盈价格 |
POSITION_PRICE_CURRENT |
当前交易品种价格 |
POSITION_SWAP |
累计掉期 |
POSITION_PROFIT |
当前盈利 |
当前价格类型对应于平仓运算。例如,多头仓位必须通过卖出平仓,因此在 POSITION_PRICE_CURRENT 中跟踪其 Bid 价格。
最后,仓位支持以下字符串型特性 (ENUM_POSITION_PROPERTY_STRING)。
标识符 |
说明 |
---|---|
POSITION_SYMBOL |
开仓的交易品种 |
POSITION_COMMENT |
仓位注释 |
POSITION_EXTERNAL_ID |
外部系统中的仓位 ID(交易所) |
在看了仓位特性列表之后,我们可以开始来看读取这些特性的函数。