财报前该减仓还是持有?用规则而不是猜测来决定

财报前该减仓还是持有,答案不该取决于你对这个季度的感觉,而应该取决于一条买入前就写好的规则。财报日是一种和平时完全不同的风险状态:价格会在你无法交易的时候跳空,止损单管不了它。所以你需要提前决定三件事之一——财报前一律离场、把仓位压到最坏情况也扛得住、或者只有浮盈已经足够厚时才留着。

本文要点

  • 财报后的走势是跳空的、二元的、幅度大的。-5% 的止损在 -12% 的开盘跳空面前只能在 -12% 附近成交。
  • 三种规则化做法:一律离场(days_to_next_earnings < 2)、按最坏情况反推仓位、只在浮盈超过历史财报波动时持有。
  • 仓位算法:最大可接受亏损 ÷ 历史财报波动 = 仓位上限。2% ÷ 8% = 25%。
  • 买入规则要配一条"财报前 5 天内不开新仓"的门槛,否则你会刚买完就被自己的清仓规则赶出去。
  • "我对这个季度有信心"不是规则。用交易日志看你过去持仓过财报到底赢了多少次。

为什么财报日是另一种风险

平时一只股票日均波动 1%–2%,你的止损设在成本下方 5%,大多数日子价格要一路走到 -5% 才会更糟,止损差不多在你设的位置触发。财报把这个前提打破了:公司在收盘后或开盘前发布数字,价格是在市场关门期间重新定价的。第二天开盘直接 -12%,你的 -5% 止损单会在 -12% 附近成交,而不是 -5%。止损保护的是盘中的连续下跌,保护不了隔夜跳空。

第二个不同是形状。平时的涨跌是连续的,财报是二元的:要么大涨要么大跌,停在中间的情况少。Stock Compass 在卡片上显示的"历史财报后波动 ±x%",就是这只股票过去几次财报后典型的单日幅度。如果它是 ±8%,而你的日常止损是 5%,一次财报就等于直接把你的止损跳过去。

所以"财报前该不该持有"需要一条专门的规则,不能沿用平时那套。

三种规则化的做法

做法一:一律不持有过财报

最简单,最好回测。规则:days_to_next_earnings < 2 时清仓,财报后再由买入规则决定是否重新进场。

你放弃的是财报后可能出现的大涨;你保护的是这笔仓位的全部本金不受一次隔夜跳空的影响。适合仓位集中、或者止损纪律本来就依赖系统而不是意志力的人(见执行不了的止损)。

做法二:减到"最坏情况也扛得住"的仓位

规则:财报前把仓位压到一个上限,上限 = 你能接受的最大组合亏损 ÷ 历史财报波动幅度。

这和按单笔风险定仓位是同一个思路,只是把"止损距离"换成了"跳空幅度"。既然止损失效了,跳空幅度就是你真正的止损距离。

做法三:只有浮盈够厚才持有

规则:floating_gain_pct 大于历史财报波动时持有,否则清仓或减仓。逻辑是:如果这只股票过去财报后典型跌幅是 8%,而你相对成本已经浮盈 15%,一次典型的坏财报只会把你从 +15% 打到大约 +6%,不会变成亏损。浮盈是你的缓冲垫。

它的弱点是:浮盈保护的是"这笔交易不亏",不是"组合不亏"。仓位 40% 的股票跌 8%,组合还是少了 3.2%。所以做法三通常要叠加在做法二之上使用。

一个算例

组合 100,000。持有某只股票市值 40,000(仓位 40%),成本 35,000,浮盈 14.3%。卡片显示历史财报后波动 ±8%,财报在两天后。你的规则是:任何一次财报事件最多接受组合 2% 的亏损。

  • 什么都不做:一次 -8% 让市值变成 36,800,亏 3,200,等于组合的 3.2%。超出预算。
  • 做法一:清仓。财报风险为零;如果财报后 +8%,你少赚 3,200。
  • 做法二:仓位上限 = 2% ÷ 8% = 25%,即 25,000。需要卖出 15,000。剩下的 25,000 如果 -8%,亏 2,000,正好是预算。
  • 做法三:浮盈 14.3% > 8%,规则允许持有。但组合层面的风险仍是 3.2%,叠加做法二后,还是减到 25,000。

三种做法放在同一个例子里比较:

做法财报前动作你放弃的你保护的最坏情况(-8%)
一律离场卖出 40,000财报后的全部涨幅这笔仓位的全部本金亏 0
压到 25%卖出 15,00037.5% 的涨幅组合风险预算亏 2,000(2%)
浮盈够厚就持有不动这笔交易不变成亏损亏 3,200(3.2%)

以上数字为示意。"历史 ±8%"是过去的典型值,不是上限,下一次可能是 ±15%。如果你想为超出历史的情况留余地,把分母换成历史波动的 1.5 倍再算一遍。

买入规则要配合

不管选哪种做法,如果你的买入规则不看财报日期,你会在财报前两天买进一只股票,第二天就被自己的清仓规则赶出去,白付两次手续费。所以买入侧要加一条门槛:days_to_next_earnings > 5。等财报出完、跳空已经发生、价格重新定价之后,再让原来的突破或均线规则决定是否进场。

Stock Compass 的财报日历会列出持仓和关注列表里即将到来的财报日期。数据来自公开来源,可能有缺漏,港股和 A 股中小盘尤其如此,重仓股最好核对公司公告。

"我对这个季度有信心"为什么不是规则

规则的定义是:换一个人、换一天、拿同样的数据,能得出同样的动作。"有信心"不满足这一条。你无法回测它,事后也无法判断——赚了你说判断准,亏了你说运气差。

更实际的问题是,它是否真的赚钱,你并不知道。解决办法是交易日志:每次持仓过财报,记下当时的浮盈、仓位、历史波动、你的理由,以及财报后第一天的实际涨跌。攒够 10–20 次以后,算一下"我持仓过财报"的平均结果和胜率。不少人做完这个统计,发现自己财报持仓的期望值接近零甚至为负——到那时,做法一就不再是"胆小",而是数据支持的选择。

在 Stock Compass 里怎么设

下面这条策略把买入门槛和财报前清仓写成两条规则。Stock Compass 只是每天用你的规则扫描持仓和关注列表、把结果列成清单,不连接券商、不下单;卖不卖仍然是你自己操作。

{
  "name": "财报前不持仓",
  "market": "us",
  "rules": {
    "buy":  { "v": 2, "outerOp": "OR", "groups": [ { "innerOp": "AND", "conditions": [ { "indicator": "is_20d_breakout", "operator": "==", "value": 1 }, { "indicator": "days_to_next_earnings", "operator": ">", "value": 5 } ] } ] },
    "add":  { "v": 2, "outerOp": "OR", "groups": [] },
    "trim": { "v": 2, "outerOp": "OR", "groups": [] },
    "exit": { "v": 2, "outerOp": "OR", "groups": [ { "innerOp": "AND", "conditions": [ { "indicator": "days_to_next_earnings", "operator": "<", "value": 2 } ] } ] }
  }
}
  • is_20d_breakout == 1:今天收盘创 20 日新高。这里只是代表你原本的买入逻辑,可以换成任何一条。
  • days_to_next_earnings > 5(买入侧):距下次财报超过 5 个交易日才允许开新仓,避免刚买就被清仓规则赶出。
  • days_to_next_earnings < 2(清仓侧):财报前一天和当天触发清仓提醒。

如果你选做法二,把同样的条件从 exit 组挪到 trim 组;提醒出现时按"预算 ÷ 历史波动"算出目标仓位,手动减。如果你选做法三,在 exit 组里再加一条 floating_gain_pct < 8(把 8 换成这只股票的实际历史波动),整组的含义变成"财报前两天内且浮盈不足历史波动,就清仓";浮盈够厚的持仓不会触发。

常见错误

  • 以为止损能保护财报:止损单在跳空面前只能按开盘价附近成交。财报前唯一有效的风控是仓位。
  • 用一个数管所有股票:历史财报波动 ±3% 和 ±15% 的股票不该用同一个仓位上限。每只股票单独算。
  • 财报前两天才开始想:那时你已经在情绪里了。规则要在买入前写好,财报周只负责执行。
  • 把"历史波动"当上限:它是典型值。给它留 1.5 倍余量,或者干脆用做法一。
  • 只记住赢的那几次:不写日志,你会高估自己财报持仓的胜率。

小结

财报日的风险和平时不是同一种:它绕过止损、幅度大、非黑即白,所以需要一条专门的规则,而不是当天的感觉。三种选择:一律离场、把仓位压到最坏历史波动也在预算之内、只在浮盈超过历史波动时持有,后两者可以叠加。无论选哪种,买入侧加上 days_to_next_earnings > 5 的门槛,清仓或减仓侧用 days_to_next_earnings < 2 触发,再用日志验证"持仓过财报"在你自己的股票上是否真的值得。

常见问题

财报前应该卖出还是持有?

用买入前写好的规则决定,而不是用对这个季度的看法。可行的规则有三种:距财报不到两天一律离场;把仓位压到"最大可接受亏损 ÷ 历史财报波动"这个上限以内;或者只有浮盈大于历史财报波动时才持有。选一种,写下来,再用交易日志验证它在你自己的股票上是否值得。

为什么止损保护不了财报日?

因为价格是在市场关门期间重新定价的。止损单只能在恢复交易后成交,所以 -5% 的止损遇到 -12% 的开盘跳空,只会在 -12% 附近成交。止损限制的是盘中连续下跌;能限制隔夜跳空的只有你进入财报时的仓位大小。

财报前减仓减到多少怎么算?

用你能接受的最大组合亏损除以这只股票的历史财报波动。2% 的预算对应 ±8% 的典型波动,得到 25% 的仓位上限;10 万的组合就是 2.5 万,超出的部分卖掉。历史数字是典型值而不是最大值,所以有人会用 1.5 倍历史波动来算,留出余量。

Stock Compass 卡片上的"历史财报后波动"是什么意思?

是这只股票最近几次财报后典型的单日涨跌幅,用正负百分比表示。把它当作"正常反应大概有多大"的估计,而不是能发生的上限。财报日期和反应数据来自公开来源,部分市场可能不完整,重仓股最好核对公司公告。

Stock Compass 会在财报前自动帮我卖出吗?

不会。Stock Compass 不连接券商,也不下单。它只是每天用你写的规则扫描持仓和关注列表,把触发的项目列成清单,例如 days_to_next_earnings 小于 2 时给出清仓提醒。要不要按提醒操作,是你自己的决定和交易。