29、订单流交易中的绩效评估:收益率、最大回撤、胜率、盈亏比、索提诺比率

做订单流交易的朋友,经常会问我一个问题:

「我每天盯盘累死累活,到底怎么才算真的赚钱了?」

嗯,这个问题问得好。光看账户余额涨了,不代表你水平高。我见过太多人,一个月赚了30%,下个月一把亏光。说白了,绩效评估不是算总账,而是拆解你的交易行为

今天我们就来聊聊订单流交易里,那几个绕不开的核心指标。我个人习惯把这五个指标称为「交易体检五项」——收益率、最大回撤、胜率、盈亏比、索提诺比率。

收益率:最直观,也最容易被骗

收益率谁都会算。期末净值减去期初净值,再除以期初净值。但这里有个坑——你用的是算术收益率还是几何收益率?

举个例子:你本金10万,第一周赚50%,变成15万。第二周亏50%,变成7.5万。算术平均收益率是0%,但你的钱少了2.5万。这就是算术收益率的欺骗性。

我在项目中遇到过一位交易员,他给我看月度收益表,每个月都是正收益,年化60%。我仔细一算,他用的算术平均,而且中间有几次大额出入金。实际几何收益率只有12%。

避坑指南: 我曾经用算术收益率给客户做汇报,结果被风控总监当场质疑。从那以后,我坚持用几何收益率,也就是复利计算。公式很简单:R = (期末净值/期初净值)^(1/n) - 1

最大回撤:你的心脏承受力测试

最大回撤,说白了就是从最高点到最低点,你亏了多少。这个指标直接反映你的风控水平。

订单流交易有个特点:行情突变时,流动性瞬间枯竭。你可能看到订单簿上挂单很厚,但真到止损时,滑点能让你多亏好几个tick。

我记得有一次做股指期货的订单流策略,回测时最大回撤只有5%。实盘跑了两个月,遇到一次闪崩,最大回撤直接干到12%。为什么?因为回测用的是理想成交价,实盘有滑点和延迟。

我的经验: 实盘最大回撤通常是回测的1.5到2倍。所以,如果你的风控上限是20%,回测时最好控制在10%以内。

胜率:别被高胜率忽悠了

很多新手喜欢追求高胜率,觉得10笔交易赢8笔就是高手。你想想看,如果每笔赢1%,但输的那两笔各亏10%,你的账户还是亏的。

订单流交易里,胜率往往不会太高。因为我们在抓的是「不平衡」和「吸收」这些微观结构信号,这些信号本身就有一定的随机性。我自己的订单流策略,胜率一般在45%到55%之间。

为什么会这样?因为订单流交易的本质是赚取流动性溢价,而不是预测方向。你是在跟做市商抢饭吃,胜率能过50%已经不错了。

盈亏比:真正的利润引擎

盈亏比,也叫赔率。就是你平均每笔盈利除以平均每笔亏损。这个指标比胜率重要得多。

举个例子:

交易员 胜率 盈亏比 期望值
A 60% 1:1 0.2
B 40% 3:1 0.6

看到没?B的胜率只有40%,但期望值是A的三倍。订单流交易里,我建议把盈亏比放在第一位。我个人习惯是至少做到2:1,低于这个比例的策略,我基本不会实盘。

小技巧: 计算盈亏比时,别忘了算上手续费和滑点。订单流交易通常高频,手续费占比不小。我曾经有个策略,回测盈亏比2.5:1,扣掉手续费后只剩1.8:1。

索提诺比率:比夏普更懂你

夏普比率大家可能都听过,但它有个问题——它把上涨波动和下跌波动一视同仁。你想想看,上涨波动是好事啊,为什么要惩罚它?

索提诺比率就聪明多了。它只考虑下行波动,也就是亏损的那部分波动。公式是:

索提诺比率 = (策略收益率 - 无风险利率) / 下行标准差

下行标准差怎么算?只取收益率低于目标收益率(通常是0)的那些数据点,计算它们的标准差。

我在项目中遇到过一位做期权做市的同行,他的夏普比率只有0.8,但索提诺比率高达3.5。为什么?因为他经常小赚,偶尔大亏,但大亏的次数极少。夏普比率被那些小赚的波动拉低了,但索提诺比率真实反映了他的风控能力。

我的建议: 订单流交易里,索提诺比率比夏普比率更有参考价值。因为订单流策略的收益分布往往是非正态的,有尖峰肥尾特征。索提诺比率能更好地捕捉尾部风险。

把这些指标串起来

光看单个指标没用,得综合看。我一般用这个顺序:

  1. 先看最大回撤——能不能接受?不能就pass。
  2. 再看索提诺比率——下行风险控制得好不好?
  3. 然后看盈亏比——有没有正的期望值?
  4. 最后看胜率和收益率——作为辅助参考。

说白了,活得久比赚得快更重要。订单流交易是持久战,不是百米冲刺。

实战工具: 我写了一个简单的绩效评估脚本,每天收盘后自动跑一遍。代码不长,核心逻辑就是计算上面五个指标。你可以根据自己的策略参数调整。
def performance_report(equity_curve, risk_free_rate=0.03):
    # 收益率
    total_return = equity_curve[-1] / equity_curve[0] - 1
    
    # 最大回撤
    peak = np.maximum.accumulate(equity_curve)
    drawdown = (equity_curve - peak) / peak
    max_drawdown = drawdown.min()
    
    # 胜率与盈亏比
    trades = get_trades_from_equity(equity_curve)
    win_rate = len([t for t in trades if t > 0]) / len(trades)
    avg_win = np.mean([t for t in trades if t > 0])
    avg_loss = abs(np.mean([t for t in trades if t < 0]))
    profit_loss_ratio = avg_win / avg_loss if avg_loss != 0 else np.inf
    
    # 索提诺比率
    daily_returns = np.diff(equity_curve) / equity_curve[:-1]
    downside_returns = daily_returns[daily_returns < 0]
    downside_std = np.std(downside_returns)
    sortino = (np.mean(daily_returns) - risk_free_rate/252) / downside_std
    
    return {
        'total_return': total_return,
        'max_drawdown': max_drawdown,
        'win_rate': win_rate,
        'profit_loss_ratio': profit_loss_ratio,
        'sortino_ratio': sortino
    }

嗯,代码很简单,但很实用。你把它集成到你的交易系统里,每天跑一遍,心里就有底了。

知识体系图

下面这张图,是我自己梳理的订单流交易绩效评估框架。你可以把它当成一张检查清单。

订单流交易绩效评估框架 五大核心指标 收益率 几何收益率 vs 算术收益率 最大回撤 实盘 = 回测 × 1.5~2倍 胜率 订单流策略通常45%-55% 盈亏比 至少2:1,扣手续费后 索提诺比率 只关注下行波动 评估顺序 ① 最大回撤 ② 索提诺比率 ③ 盈亏比 ④ 胜率 & 收益率 核心原则:活得久比赚得快更重要 订单流交易是持久战,不是百米冲刺

这张图的核心逻辑就是:先控风险,再谈收益。你按这个顺序去评估你的策略,基本不会出大问题。


交易系统化学习资料 微信Strategy888888