实盘EA即使保持连接,也可能留下不完整的交易记录。解读利润前,应核对EA做了什么决策、发了什么请求,以及经纪商实际记录了什么。仅有已平仓盈利交易的截图,无法证明这条证据链。
在核对一致前,将决策证据、执行证据与账户会计记录分别处理。本指南提供可复现的审计示例,不提供监控EA、自动恢复控制器,也不证明盈利能力。运营监控可参阅心跳与告警指南。
1. 固定账户与EA运行范围
建立清单,标明经纪商服务器、账户、实盘或模拟模式、账户货币,以及标准或美分单位。记录EA构建版本、参数文件版本、运行标识、实际品种后缀、时间周期、评估区间及截止时点。共享报告中不要包含登录凭据。
在这个虚构示例中,一个身份明确的EA运行实例在USD账户交易EURUSD H1。窗口为所声明经纪商时钟的08:00–12:00。期初余额和净值均为$10,000,没有期初持仓。归属由运行清单确认,账户还允许另一个已识别主体交易。这是会计核对用数据,不是一套交易策略规则。
2. 保存同一截止时点的证据
保存EA原始决策与请求日志、Experts和Journal日志、所需范围的账户历史,以及持仓订单和账户快照。记录采集时间及来源覆盖区间。原始导出保持不变;修正或后续快照应另建版本。日志指南说明了终端文件。
只依据已记录的时间基准与偏移量统一时钟。来源事件时间与采集端接收时间应分别保留。时间戳接近不能证明因果关系或延迟。持续变化的实盘账户并非原子快照:标记采集期间发生变化的记录,并针对声明的截止时点再次核对。
3. 正确理解MT4订单池与字段
MODE_TRADES包含未平仓市价订单与挂单;MODE_HISTORY包含已平仓订单和已取消挂单。仅凭平仓时间为零,无法区分持仓敞口与挂单,还需检查订单类型。统计交易前,应明确筛选BUY与SELL市价记录。终端加载的历史取决于Account History的范围设置。
OrderSelect()会将订单数据复制到程序中;依赖最新字段前应重新选择。历史行位置不保证按时间排序。导出数据应使用明确时间戳和标识符排序,保留同时间记录与来源,不要根据终端行顺序推断决策顺序。
4. 匹配决策、尝试与经纪商订单
表格仅覆盖目标EA。D000记录于08:00,订单500于08:30平仓。D001记录于09:00,订单501于10:15平仓。10:00的D002明确记录为无信号。11:00的D003开立订单502,在12:00截止时仍持仓。这份数据中,每次入场尝试都唯一匹配到一笔经纪商订单。
| 决策 | 记录的信号 | 本地请求证据 | 经纪商订单号 | 审计分类 |
|---|---|---|---|---|
| D000 | SELL | Q0 · 已确认 | 500 | 已匹配 · 已平仓 |
| D001 | BUY | Q1 · 超时128 | 501 | 已匹配 · 已平仓 |
| D002 | 无信号 | 无请求 | — | 有记录的跳过 |
| D003 | SELL | Q3 · 已确认 | 502 | 已匹配 · 持仓中 |
共有4次已记录决策、3次入场尝试和3笔已匹配订单:2笔已平仓,1笔持仓中。不要把持仓订单当作缺失,也不要把无信号决策当作拒单。它们的统计分母不同。这些示意时间与方向不定义入场策略。
5. 再次尝试前先解决超时状态
错误128表示交易超时,并不确认经纪商拒绝了请求。在下方构造的事件序列中,本地返回超时前,BUY订单501已经存在。判断能否重试前,应在声明的账户中,凭可唯一匹配请求的证据,核对当前市价订单、挂单与历史记录。
存在并发订单时,仅靠时间和品种匹配并不充分。无法唯一确定结果时,将请求标为未解决,并阻止临时重复入场。运营升级处理和当前保护措施遵循现有账户风险政策;审计本身不授权清仓或放宽风险限额。
6. 确认归属与订单沿革
结合经纪商账户、订单号、品种、运行记录与已记录的Magic Number约定进行匹配。Magic Number不是EA版本标记,订单号也不是跨经纪商和账户通用的标识符。编号冲突、清单缺失和手动干预需要调查,不能方便地归给目标EA。共享账户时应检查投资组合归属。
一行历史记录不一定等于一次独立策略决策。部分平仓、剩余仓位记录和close-by操作,需要依据经纪商实际记录的沿革处理。跟踪原始与已平数量,避免重复统计,保留关联与修正,并明确标示未解决归属。此示例没有部分平仓或挂单。
7. 将已记账成本按实际符号只计入一次
表内金额均为USD。若选中的已平仓订单将成本记录在这些字段中,已记账净额为OrderProfit() + OrderCommission() + OrderSwap()。价格盈亏不包含佣金与掉期。应加上实际带符号数值,不要再次减去负数费用。订单602属于另一个已知主体,于11:30平仓。
| 订单号 | 归属 | 价格盈亏 | 佣金 | 掉期 | 已记账净额 |
|---|---|---|---|---|---|
| 500 | 目标EA | −25.00 | −2.00 | 0.00 | −27.00 |
| 501 | 目标EA | +40.00 | −2.00 | −1.00 | +37.00 |
| 602 | 其他主体 | +8.00 | −1.00 | 0.00 | +7.00 |
目标EA已平仓净额为+$10,其他主体为+$7。实际成交价格已包含执行与点差影响,不要再从已记账结果中扣除假设点差或滑点预留。单独入账的费用应独列一行且只计一次,不要同时加进订单合计。参阅交易成本指南。
8. 将账本衔接到余额与净值
08:45入金$500属于外部现金流。在没有出金、信用额或额外费用时,期末余额为$10,517,即期初$10,000加上入金及已平仓净额+$10与+$7。12:00时,订单502的价格浮动盈亏为−$18,当前佣金和掉期均为零。没有其他持仓或调整,观察到的净值为$10,499。
排除入金后,全账户金额盈亏为−$1。目标EA按市价计值的结果为−$8,由已平仓+$10与未平仓−$18组成;再加其他主体的+$7,得到相同的全账户−$1。这是金额核对,不是百分比或时间加权收益率。真实账户的费用入账、信用额及净值处理因服务器而异,应核实实际净值及组成,不能假设简化衔接总是适用。
可选:复算带符号的USD账本
已平仓订单计算:40 − 2 − 1 = +37;−25 − 2 + 0 = −27;8 − 1 + 0 = +7。目标EA已平仓净额:37 − 27 = +10。余额:10,000 + 500 + 10 + 7 = 10,517。净值:10,517 − 18 = 10,499。全账户金额盈亏:10,499 − 10,000 − 500 = −1。目标EA按市价计值结果:10 − 18 = −8。金额均为USD,小数点与千位逗号采用英语数字格式。
9. 将缺失证据明确保留为未知
交易历史为空,不证明没有信号。有记录的跳过需要EA确实提供的决策层证据。EX4文件或外部观察程序不能自动揭示内部跳过的决策。供应商若不提供此类日志,应报告覆盖限制。不要仅为挂载观察程序而替换图表上的交易EA。
历史缺失、快照陈旧、请求未匹配、余额差异无法解释,都是待调查的未知项,不代表零损失或正常执行。保留原始精度,仅在展示时舍入。按账户货币单位核对差异,记录解释、来源和修正版。模拟与实盘对比指南说明了其他比较限制。
10. 先签署证据,再评估业绩
完整核对可支持后续净值与回撤评估,但不能验证EA的优势。干净的小样本仍然是小样本。不存在能普遍证明前向业绩可靠的固定天数或交易数。将策略和配置变化固定为不同运行版本,不要改写过去。
- 账户、运行、货币、时间基准与截止时点是否明确?
- 来源区间是否完整,每个决策、请求和经纪商记录是否已核对或明确标为未解决?
- 归属、数量沿革和带符号成本是否准确分配且无重复?
- 现金流、已记账余额、未平仓敞口与观察到的净值是否一致?
- 证据仍缺失或含糊时,是否暂停进入业绩评估的签署?
将清单、原始导出、匹配账本、覆盖缺口与评估决定一起保存。按现有风险政策继续运营监控。本审计不提供自动订单管理、告警送达保证或损失上限,也不授权新增实盘资金分配。
11. 实盘核对常见问题
超时是否表示订单失败?
不是。超时使执行状态保持不明。任何重试前,应将经纪商的持仓、挂单和历史记录与请求核对,否则重复订单可能增加敞口。
历史订单数量等于已完成交易数量吗?
单凭这个数量不能判断。加载范围可能不完整,历史还包含已取消挂单。定义交易计数前,应筛选订单类型,并重建部分平仓沿革。
EA已平仓利润为正,是否表示账户赚了钱?
不是。未平仓亏损、其他主体、成本与外部现金流都会影响解释。本例目标EA已平仓+$10,但按市价计值为−$8,排除入金的全账户金额盈亏为−$1。
完全匹配的账本能证明未来盈利吗?
不能。它只为已覆盖期间与来源建立可追溯会计。前向验证仍需固定协议、充分且相关的证据,以及对不确定性和策略变化的诚实处理。
12. 来源与范围
官方参考:MQL4 OrderSelect、订单池与复制字段、MQL4 OrderProfit及不包含的成本、MQL4 OrdersHistoryTotal与加载的历史。核查日期:2026-10-18。文档说明字段与行为,不认证本审计或任何EA。
本指南的决策、订单号、时间和金额均为虚构教学数据。图表精确展示这些假设,不是原始测试器报告或已验证实盘业绩。不声称盈利能力、适当风险水平、保证执行或未来结果。