OptiNod 学院

利润因子:一个数字所隐藏的分布与样本

不能只凭交易笔数就信任利润因子。需要同时确认盈亏集中度、成本计入、胜率与平均盈亏比,以及未使用的区间。

仅凭利润因子很高这一点,无法信任一个策略。必须同时看产生这个数字的交易分布。


利润因子(Profit Factor, PF)是已平仓盈利交易的盈亏合计,除以已平仓亏损交易的盈亏合计的绝对值所得的值。例如盈利合计为1万美元,亏损合计的绝对值为5千美元,PF就是2.0。在相同成本口径下,PF 1.0表示盈利与亏损合计相等,未平仓盈亏不包含在内。没有亏损交易时分母为0,无法计算出有限的PF。PF 2.0这样的数字,并不是适用于所有策略的合格线。


大众的用法是把这一个数字当作策略的等级表。把PF 1.5和3.0摆在一起,就判断后者是好一倍的策略,或者在优化中直接采用PF最高的参数。高PF的意思是,在所测量的样本中,盈利金额相对亏损金额更大。这并不意味着未来的收益或风险会同等程度地变好。


利润因子是一个比率。比率把构成分子和分母的交易笔数以及各笔交易的盈亏分布,压缩成了一个数字。200笔交易的PF 1.5比12笔交易的PF 3.0有更多资料可供审视,但交易之间的相关性和行情区间不同时,单凭笔数无法判定高下。如果一笔大额盈利占了总盈利的大部分,剔除这笔交易后PF也可能跌到1.0以下。本文讲的是如何重新审视这些样本数量和分布。下面的金额和策略业绩是为说明计算而设的假设示例,并非实际运作业绩。


一个利润因子背后的逐笔盈亏分布与样本数
一个利润因子背后的逐笔盈亏分布与样本数

剔除最大盈利交易后重新计算,就能看出对特定交易的依赖


剔除最大盈利的一笔交易后重新计算PF,可以确认该笔交易对整体业绩的影响。这是观察盈亏集中度的敏感性检验,并不能单独证明策略的稳定性,也不能单独证明那笔交易是不是运气。


假设一个假想的趋势跟踪策略一年交易了20笔,盈利合计7,610美元,亏损合计的绝对值为1,950美元。PF为7,610 ÷ 1,950 ≈ 3.90。其中最大盈利的一笔赚了6,200美元,剔除该笔后盈利合计为1,410美元。亏损合计不变,所以其余19笔的PF为1,410 ÷ 1,950 ≈ 0.72。这不是对实际BTC行情或某一年成交记录的还原。


在这个示例中,最大盈利交易占总盈利的约81.5%。假设盈利交易有9笔,胜率就是9 ÷ 20 = 45%。反复小亏、再靠几次大趋势收回,这种情形可能出现在趋势跟踪策略中。剔除最大交易后的PF 0.72只是显示集中度,并不预测其他年份的PF也会是0.72。等待大额盈利期间需要承受的连续亏损和回撤,要另外确认。


剔除最大交易后PF降到1.0以下,就说明这个样本的净利润依赖那一笔交易。PF超过1.2也不能证明分散程度或可重复性。如果是在大趋势中获利的策略,就要一并检查:在其他时期,同样的入场规则是否捕捉到了类似的机会,没有这类机会时的亏损是否在可承受范围内。


交易样本少时,要同时看利润因子的波动幅度


同样是利润因子2.5,来自8笔交易的2.5和来自300笔交易的2.5,意义完全不同。样本越少,比率越容易偶然偏向一侧,而这种偏向看起来就像实力。


另取一个假想样本,8笔交易盈利合计1,450美元,亏损合计500美元,PF为2.90。这时再增加一笔600美元的亏损交易,PF就降到1,450 ÷ 1,100 ≈ 1.32。新增交易大于原有的亏损合计,分母因此增加了一倍多。决定比率敏感度的,不仅是交易笔数,还有每笔盈亏的大小。


仅仅因为凑够了100笔或200笔,PF的置信区间就趋于稳定,并没有这样的通用标准。即使有300笔,一笔大额亏损也可能大幅改变比率,集中在同一信号上的交易也不等于300个独立的观测。要一并确认交易笔数、亏损交易笔数、极端盈亏和交易之间的依赖性,并比较各年度、各行情区间的结果。样本少时,必须把不确定性留得足够大。


一天进场多次的短线策略能很快积累样本,而日线、周线的波段策略在同一时期内交易可能很少。拉长时间以观察更多案例是有用的,但把较早期的市场和近期市场的交易混在一起,可能掩盖变化。要同时看整体PF和分区间PF,并且不要因为频率低就为凑某个交易笔数而修改入场规则。


样本少时PF之所以波动,原因之一在分母。亏损交易只有四笔的话,下一笔亏损就可能大幅改变亏损合计。分子也一样。一笔罕见的大额盈利就可能把PF拉高。样本变大后,同样金额的一笔交易所占的比重通常会下降,但盈亏规模变化或出现极端盈亏时,大样本也会波动。不把交易笔数当作可信度的唯一标准。


样本越小,一笔交易对利润因子的扰动越大
样本越小,一笔交易对利润因子的扰动越大

计入交易成本之前的利润因子是另一个数字


没有设置手续费或滑点的回测,可能漏掉实际的成交成本。TradingView的策略报告已经把设置的手续费计入盈利、亏损交易的金额。要先确认报告中是否已计入成本,以避免遗漏和重复扣除两种情况。


举一个假想例子:200笔交易中,104笔各盈利120美元,96笔各亏损90美元。胜率为52%,成本前PF为12,480 ÷ 8,640 ≈ 1.44。对所有交易各计一次35美元的往返成本,每笔盈利变成85美元,每笔亏损的绝对值变成125美元。成本后PF为 (104 × 85) ÷ (96 × 125) = 8,840 ÷ 12,000 ≈ 0.74。如果只给出实际交易的平均值,小额盈利可能因成本而变成亏损,所以要按逐笔的成本后盈亏重新分类,再汇总。


在这个示例中,35美元的往返成本相当于盈利交易120美元的约29.2%。成本负担不只由频率决定,还取决于单笔交易的名义金额、盈利幅度和下单方式。固定同一份交易清单和仓位大小,再加上非负成本时,成本前PF就是一个乐观的比较基准。但这并不保证它是未来实际业绩的上限。要代入与实际费率和成交记录相符的成本,并按逐笔净盈亏重新计算。


计入交易成本后,利润因子从1.0以上降到1.0以下的过程
计入交易成本后,利润因子从1.0以上降到1.0以下的过程

把利润因子分解为胜负笔数与平均盈亏


仅凭利润因子1.5这个数字,看不出该策略是什么性质。因为同样的利润因子,可能来自截然相反的两种策略。


准确的关系是:PF =(盈利交易数 ÷ 亏损交易数)×(平均盈利金额 ÷ 平均亏损金额的绝对值)。把剔除盈亏为0的交易之后的胜率定义为W,第一项就是W ÷ (1−W)。这里的盈亏比是实际平仓盈亏的平均比率,与入场前设置的目标止盈、止损比例不同。以假想示例来看,W=35%、平均盈亏比3.0时PF≈1.62;W=70%、平均盈亏比0.6时PF=1.40。


第一个例子是盈利交易少、平均盈利大于平均亏损的结构。第二个是盈利交易多、但单笔平均亏损大于平均盈利的结构。无论哪一种,单凭PF都无法知道连续亏损的长度或最大亏损。要确认实际的交易顺序和盈亏分布,并检查偏离止损规则会让平均亏损放大多少。


同时确认同一份报告里的胜率和平均盈亏比,就能看出PF是由什么结构产生的。胜率低,并不一定依赖单独一笔盈利;平均盈亏比低,也不能说明最大亏损有多大。必须一并确认最大盈利、最大亏损、盈亏集中度和连续亏损,才能分辨出弱点。


PF相近但胜率与平均盈亏比不同的盈亏结构
PF相近但胜率与平均盈亏比不同的盈亏结构

优化得到的利润因子,要在未使用的区间重新确认


优化工具可以在给定的数据和目标函数下找到最高的PF。探索的组合越多,偶然挑中恰好吻合的组合的风险也越大。训练区间的最高PF,不能直接当作未来的预期业绩来读。


假设一个假想的均线交叉策略,两个周期各自从5搜索到200,在施加顺序约束之前的组合数为196 × 196 = 38,416个。即使其中最高PF达到4.0,单凭这个数字也无法判断能否推广。要记录搜索的组合数、评估区间和选择规则,并确认相邻参数是否也能保持结果。只有一个组合尖锐地偏高的结果,是需要追加验证的信号。


例如,可以按时间顺序在前70%的区间确定参数,把后30%留作未使用的验证区间。这个比例只是示例,要根据策略周期和样本数预先确定。训练PF 3.5在验证中降到1.1,是可重复性的警告,但并不能确定就是过度优化。样本误差、市场变化和交易成本差异也要查看。如果看了验证结果又重新调整了参数,那个区间就不再是未使用区间,需要另外的数据。两个区间的PF相近,也可能存在样本小或共同的错误。


信任利润因子之前要经过的检查


只看利润因子一个数字就采用策略,就会原封不动地暴露在上面讲过的陷阱之中。信任报告中的利润因子之前,按顺序检查以下项目。


  • 样本与分布:一并记录总交易数、亏损交易数、极端盈亏、交易间的依赖性和评估期间。不以通用的最少交易数作为合格依据。
  • 剔除最大盈利交易:比较该交易前后的PF和对总盈利的贡献度,以确认集中度。不凭某个PF标准就断定是运气还是实力。
  • 计入成本:按实际费率和成交口径,逐笔计入成本。已扣除的手续费不再重复扣除。
  • 胜率与平均盈亏比:按已实现盈亏分解,并确认保本交易是否被计入胜率的分母。

与其他策略比较时,除上述项目外,还要把评估期间、资金和仓位大小、成本口径统一。确认了这四项本身,并不能保证实盘收益。


验证利润因子可信度的两项辅助检查


确认前面的项目之后,再一并看业绩在时间上的集中程度,以及运作中经历的回撤。


第一项是分年度或分季度的PF。例如在一个假想的5年样本中,整体PF为2.0,但其中一年为4.0,其他年份都在1.0附近。整体PF不是各年度PF的简单平均,而是用全部盈利合计除以全部亏损合计得出。剔除某一年后PF降到1.0以下,就说明业绩集中在那一年。不要仅凭这一点就断定是过度优化,而要确认该市场条件是否与策略逻辑相符,以及能否承受其他区间的亏损。


第二项是最大回撤(Maximum Drawdown)。PF是盈亏合计的比率,所以无法显示交易顺序,也无法显示账户在中途下探多深。假设比较PF 2.5、最大回撤15%与PF 3.0、最大回撤45%,也要在期间和资金配置相同的前提下才能解读。先确定可承受的回撤和连续亏损上限,PF即使很高,超出该上限的策略也要重新审视规模和运作规则。


可供核对定义与计算口径的资料


检查你自己的回测结果

上传优化结果 CSV 或 TradingView 策略的交易列表,即可同时查看绩效指标和稳健性检查结果。无需登录即可分析。

分析我的结果文件 查看分析示例