canslim-screen

star 2

基于威廉·欧奈尔《笑傲股市》的 CANSLIM 方法,对股票进行基本面评分和筛选。 当用户说"这只股票基本面怎么样"、"帮我筛选成长股"、"这股票值得长期持有吗"、 "用欧奈尔方法分析"、"CANSLIM 评分"、"基本面好不好"、"有没有真实业绩支撑"、 "这是在炒梦还是真的有基本面"时触发。 通常在 elder-screen 之前运行(先确认值不值得关注,再看入场时机), 也可以单独使用做基本面筛选。 输出 CANSLIM 七维度评分、综合结论,以及是否建议进入技术面分析。

chess99 By chess99 schedule Updated 6/2/2026

name: canslim-screen description: | 基于威廉·欧奈尔《笑傲股市》的 CANSLIM 方法,对股票进行基本面评分和筛选。 当用户说"这只股票基本面怎么样"、"帮我筛选成长股"、"这股票值得长期持有吗"、 "用欧奈尔方法分析"、"CANSLIM 评分"、"基本面好不好"、"有没有真实业绩支撑"、 "这是在炒梦还是真的有基本面"时触发。 通常在 elder-screen 之前运行(先确认值不值得关注,再看入场时机), 也可以单独使用做基本面筛选。 输出 CANSLIM 七维度评分、综合结论,以及是否建议进入技术面分析。

CANSLIM Screen — 基本面选股评分

基于威廉·欧奈尔《笑傲股市》(How to Make Money in Stocks)的 CANSLIM 方法。

欧奈尔的核心洞见:最大涨幅的股票在起涨前,都有共同的基本面特征。 技术面告诉你何时买,基本面告诉你该买什么。两者缺一不可。


CANSLIM 七个维度精确标准

C — 当季 EPS(Current Earnings)

硬性过滤线:当季 EPS 同比增长 ≥ 18%~20%,低于此线直接排除。

分级标准:

  • 18%~25%:勉强达标,需其他维度强势补充
  • 25%~30%:较好
  • 40%~100%:牛市目标区间
  • 100%~500%:超级牛股特征

加速趋势要求:

  • 过去 3 个季度 EPS 增速须逐季加速(如 20% → 35% → 50%),单季孤立高增长不可信
  • 销售额支撑:最近一季度销售额同比增长 ≥ 25%,或过去 3 季度销售额持续加速(排除靠削减成本虚增利润的情形)

警戒信号(出货预警):

  • 连续两个季度 EPS 增速跌幅超过原增速的 2/3(如从 +50% 降至 +15%)= 机构出货信号,考虑卖出

评分:✓(≥ 25% 且加速)/ ⚠(18%~25% 或增速未加速)/ ✗(< 18%,或出现警戒信号)


A — 年度 EPS(Annual Earnings)

硬性标准:过去 3 年每年 EPS 均须增长,三年年均增长率 ≥ 25%~50%(欧奈尔研究样本均值为 36%)。

具体指标:

  • ROE(净资产收益率)≥ 17%;超级成长股 ROE 为 25%~50%
  • 年度每股现金流量须比实际 EPS 高出至少 20%(排除会计技巧造假)
  • 收益稳定性指数(IBD 1~99 评分)须 ≤ 20 或 25;≥ 30 属于周期性、不可靠公司

禁止情形:

  • 三年中任一年出现亏损
  • EPS 大幅回落后未创历史新高即入场

评分:✓(3 年持续增长,年均 ≥ 25%,ROE ≥ 17%)/ ⚠(增长但年均不足 25% 或稳定性不达标)/ ✗(任一年亏损或增长中断)


N — 新催化剂(New)

须具备至少一项:革命性新产品/服务、新管理层、重大行业环境变化。

历史验证:1880~2008 年超级牛股中,95% 以上满足至少一项 N 条件。

股价形态要求:

  • 买入时股价须接近或正在创 52 周乃至历史新高(突破新高不是追高,是强势确认信号)
  • 须从有效价格形态(底部整理区)突破,而非在单纯的高位横盘后买入

评分:✓(有明确且可验证的新催化剂,股价接近新高)/ ⚠(催化剂模糊或股价距新高较远)/ ✗(无新故事,靠炒作或题材)


S — 供给与需求(Supply and Demand)

突破成交量:股价突破买入点(Pivot Point)时,当日成交量须比 50 日均量放大 ≥ 40%50%;强势突破时放大 100%500% 甚至 1000%。

形态内部成交量结构:

  • 底部成交量:形态形成过程中,接近价格最低点时成交量须明显萎缩(卖盘枯竭信号)
  • 上涨时成交量:价格上涨周的成交量须多于价格下跌周的成交量

股本供给:

  • 流通股较少的公司更易大涨(5000 万股 vs 50 亿股,前者弹性更大)
  • 公司在公开市场持续回购 ≥ 10% 股份,属于正面信号
  • 大公司管理层持股 ≥ 1%~3%,小公司比例更高,属于正面信号

负面信号:

  • 第 2 次或第 3 次股票分拆时往往是股价顶点
  • 1:3 及更大比例分拆为明确负面信号

评分:✓(突破时放量 ≥ 40%,底部缩量,管理层持股充分)/ ⚠(成交量条件部分满足)/ ✗(突破无量,或出现分拆负面信号)


L — 领军股(Leader or Laggard)

RS 评级硬性门槛:相对价格强度(Relative Strength)评级 ≥ 80(IBD 1~99 评分体系)。

分级标准:

  • RS ≥ 90:超级牛股标准,通常在突破第 1 或第 2 个形态之前就已达到
  • RS 80~89:达标,可以关注
  • RS < 70:不予考虑
  • RS 40~60:明确排除

历史验证:1952~2008 年所有顶级牛股,股价大涨前平均 RS 值为 87。

RS 线趋势(卖出预警):

  • RS 线已连续 7 个月下降,考虑卖出
  • RS 线连续 4 个月急剧下跌,考虑卖出

行业领军要求:

  • 须选择行业内收益增长最强、ROE 最高的前 1~3 名
  • 避免买"第二名"——欧奈尔原则:买最强,不买跟风

评分:✓(RS ≥ 80,行业前 13 名)/ ⚠(RS 7079,行业中上游)/ ✗(RS < 70,或 RS 线持续下降)


I — 机构认同度(Institutional Sponsorship)

最低数量门槛:至少有少数几家机构持有;小规模/新兴公司最低 20 家机构投资者。

增长趋势要求:

  • 机构持有数量须在最近几个季度持续增加
  • 最近一季度增幅尤须显著
  • 须有至少 1~2 家 IBD 评级为 A+ 或 A/B+ 的顶级基金(近 36 个月业绩前 5%)持有
  • 重点关注业绩优秀基金在最近一季度新购入的股票

过量持有预警:

  • 若某股票被 1000 家以上机构持有,转为熊市时抛售压力极大,需警惕

评分:✓(机构数量持续增加,有顶级基金新进)/ ⚠(机构持仓稳定但无增量)/ ✗(机构大幅减仓,或机构数量超过警戒线且市场转弱)


M — 市场走势(Market Direction)

看多确认(Follow-Through Day,跟进日)

  • 大盘反弹起始后第 47 日,主要指数在成交量高于前一日的条件下大涨 ≥ 1.5%2%
  • 跟进日出现前,不应大量建仓

看空信号(Distribution Day,换筹日)

  • 条件:成交量 > 前一日,主要指数下跌 > 0.2%
  • 顶部判断:任意 45 周内出现 35 个换筹日 = 大盘将进入下跌趋势,停止买入

正常调整幅度参考:

  • 牛市中期调整通常 8%~12%,最深不超过 15%
  • 超过 15% 须重新评估市场状态

美联储信号:连续 3 次显著加息 = 熊市启动信号。

M 维度是否决项:大盘处于明确下跌趋势(熊市),即使其他 6 项全部通过,也不建议入场。

评分:✓(跟进日已出现,大盘趋势向上,换筹日 < 3 个)/ ⚠(震荡市,无明确跟进日)/ ✗(熊市,换筹日 ≥ 3 个,或美联储连续加息)


买入时机

价格形态识别

带柄茶杯形(Cup with Handle,最常见)

  • 杯型深度:12%33%(正常牛市 12%15%;熊市谷底特例可达 40%~50%)
  • 杯型时长:7 周65 周(多数 36 个月)
  • 杯底形状:须呈圆弧"U"形,禁止"V"形急底(V 形底不稳定)
  • 形成前提:杯形之前须有明确上涨阶段,涨幅 ≥ 30%
  • 柄部要求:至少 12 周;须位于形态上半部分及 10 周均线之上;回调幅度 8%12%;禁止楔形向上的柄部(楔形向上是弱势信号)
  • 买入点(Pivot Point / 中轴点):柄部最高价 +0.10 美元(通常比整个形态最高价低 5%~10%)

双重底(Double Bottom,W 形)

  • 第 2 个底部须等于或稍低于第 1 个底部(低 1~2 个基点)
  • 第 2 个底部若低得太多,形态无效
  • 买入点:W 中部高点处

平底整理(Flat Base)

  • 须在前期上涨 ≥ 20% 之后才可形成
  • 时长 ≥ 5~6 周
  • 深度 ≤ 10%~15%

高而窄旗形(High Tight Flag,最强但极罕见)

  • 48 周内股价急涨 100%120%
  • 然后横向回调 ≤ 10%25%,持续 35 周
  • 此形态出现概率极低,但成功率极高

形态有效性最低时长:78 周。仅 13 周的三角形/旗形不可信赖,形成时间不足的形态无效。

买入执行规则

  • 买入时机:股价从有效形态突破中轴点时立即买入,不等待回调确认
  • 成交量确认:突破当日成交量须高于 50 日均量 ≥ 40%~50%
  • 追涨上限:不允许在突破点之上 > 5% 的价格追买;超过 5%~10% 即为追高,放弃本次机会
  • 加仓(金字塔策略):
    • 初始买入后股价上涨 2%~2.5% 时,进行第一次加仓
    • 股价上涨 5% 后停止加仓
    • 加仓量须逐次递减(越涨加越少)

止损规则

  • 绝对止损线:股价低于买入价 7%~8%,无条件立即卖出,无例外
  • 执行方式:不等收盘,亏损达 7%~8% 时立即以市价卖出
  • 训练有素的投资者通过精准选时可将平均实际止损控制在 5%~6%
  • 熊市特别规定:熊市中买入任何股票,止损收窄至 3%
  • 利润保护线:股票已上涨 ≥ 20% 后,不允许再跌回买入价以下形成亏损
  • 加仓方向:只在股价上涨时加仓,严禁在股价下跌时补仓摊低成本

卖出规则

主动止盈

  • 20%~25% 利润规则:正常情况下,股价从买入点上涨 20%~25% 时获利了结
  • 3 周 20% 例外:若股票在突破后 3 周内便上涨 20%,则须至少持有 8 周再评估(超级牛股特征,不可过早了结)
  • 收益与止损比例约为 3:1(赚 20%25%,亏不超过 7%8%)

顶部卖出信号(技术性)

以下信号出现时考虑卖出,出现越多越紧迫:

  1. 单日最大涨幅:某日收盘涨幅创上涨阶段以来最大,通常出现在顶峰附近
  2. 消耗性缺口:在上涨至少 12~18 个月后,股价跳空高开并保持高位 = 立即卖出
  3. 顶峰前最后疯狂:连续 23 周每周急涨,或 810 个交易日中有 7~8 天上涨,当周价格波动幅度创历史最大 = 卖出
  4. 成交量放大价格不动:大量成交量但股价涨幅极小 = 机构在出货
  5. 股票分拆后大涨:分拆后 12 周内上涨 25%50%(极端情形 100%)= 卖出
  6. 下跌天数增加:原本涨 4 天跌 23 天,转变为涨 23 天跌 4~5 天 = 转势信号
  7. 偏离 200 日均线过远:超出 200 日均线 70%~100% = 考虑卖出

基本面卖出信号

  1. EPS 增速连续两季大幅滑坡:连续两季增速下滑 ≥ 2/3(如从 +50% 降至 +15%)= 卖出
  2. RS 评级跌破 70 = 考虑卖出

其他重要筛选条件

  1. 行业排名:所属行业须位于前 10%,或至少前 6 位(IBD 行业排名)
  2. 新兴公司优先:IPO 后 810 年内的新兴公司;新股 IPO 后需至少 56 个季度收益记录才可纳入筛选
  3. 负债率:过去 2~3 年长期负债占股权比例须持续下降
  4. 阶段限制:第四阶段(基数已高)突破失败率约 80%,不建议在第四阶段及以后介入
  5. 数量集中原则:个人投资者建议集中投资 3~5 只最强股,最多不超过 10 只
  6. 保证金使用限制:牛市可适度使用(最多 50%);熊市严禁使用任何杠杆
  7. 市盈率不作为买入依据:1953~1985 年最佳股票初始平均 PE 为 20 倍,最终涨至 45 倍;PE 高不是卖出理由,PE 低不是买入理由
  8. 税后利润率:最近一季度税后利润率须接近历史最高水平,且在行业内出类拔萃

分析流程

目标:3 分钟内完成初筛,给出 ✓/⚠/✗,不追求数据精确到小数点。

第一步:运行 Research Recipe

python -m trading_os research run canslim_screen --as-of YYYY-MM-DD --top 30
python -m trading_os research company SSE:601138 --template canslim --as-of YYYY-MM-DD

第二步:补充联网数据(仅当本地数据不足时)

用 WebSearch,不用 CDP 浏览器(速度差 10 倍):

  • C/A 维度补充:WebSearch "{股票名称} 2025年报 净利润增速"
  • N 维度(催化剂):WebSearch "{股票名称} 最新研报 新业务"
  • I 维度(机构持仓):WebSearch "{股票代码} 机构持仓 基金重仓"
  • M 维度(大盘状态):直接根据已知宏观事件判断(如关税冲击、政策转向)

第二步:逐维度评分

对每个维度给出:✓ / ⚠ / ✗,并注明具体数据依据(数字,不可模糊描述)。

第三步:综合结论

CANSLIM 评分:{股票代码} {股票名称}
═══════════════════════════════════════
C — 当季EPS增长:{具体增速,近3季趋势}  {评分}
A — 年度EPS增长:{3年增速,ROE值}  {评分}
N — 新催化剂:{具体催化剂描述,距52周高点%}  {评分}
S — 供求关系:{突破成交量倍数,流通股数}  {评分}
L — 行业地位:{RS评级具体数值,行业排名}  {评分}
I — 机构认同度:{持有机构数,近期变化}  {评分}
M — 大盘方向:{跟进日/换筹日状态}  {评分}
───────────────────────────────────────
通过维度:{X}/7
综合评级:强烈关注 / 值得关注 / 一般 / 回避

结论:{2-3句话,说明核心优势和主要风险}

建议下一步:
→ {如果 ≥5/7:运行 elder-screen 确认技术面入场时机}
→ {如果 3-4/7:列出需要改善的维度,等待观察}
→ {如果 ≤2/7:不建议关注,说明主要问题}

评级标准

通过维度 综合评级 建议
6-7 / 7 强烈关注 立即运行技术面分析,准备入场
4-5 / 7 值得关注 加入观察名单,等待更多维度改善
2-3 / 7 一般 不主动布局,有特殊情况再看
0-1 / 7 回避 明确说明问题,不建议关注

M 维度是否决项:大盘处于明确下跌趋势(换筹日 ≥ 3 个,或熊市确认),即使其他 6 项全部通过,也不建议入场。等待大盘跟进日确认反转。


注意事项

  • CANSLIM 是成长股框架,不适用于银行、地产、公用事业等价值股
  • A 股财报数据有滞后,季报发布后才能用,严禁使用预测数据
  • 这是参考意见,不是投资建议,交易有风险
  • 基本面好不代表现在是好的买点,需要配合技术面(elder-screen)确认形态和时机
  • PE 不作为买卖依据,欧奈尔原则:最好的股票看起来总是贵的

Trading OS 集成

标准数据获取流程(按优先级)

维度 数据来源 命令 网络需求
C/A(EPS/ROE) ResearchStore fundamentals research run canslim_screen cache-first
N/L(新高/相对强度) ResearchStore bars/factors research run canslim_screen lazy-fill
M(大盘状态) ResearchStore quote/factors research daily cache-first
S(成交量) ResearchStore quote/bars research run canslim_screen cache-first/lazy-fill
I(机构持仓) WebSearch 搜索关键词 需要网络
N(催化剂) WebSearch 搜索关键词 需要网络

数据源说明

  • ResearchStore/DataHub:所有正式数据访问入口,支持 cache-first、refresh、offline、lazy-fill
  • AKShare:作为可替换 A 股行情 adapter,只通过 DataHub 使用
  • WebSearch:用于 I(机构持仓)和 N(催化剂)维度,直接搜索关键词,不要用 CDP 浏览器

下一步衔接

CANSLIM 评分结果如果通过(≥5/7),直接调用 elder-screen 做技术面确认:

  • 说"继续用三重滤网分析这只股票"
  • elder-screen 会读取已有的技术面数据,不需要重复获取

两个维度综合后,再调用 position-sizer 计算仓位:

  • CANSLIM 强烈关注(6-7/7)+ 技术面买入信号 → 正常仓位(2% 原则)
  • CANSLIM 值得关注(4-5/7)+ 技术面买入信号 → 减半仓位(1% 原则)
  • 两个维度冲突 → 不入场,等待方向一致
Install via CLI
npx skills add https://github.com/chess99/trading-os --skill canslim-screen
Repository Details
star Stars 2
call_split Forks 1
navigation Branch main
article Path SKILL.md
More from Creator