课程  因子投资  机器学习  Python  Poetry  ppw  tools  programming  Numpy  Pandas  pandas  算法  hdbscan  聚类  选股  Algo  minimum  numpy  algo  FFT  模式识别  配对交易  GBDT  LightGBM  XGBoost  statistics  CDF  KS-Test  monte-carlo  VaR  回测  过拟合  algorithms  machine learning  strategy  python  sklearn  pdf  概率  数学  面试题  量化交易  策略分类  风险管理  Info  interview  career  xgboost  PCA  wavelet  时序事件归因  SHAP  Figures  Behavioral Economics  graduate  arma  garch  人物  职场  Quantopian  figure  Banz  金融行业  买方  卖方  story  量化传奇  rsi  zigzag  穹顶压力  因子  ESG  因子策略  投资  策略  pe  ORB  Xgboost  Alligator  Indicator  factor  alpha101  alpha  技术指标  wave  quant  algorithm  pearson  spearman  tushare  因子分析  Alphalens  涨停板  herd-behaviour  momentum  因子评估  review  SMC  聪明钱  trade  history  indicators  zscore  波动率  强化学习  顶背离  freshman  resources  others  AI  DeepSeek  network  量子计算  金融交易  IBM  weekly  LLT  backtest  backtrader  研报  papers  UBL  quantlib  jupyter-notebook  scikit-learn  pypinyin  qmt  xtquant  blog  static-site  duckdb  工具  colors  free resources  barra  world quant  Alpha  openbb  数据  risk-management  llm  prompt  CANSLIM  Augment  arsenal  copilot  vscode  code  量化数据存储  hdf5  h5py  cursor  augment  trae  Jupyter  jupysql  pyarrow  parquet  数据源  quantstats  实盘  clickhouse  notebook  redis  remote-agent  AI-tools  Moonshot  回测,研报,tushare 

why stop loss is so bad


Table of Content

在金融交易的世界里,回测是验证一个策略是否有效的基础。当交易员们构建回测模型时,他们常常会加入一个看似明智的风险管理工具:止盈(Take-Profit)和止损(Stop-Loss)。这似乎是天经地义——毕竟,在现实交易中,止盈止损是控制风险和锁定利润的基石。然而,许多金融量化专家,包括像马科斯·德·普拉多这样的顶尖学者,都警告我们:在回测中简单地加入止盈止损,实际上是一个非常危险且具有误导性的做法。

这并非因为止盈止损本身是坏的,而是因为它从根本上扭曲了回测的统计有效性。它让你的回测结果看起来比实际情况好得多,从而为你带来虚假的安全感。

  1. 虚假的安全感:人为地“截断”亏损

这是最主要的问题。止损机制就像是一个过滤器,它会把你策略中那些本应造成巨大亏损的“路径”在到达某个点位时提前终止。在你的回测报告中,那些可能带来 -5% 甚至 -10% 亏损的交易,最终只显示为 -1% 或 -2% 的止损结果。

这导致了两个严重后果:

1
2
3
收益分布失真:你的回测结果将不再反映一个真实、完整的收益分布。它被人为地“截断”了亏损的尾部,这使得你计算出的夏普比率、卡尔马比率等风险调整后收益指标,都变得异常漂亮。但这种漂亮是虚假的,因为它掩盖了潜在的灾难性亏损风险。

低估了黑天鹅事件:如果一个策略在市场突然暴跌时,其止损功能无法有效执行(比如跳空或流动性枯竭),那么回测中“被截断”的亏损就会在现实中成为现实。回测的理想化结果会让你对策略的稳健性产生严重的误判。
  1. 统计假设的失效:无法进行公平比较

传统的回测和统计分析通常建立在一些核心假设之上,例如:

1
2
3
固定时间窗口:每次交易都持有固定的时间(比如5天),这让你可以对不同交易进行公平的比较。

独立同分布(I.I.D.):尽管金融数据并不完全满足这个假设,但这是许多统计检验的基础。

然而,止盈止损机制打破了这些假设:

1
2
3
随机化的持有时间:有了止盈止损,有些交易可能只持有几小时就被平仓了,而有些则持有数天。你无法对这些不同持续时间的交易进行有效的“苹果对苹果”的比较。

“可选停止”偏差:这是一种统计学上的经典谬误。当你可以在一个实验中,如果结果对自己有利就提前停止,那么你很可能会得到一个具有误导性的“显著”结果。在回测中,止损就是这种“可选停止”的形式——在亏损时尽早停止,在盈利时则继续持有。这使得朴素的p值(衡量偶然性的指标)完全失效。
  1. 缺乏真正的信息:止盈止损是策略的一部分,而不是评估工具

一个回测的真正目的是评估一个交易信号的有效性。它想回答的是:“如果我基于某种市场信号入场,这次交易最终会是盈利还是亏损?”

然而,止盈止损本身就成为了影响结果的主要因素。你最终评估的不是你的交易信号有多好,而是你的止损止盈参数设置得有多好。一个糟糕的交易信号,如果配合上一个异常激进或宽松的止损,也可能在回测中表现出色。这使得你无法区分,到底是你的交易逻辑有效,还是仅仅因为止盈止损参数碰巧适合历史数据。

正确的做法:重新定义问题

那么,我们应该如何进行有效的回测呢?

量化专家们建议,我们应该将问题从“计算止盈止损后的收益”转变为一个分类问题。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
不要直接在回测中应用止盈止损:先专注于评估你的交易信号本身。回测你的信号,看看在没有止盈止损的情况下,每次交易在固定时间内(例如,持有1天或5天)的平均表现如何。

使用“三元分类法”:正如马科斯·德·普拉多所倡导的,将预测问题定义为三类:

    类别1:交易信号会最终触发止盈。

    类别2:交易信号会最终触发止损。

    类别3:交易在预设时间结束时,止盈和止损都未被触发。
    然后,训练一个机器学习模型来预测这三类结果,而不是直接预测收益。这种方法能够更准确地评估你的信号在不同市场条件下,是更可能带来盈利还是亏损,同时避免了上述所有的统计陷阱。

总之,在回测中使用止盈止损虽然看似合理,但它会扭曲数据,误导评估,并掩盖策略的真正弱点。要获得真正可靠的回测结果,我们必须超越这种传统的做法,重新思考如何科学地评估交易策略的有效性。