开发和分析交易系统的最佳方法·进阶篇
⚙️

开发和分析交易系统的最佳方法·进阶篇

(2/3)· 跳过空谈烛形与指标的陷阱,用余额、净值与真实参数拆解系统能不能活过实盘

进阶 第 2/3 篇
很多交易者把系统越写越复杂,以为参数多就是稳健,结果几千行代码跑不出一条像样曲线。简单系统反而更容易修、更容易懂市场到底在奖励什么。这一篇我们接着把开发和分析的实操标准拆开看。

◍ 那些容易被忽略的统计参数

除常规盈亏外,还有一组边缘参数常被轻视,却直接影响仓位加码方式的选择。Maximum profit 与 Maximum loss 只标记单笔极值,信息偏抽象;Average profit 与 Average loss 则是总盈亏除以交易数,仅在预期收益与利润系数为正时才具参考意义。 连续胜负类参数才是真刀真枪的东西。Maximum consecutive wins 若能被压低,反马丁格尔(盈利加仓)的衰减风险更小,效果倾向更好;Maximum consecutive losses 若能人为限制住,正马丁格尔(亏损加仓)才可能在不吞噬保证金的前提下提速——外汇与贵金属杠杆高,这类操作仍属高风险。 Average consecutive wins 近似于胜率,但用上升半波长度重算:把余额曲线拆成涨跌段,对上升段笔数取算术平均。其公式可写为 MiddleWins = Sum(Wins[i])/n,Wins[i] 为每段上升半波包含的交易数。Average consecutive losses 同理,只是换成负半波长度 MiddleLosses = Sum(Loss[i])/n。 开 MT5 跑一遍策略测试器,把上面八个字段导出来对照,比盯净值曲线更能看清该用哪种加仓逻辑。

MQL5 / C++
MiddleProfit= Sum(Pr[i])/n;
MiddleLoss= Sum(Ls[i])/n;
MiddleWins= Sum(Wins[i])/n
MiddleLosses= Sum(Loss[i])/n

用线性系数看穿曲线伪装

固定手数跑完回测,余额曲线长得越像直线,策略越经得起波动拷打。光看终点收益会被弯曲的曲线骗——中途大幅偏离起点终点的连线,往往意味着某段行情里收益塌方或暴冲,后续斜率能否维持要打问号。 线性系数(Linearity factor)就是量这个偏离度的尺子:LinearFactor = MaxDeviation / EndBalance,值越低越好。它必须等回测出最终利润后才能算,所以 MT4/MT5 策略测试器原生不带,得自己跑完第二遍。 具体算法:AverageLine = StartBalance + K*i,其中 K = (EndBalance - StartBalance)/n,n 是成交笔数;MaxDeviation 取每根 i 上 Balance[i] 离 AverageLine 绝对差的最大值。愿意的话把结果乘 100 用百分比表达也行。 市场平均烛形大小一直在变,整体动态一换,某些系统尾段预期收益就缩水,或者曲线弯得没法保证稳定。把这个系数加进评估表,能提前嗅到「曲线好看但脆」的陷阱。外汇与贵金属杠杆高,回测线性好不等于实盘稳,仍需小资金验证。

MQL5 / C++
LinearFactor = MaxDeviation/EndBalance
MaxDeviaton = Max(MathAbs(Balance[i]-AverageLine))
AverageLine=StartBalance+K*i
K=(EndBalance-StartBalance)/n
n - 测试中的交易数量

「五个数看懂策略能不能用」

做系统回测或人工审查时,真正该盯住的只有五个量:预期收益点数、利润因子(或其等价替代)、最大回撤、最大连续亏损、线性系数。其余报告里的花哨指标,至今没找到能编进算法的实用前提,硬塞进来只会模糊重点。 预期收益点数必须盖过点差+佣金+隔夜息,经验上最好做到后者平均成本的 2 倍,才能留出补偿亏损的空间、让参数模为正。外汇与贵金属杠杆高、滑点跳空频繁,这一步先不算清摩擦成本,后面全是虚盈利。 盈利性确认后,利润因子是预测质量的核心——它越远离 1 上方,系统剔除随机噪声的能力越强,且会间接牵动回撤与连亏。若预期收益已达标,利润因子就是第一权重参数。 最大回撤决定当前存款阶段保底所需的最低入金;摸清最大连续亏损或回撤的极值后,才谈得上在信号里挂马丁补仓而不至于直接爆仓。线性系数则看权益曲线像不像直线,越直越可能是真实市场规律而非运气。 测试段长度常被低估:拉长样本,盈利结果彼此越接近,系统捕捉全局模式而非某段随机行情的概率越高。

◍ 净值贴着余额走才安心

很多刚接触 MT5 的人分不清余额(Balance)和净值(Equity):余额是已经平仓锁定的固定利润,净值则是含当前浮动盈亏的实时权益。盯盘时交易者习惯看余额线,但一条健康的策略里,这两条线应当尽可能贴合。 在 MT5 策略测试器里,余额线画成深蓝,净值线是绿色。如果绿线长期大幅低于或高于蓝线,往往说明系统在用网格、马丁或金字塔加仓——这些方法不是不能盈利,但对信号质量要求极高,容错很低。 判断安全度的直观标准:两条线都向右上走、且绿色净值线紧贴深蓝余额线,策略的回撤可控性就更高。外汇与贵金属杠杆品种波动剧烈,此类图形验证仅代表历史测试概率,实盘仍属高风险。

实盘系统该看哪些硬指标

基于我自己的开发和实盘经历,先泼一盆冷水:历史测试不足十年的系统,后期走亏的概率明显抬升;如果回测段只有两年甚至更短,这种风险会更突出。别被那些只甩一张漂亮净值曲线的信号或 EA 骗去投钱。 从全历史样本看,能稳定盈利的系统预期收益大多落在 5–50 点区间,利润因子在 1.05–3.0 之间。我个人偏爱的周期是 M5,手上能跑的功能型 EA 都建在这上面,必要时也能挪到 M1。短周期图表(如 M1/M5)每根 K 线塞进了更高密度的真实报价点(Open[i]、High[i]、Low[i]、Close[i]),对测试器而言很关键——除非你用真实 tick 跑测,否则周期越短、柱内真实点越多才越接近实盘。 我自己从不用真实报价点测试。所有 EA 逻辑只认柱形收盘,而收盘本身就是一个真报价点,省去了人工合成 tick 的麻烦。这类小周期系统平均利润因子约 1.2、预期收益约 15 点。高时间框架想找能用的东西难得多;你能抬预期收益,却很难抬利润因子。 很多卖家把“优化”吹成 EA 命脉,还预言重新优化前的有效期。别信,任何方法都预测不了 EA 未来能跑多久。建议你先学会用工具前,把“优化”这词放一边——乱优化啥结果都能凑出来,大概率是随机拟合。我几乎不靠它,宁可人脑逐项手核,人脑比单纯枚举参数更有效。外汇与贵金属杠杆高,上述参数只是历史现象,实盘仍可能失效。

「用十年跨度筛掉偶然盈利的EA」

测试自研或他人系统,第一遍先取最近一年(或更长)的日线数据跑一遍。结果顺眼再切几个不同时间段,但真正下结论前,综合样本至少要覆盖10年,能拉到20年更好。 前段与后段都盈利后,再抽中间几年验证;若仍可接受,就全量跑满10年,重点看余额曲线与净值曲线。两条线接近直线向上,说明该系统值得继续深挖——这套流程的唯一目的,是省时间且提高筛出优质系统的概率。 为增强信心,把EA丢到另外几种货币对上回测。若效果至少保留一部分,大概率它基于市场物理结构而非过拟合,可继续调参。逐个改主参数看对结果的影响,多数情况下单一参数的作用几乎不依赖另一参数。 参数到最优后,先上模拟账户。基于柱形开盘/收盘触发的EA,在模拟与真实账户结果差异很小(前提是经纪商历史数据未被扭曲)。外汇与贵金属属高风险品种,模拟跑顺也不代表实盘必盈利,实盘前务必小资金试错。

把重复回测交给小布
多币种历史回测和净值曲线初筛这些重复劳动,小布盯盘的 AIGC 已内置,打开对应品种页就能直接看诊断,你只管判断逻辑是否成立。

常见问题

应关注余额与净值的偏离、交易频率在不同行情下的稳定性,以及参数在样本外数据是否依然有效,避免过拟合造成的虚假优势。
可以。小布盯盘内置了多品种历史表现与盘口诊断,能快速标出净值异常和测试盲区,省去手工跑脚本比对的时间。
余额按平仓结算,净值含浮盈浮亏,两者长期分叉可能说明仓位管理或止损逻辑在极端行情下暴露了隐藏风险。
点差、滑点和流动性在实盘会侵蚀理论边缘,参数可行性要看样本外与实盘偏差概率,而非仅看历史拟合度。外汇贵金属属高风险,实盘表现可能明显弱于测试。