股票回测常会以3种方式错误处理股息:把调整后价格序列当作可执行价格,在错误日期计入现金,或完全忽略股息。每种做法都可能画出看似合理、实际账户价值却有误的曲线。
关键是区分股票的市场成交价格,以及公司行动产生的现金或股份。两者都要跟踪。股息会改变股东有权获得的款项;它不会让除息日的价格下跌从市场记录中消失。
错误一:把调整后收盘价当作报价来交易
历史数据供应商通常会按股息调整价格,让图表呈现股息再投资后的总回报。这类序列适用于某些分析,但不是订单实际可能成交的价格。
假设一只股票除息前收于$100,随后每股除息$1。如果开盘价为$99,且其他因素都没有变化,未调整的价格图表会显示下跌1%。股息调整后的序列则可能通过重新缩放历史价格来消除这一断层。若回测用调整后序列生成信号并模拟成交,就把一种收益计算口径和可交易报价混在了一起。
具体会造成什么问题,取决于策略。基于近期高点设定的阈值,可能会被一个从未真实成交过的价格触发。止损可能在调整后的价位触发。用同一调整后序列计算的收益看起来平滑,成交价却来自另一个价格体系。
| 价格字段 | 适用场景 | 不安全的假设 |
|---|---|---|
| 原始成交价或报价 | 在时点合适的情况下用于生成信号和模拟成交 | 它已经包含股东现金流 |
| 股息调整后收盘价 | 部分总回报比较 | 它是当时可执行的价格 |
| 调整后的OHLC柱 | 了解调整方法后用于分析 | 盘中最高价和最低价与历史报价一致 |
错误二:在除息日计入股息
除息日决定了根据适用的市场规则,哪些人有权获得分配款。现金通常会在之后的支付日到账。在账户模拟中,这两个日期的作用不同。
假设你持有100股,跨过每股宣派$0.50股息的除息日,股息将在两周后支付。策略可能在除息日取得$50的应收股息,但此时还没有$50可支配现金。如果模拟器立即把这笔钱加到购买力中,就可能用这笔分配款为一笔真实账户当时无法承担的买入提供资金。
对于只做多的买入并持有收益计算,在除息日记录获得股息的权利或许就够了。对于会将分配款再投资、跟踪购买力或围绕结算进行交易的策略,则应将应收款和实际支付分开处理。使用当时已知的支付安排;之后的数据更正不应改写系统当时能够预期的情况。
对于普通的多头头寸,除息日的价格若接近股息金额下跌,并不自动意味着交易亏损。账户中的股票价值减少了,同时增加了一笔应收股息。这些价值是否正好抵消,取决于市场变动、税费、预扣税以及模拟采用的计算口径。
错误三:价格已经下跌,所以忽略股息
价格不做调整,又漏掉现金流,就会造成相反的失真。在从$100跌至$99的例子中,持有100股的投资者现在持有价值$9,900的股票,而非$10,000,此外还有$100的股息权益。如果只计算股票,就会报告$100的亏损,但简化后的总价值其实没有变化。
在较长样本或高分红股票组合中,这种错误的影响可能尤其大。它还会影响信号:如果策略把每个除息日的跳空都视为普通下跌,就可能恰好在错误的时机卖出。股息或许能解释这次跳空,但不能决定市场接下来如何变动。
股票回测该如何建模股息?
首先使用原始的时点价格来做决策和模拟成交,再将公司行动作为明确的账户事件来表示。所需的细节取决于回测要回答的问题。
- 衡量总回报:将有权获得的分配款计入投资组合价值,并明确记录再投资假设。
- 模拟策略:在时点会产生影响的情况下,分别跟踪持股、应收款、现金支付和购买力。
- 生成信号和模拟成交:使用对应历史市场实际价位及其可获取时间的价格字段。
还应分别检查拆股、特别股息和预扣税。$1的常规股息与$10的特别分配可能导致不同的价格调整,并对策略行为产生截然不同的影响。数据供应商单独提供一个“已调整”标记,通常不足以说明问题。
当回测跨过除息日时,要问清楚账户在除息日前持有什么、因此有权获得什么、现金何时到账,以及决策由哪种价格序列驱动。如果这些答案都隐含在一个调整后收盘价字段里,净值曲线就包含着你看不见的假设。
← 全部文章

