交易系统的评估 - 有关进入、退出与交易效率的概述(基础篇)
📘

交易系统的评估 - 有关进入、退出与交易效率的概述(基础篇)

第 1/3 篇

用 MT5 测试器看懂进场出场效率

MetaTrader 5 的策略测试器不只是跑个权益曲线就完事。2013 年 9 月那篇原始材料里,作者 Mykola Demko 在测试器里累计拿到 5081 次浏览与 29 条讨论,说明交易系统评估这一话题在量化交易者里长期有硬需求。 评估一个系统,核心是把「进场逻辑」和「出场逻辑」拆开看胜率与盈亏比,而不是混在一起只盯总收益。MT5 测试器允许你逐单导出成交明细,从而统计每笔交易的持仓时间与滑点损耗。 外汇与贵金属品种点差跳动频繁,用历史测试得出的效率数据只代表过去样本,实盘存在滑点扩大与流动性断裂的高风险,结论只能当作概率倾向而非确定性规律。

「这套统计框架的出处与获取现实」

本文采用的方法论来自 S.V. Bulashev 的《Statistika dlya traderov(面向交易者的统计)》,核心是用统计视角衡量交易系统的真实效率,而非凭肉眼挑指标。 该书实体版印量极少且长期绝版,但电子副本仍散落在多个俄语技术站点,有需要的交易者可以自行检索下载。 对外汇、贵金属这类高杠杆品种而言,任何统计结论只代表历史样本下的概率倾向,实盘仍需以风控为边界。

◍ 从 MT3 到 MT5 的账户语义迁移

原书《面向交易者的统计》写于 2003 年,那会儿平台还是 MetaTrader 3,用的 MQL-II。书里的统计原则现在仍适用,但交易条件早变了:2003 年现货预付款交易只能整手平仓,每 1 手建仓必须靠同量反向成交平掉。

  • 年 MetaTrader 4 放开部分平仓,原书的统计口径如果不改就会失真——解释系统得从「依据建仓事实」切到「依据平仓事实」。又过五年,MT5 把经典术语 Order(订单)彻底拿掉:现在订单只是发往券商服务器的请求,真正持续存在的是仓位(position),借钱建仓后仓位才在,平仓结算后才消失。

所以 MT5 里既能部分平仓也能加仓,老式「建仓量=平仓量」的对称解释已失效。好在历史成交(deal)全留着,我们完全能从 MT5 存储数据反推并重建一套解释逻辑,下节就动手重整。

用极值比衡量进场质量

把一笔交易看成价格从区间最低价爬到最高价的路径,进场效率就是你在路径上离便宜端有多近。买仓以最低价进效率为 1,以最高价进则为 0;卖仓逻辑相反,越靠近最高价卖效率越高。 具体算法用交易区间内极值做分母:买仓效率 = (区间最高价 - 进场价) / (区间最高价 - 区间最低价),卖仓效率 = (进场价 - 区间最低价) / (区间最高价 - 区间最低价),结果落在 0 到 1 之间。 这套比值不靠主观感觉,直接暴露 MT5 回测里每单占到了多少潜在盈利空间。外汇与贵金属波动剧烈、杠杆风险高,效率偏低只说明进场时机偏贵,不代表后续一定亏损。

MQL5 / C++
对于买入仓位
enter_efficiency=(max_price_trade-enter_price)/(max_price_trade-min_price_trade);
对于卖出仓位
enter_efficiency=(enter_price-min_price_trade)/(max_price_trade-min_price_trade);
进入效率可以是一个0到1之间的数值.

「退出效率怎么算才不亏在临门一脚」

平仓时卖在哪儿,往往比开仓更考验执行。MTS 体系里用「退出效率」衡量一笔持仓在存续期间,退出价相对于该笔交易区间内极值的占位水平,数值越靠近 1,说明退出越接近区间最优边。 公式只依赖这笔交易自身的高低点,不和别的根系混在一起,所以同一品种不同周期各自算各自,互不干扰。外汇与贵金属杠杆高、跳空频繁,极端行情里退出效率天然会被压低,别拿 0.9 以上的样本当常态。 买入仓位的退出效率看的是:退出价相对交易期内最低价的偏移,占整个高低区间的比例;卖出仓位则反过来,用最高价减去退出价做分子。 这套数可以直接接进 MT5 跑,把每笔成交的 min/max 抓出来逐笔标色,哪次平在半山腰一眼能看出来。

MQL5 / C++
对于买入仓位
exit_efficiency=(exit_price - min_price_trade)/(max_price_trade - min_price_trade);
对于卖出仓位
exit_efficiency=(max_price_trade - exit_price)/(max_price_trade - min_price_trade);
退出效率可以是一个0到1之间的数值.

◍ 用效率值拆开看进出场质量

一笔交易的效率,本质上由进场价和出场价决定,但更直观的算法是看这两价在区间极值内的位置。区间用交易期间最高价减最低价,分子则是买卖方向对应的价差,比值落在 -1 到 1 之间。 对于买仓,效率 = (出场价 - 进场价) / (区间最高 - 区间最低);卖仓反过来用 (进场价 - 出场价) 做分子。还有一个通用式:交易效率 = 进场效率 + 出场效率 - 1,把进出场信号的质量拆开隔离。 经验上效率值大于 0.2 才值得看,低于这条线说明系统在区间里没吃到多少潜在波动。把进场效率和出场效率分开算,能直接指出来该调信号还是该调离场逻辑。外汇和贵金属杠杆高,这类比值只是诊断工具,不等于胜率保证。 打开 MT5 把下面代码接进历史回测,逐笔打印 trade_efficiency,比肉眼翻 K 线更快定位薄弱点。

MQL5 / C++
对于买入仓位
trade_efficiency=(exit_price-enter_price)/(max_price_trade-min_price_trade);
对于卖出仓位
trade_efficiency=(enter_price-exit_price)/(max_price_trade-min_price_trade);
通用公式
trade_efficiency=enter_efficiency+exit_efficiency-class="num">1;
交易的效率值可以是一个从-1到1之间的数值.
交易的效率值必须大于0,class="num">2. 可视化地分析效率显示了提升系统的方向,因为它允许把进入和退出仓位的信号质量相互隔离区分。

常见问题

看极值比:用持仓期间价格偏离入场价的极端幅度除以平均幅度,比值越高说明进场越靠近波段端点,质量越好。
用退出效率 =(实际平仓盈亏 / 该笔持仓理论最大可行盈亏),数值明显小于1就说明出场太早或太晚,亏在收尾。
小布可读取你的交易记录并自动拆出进场极值比与退出效率,直接在品种页标出哪段交易亏在出场,不用自己算。
按新平台的订单类型与账户权益字段重新映射旧成交,重点核对开平语义和手续费口径,避免统计框架算错。
先分别算进场极值比和退出效率,再合成总效率值;哪边数值拖后腿就只调那一环,别整套系统推倒重来。