每日财经知识:博格公式选股——一个公式,筛出能长期持有的好公司(基于:TuShare API)

发布时间:2026/8/6 5:51:06

每日财经知识:博格公式选股——一个公式,筛出能长期持有的好公司(基于:TuShare API)
原创 | 来自北方狼 · StockStudy园地 | 2026年8月5日 17:41 重庆前置说明如需要下载本文代码共有 360M 左右基础数据请大家关注微信公众号“StockStudy园地” 后台回复回复基础数据就可以下载基础数据。回复博格选股代码就可以下载本文算法代码。回复博格选股结果就可以下载本文代码运行的结果文件基于 2026年8月5日 收盘数据为准这样大家仅靠这个数据都可以参考很久因为长期数据变化不大。【核心观点】长期收益 股息率 盈利增速估值噪音抵消股息率 0.5% 淘汰增速打折封顶 15%公式仅作初筛须叠加基本面人工复核前言投资最核心的难点是在纷繁复杂的市场中找到稳定赚钱的公司。很多散户追热点、炒题材最后只拿到纸面浮盈拿不到真实现金流。先锋集团创始人约翰·博格提出的博格公式剥离股价短期波动噪音只抓长期收益两大核心来源普通人零基础也能学会既可手动在炒股软件测算也能用 Python Tushare 全自动批量选股。一、通俗故事看懂博格公式底层逻辑假设两个合作对象朋友 A每年稳定给你现金分红分红逐年上涨去年分 5 万今年预期 5.5 万收益实打实落袋朋友 B从不分红只会口头承诺明年暴富年年画饼无现金兑现。理性人都会选择 A但股市里大量投资者偏爱讲故事、无分红的 B 类公司。博格公式就是一套量化筛选标准专门锁定持续分红、盈利稳定增长的优质企业。约翰·博格核心结论持有周期拉长至 10 年以上市盈率估值涨跌会相互抵消股票长期年化收益仅由两部分决定现金分红、企业净利润长期增长。简化核心公式个股长期测算版预期年化收益率 ≈ TTM 股息率 保守修正永续利润增速判定标准两者相加≥ 10%纳入长期观察池。二、三大核心基础概念大众易懂版2.1 TTM 股息率确定现金收益定义过去 12 个月每股现金分红 ÷ 当前股价反映当下买入每年能拿到的现金回报实操举例个股全年两次分红10 派 5每股 0.5 元、10 派 3每股 0.3 元全年合计每股分红 0.8 元现价 16 元。TTM 股息率 0.8 ÷ 16 5%作用唯一不依赖市场行情、能直接到手的收益是投资安全垫快速过滤标准股息率 0.5% 直接淘汰。2.2 CAGR 复合年均增长率剔除短期水分定义把多年波动的净利润增速折算成匀速复利增长年化值避免单一年份一次性收益卖资产、政府补贴干扰判断错误算法直接算术平均忽略复利效应标准计算公式CAGR (期末值 / 期初值)^(1 / 年数) - 1举例3 年净利润增速 15%、10%、9%。2.3 保守永续增速历史增速打折理性预判未来核心逻辑历史增速越高长期维持难度越大必须阶梯打折同时设置上限 15%没有企业能永久超 15% 复利增长亏损企业保底 -5%。历史加权 CAGR 区间留存折算比例案例演示25%35%历史 50% 增速折算后 17.5%20%45%历史 30% 增速折算后 13.5%15%55%历史 20% 增速折算后 11%10%65%历史 15% 增速折算后 9.75%5%75%历史 8% 增速折算后 6%0%85%历史 3% 增速折算后 2.55%≤0%保底 -5%盈利下滑最低按 -5% 计算三、通达信软件手工完整测算流程长城证券烽火版通用步骤 1提取 TTM 股息率输入股票代码按 F10进入「分红融资」统计近 12 个月现金分红总额行情页面右键自定义列直接添加「股息率 (TTM)」一键查看前置筛选股息率低于 0.5% 直接放弃无需后续计算。步骤 2提取 7 年净利润同比增速快捷键 F11 打开成长能力页面查看系统自带 3-5 年净利润同比数据不足 7 年F10 利润表翻历史年报手动计算每年同比当年净利润增速 (当年净利润 - 上年净利润) ÷ |上年净利润| × 100%步骤 3分别计算 3 / 5 / 7 年期 CAGR统一使用复利开方公式取完整年度净利润增速数据代入。步骤 4加权合并多周期增速权重分配7 年 CAGR × 0.4 5 年 CAGR × 0.35 3 年 CAGR × 0.25示例数据7 年 CAGR 13.38%、5 年 14.72%、3 年 11.29%加权原始 CAGR 13.38 × 0.4 14.72 × 0.35 11.29 × 0.25 13.33%步骤 5阶梯衰减打折13.33% 落在 10%~15% 区间留存 65%衰减后增速 13.33% × 0.65 8.66%步骤 6增速封顶限制保守永续增速 min(衰减后数值15%) 8.66%步骤 7博格公式计算预期年化收益预期年化 TTM 股息率 保守永续增速若个股股息率 5%总收益 5% 8.66% 13.66% ≥ 10%达标入选。四、Python Tushare 自动化选股完整方案4.1 数据接口对应说明Tushare 函数对照表需要数据Tushare Pro 接口关键字段口径说明TTM 股息率、股价、市值、PE/PBdaily_basicdv_ratiodv_ratio 原生为 TTM 股息率与手工计算口径一致年报净利润同比增速fina_indicatornetprofit_yoy仅筛选 end_date1231 的年度数据剔除季报股票名称、行业分类stock_basicts_code、name、industry个股基础信息补充ROE、净利率fina_indicatorroe、netprofit_margin辅助基本面校验指标4.2 完整代码分步实现1环境初始化与 Token 配置importtushareastsimportpandasaspdimportnumpyasnpimportmath# 替换为个人Tushare Pro Tokents.set_token(你的Tushare Token)prots.pro_api()2单只股票提取 7 年年报净利润同比增速defget_yoy_data(ts_code):获取单只股票近7年年报净利润同比增速dfpro.fina_indicator(ts_codets_code,fieldsts_code,end_date,netprofit_yoy,ann_date)# 仅保留12月31日年报数据df_annualdf[df[end_date].str.endswith(1231)]# 按公告日期去重保留最新年报df_annualdf_annual.sort_values(ann_date,ascendingFalse)df_annualdf_annual.drop_duplicates(subset[end_date])ifdf_annual.empty:return[],0latest_yearint(df_annual[end_date].iloc[0][:4])yoy_list[]# 提取近7年数据foryearinrange(latest_year-6,latest_year1):rowdf_annual[df_annual[end_date].str.startswith(str(year))]ifnotrow.emptyandpd.notna(row.iloc[0][netprofit_yoy]):yoy_valfloat(row.iloc[0][netprofit_yoy])yoy_list.append(yoy_val)returnyoy_list,latest_year3CAGR 计算函数极端增速约束defcalc_cagr(yoy_list):计算单周期复合年均增速限制极端波动ifnotyoy_listorlen(yoy_list)3:returnNone# 约束增速极值避免异常值干扰ratios[]foryinyoy_list:y_clampmax(-95,min(300,y))ratios.append(1y_clamp/100)product1.0forrinratios:product*r yearslen(yoy_list)returnproduct**(1/years)-1defget_cagrs(yoy_list):分别输出3/5/7年期CAGRcagr_3ycalc_cagr(yoy_list[-3:])iflen(yoy_list)3elseNonecagr_5ycalc_cagr(yoy_list[-5:])iflen(yoy_list)5elseNonecagr_7ycalc_cagr(yoy_list[-7:])iflen(yoy_list)7elseNonereturncagr_3y,cagr_5y,cagr_7y4历史增速加权 阶梯衰减 封顶函数defconservative_growth(cagr_3y,cagr_5y,cagr_7y):# 加权计算weight_map[]ifcagr_7yisnotNone:weight_map.append((cagr_7y*100,0.40))ifcagr_5yisnotNone:weight_map.append((cagr_5y*100,0.35))ifcagr_3yisnotNone:weight_map.append((cagr_3y*100,0.25))ifnotweight_map:return0.0total_wsum(wfor_,winweight_map)weighted_cagrsum(v*wforv,winweight_map)/total_w# 阶梯打折ifweighted_cagr25:decayedweighted_cagr*0.35elifweighted_cagr20:decayedweighted_cagr*0.45elifweighted_cagr15:decayedweighted_cagr*0.55elifweighted_cagr10:decayedweighted_cagr*0.65elifweighted_cagr5:decayedweighted_cagr*0.75elifweighted_cagr0:decayedweighted_cagr*0.85else:decayedmax(weighted_cagr,-5.0)# 增速上限15%cappedmin(decayed,15.0)returncapped5主选股函数批量全市场筛选defbogle_screening(target_return10.0,trade_date20260804):# 获取全市场每日基础指标过滤股息率≥0.5%df_dailypro.daily_basic(trade_datetrade_date,fieldsts_code,dv_ratio,close,pe_ttm,pb,total_mv)df_dailydf_daily[df_daily[dv_ratio]0.5]result_list[]total_countlen(df_daily)# 遍历每只股票计算博格预期收益foridx,rowindf_daily.iterrows():ts_coderow[ts_code]dvrow[dv_ratio]yoy_data,_get_yoy_data(ts_code)iflen(yoy_data)3:continuec3,c5,c7get_cagrs(yoy_data)safe_growthconservative_growth(c3,c5,c7)exp_returndvsafe_growth result_list.append({ts_code:ts_code,TTM股息率:round(dv,3),保守永续增速%:round(safe_growth,3),博格预期年化%:round(exp_return,3),3年CAGR%:round(c3*100,2)ifc3elseNone,5年CAGR%:round(c5*100,2)ifc5elseNone,7年CAGR%:round(c7*100,2)ifc7elseNone})# 每100只打印进度if(idx1)%1000:print(f已处理{idx1}/{total_count})# 筛选达标标的并排序df_respd.DataFrame(result_list)df_passdf_res[df_res[博格预期年化%]target_return]df_passdf_pass.sort_values(博格预期年化%,ascendingFalse)returndf_pass# 执行选股trade_date替换为最新交易日qualified_dfbogle_screening(target_return10.0,trade_date20260804)print(f博格公式筛选达标个股总数{len(qualified_df)})print(qualified_df.head(20))6补充个股行业、ROE、净利率辅助信息defenrich_fundamental(df):enrich_list[]for_,rowindf.iterrows():coderow[ts_code]# 获取股票名称、行业stock_infopro.stock_basic(ts_codecode,fieldsts_code,name,industry)namestock_info.iloc[0][name]ifnotstock_info.emptyelseindustrystock_info.iloc[0][industry]ifnotstock_info.emptyelse# 获取最新ROE、净利率fin_indpro.fina_indicator(ts_codecode,limit1,fieldsroe,netprofit_margin)roeround(fin_ind.iloc[0][roe],2)ifnotfin_ind.emptyelseNonemarginround(fin_ind.iloc[0][netprofit_margin],2)ifnotfin_ind.emptyelseNonelinerow.to_dict()line.update({股票名称:name,行业:industry,最新ROE%:roe,净利率%:margin})enrich_list.append(line)returnpd.DataFrame(enrich_list)# 调用补充信息full_dfenrich_fundamental(qualified_df)# 导出Excel本地保存full_df.to_excel(博格公式选股结果.xlsx,indexFalse)五、关键口径统一说明手工计算与 Tushare 对齐dv_ratioTushare 原生为 TTM 过去 12 个月股息率和软件 F10 手工统计分红计算结果完全匹配netprofit_yoy单年度净利润同比增速仅使用 1231 年报数据季报、中报不参与 CAGR 运算数据清洗规则净利润增速正负极端值强制约束避免一次性资产处置、政府补贴扭曲长期增长判断时间窗口仅上市满 3 年个股参与计算新股无完整历史盈利数据直接剔除。六、博格公式选股局限性与风险提示1适用范围限制仅适配持续稳定盈利、常年现金分红的消费、公用、高股息蓝筹强周期行业有色、煤炭、钢铁净利润周期性大幅波动CAGR 失真筛选结果参考性低银行、保险等金融行业财务指标特殊ROE、盈利增速解读需额外专业分析上市未满 3 年新股、常年亏损无分红企业无法使用该模型。2模型本身短板博格公式只是量化初筛工具非直接买入决策依据筛选出标的后必须额外人工复核企业商业模式、行业长期景气度管理层经营稳定性、分红政策持续性资产负债表、现金流健康度当前估值历史分位规避高位买入。3投资核心逻辑重申博格公式放弃预测短期股价涨跌、主力资金、题材热点只锚定两个长期核心当下买入能稳定拿到多少现金分红企业历史能否持续稳定创造净利润增长。长期投资不需要复杂指标堆砌抓住现金流与成长两大锚点即可大幅规避题材炒作陷阱。七、文档总结理论层博格公式剥离短期估值波动长期收益 TTM 股息率 保守永续净利润增速年化 ≥ 10% 为优质观察标的实操层通达信软件 7 步手工测算零基础投资者可单只个股复盘自动化层依托 Tusharedaily_basic、fina_indicator、stock_basic三大接口完整 Python 代码实现全市场批量选股自动导出结果表格风控层明确行业、标的适配边界量化筛选仅作初筛必须叠加基本面人工复核不可单一公式直接重仓。数据来源Tushare Pro 金融数据 API创作时间2026-08-05附程序运行后选出的部分股票参考详见公众号后台回复博格选股结果下载。本文转载自微信公众号「StockStudy园地」作者北方狼原文发布于 2026年8月5日。仅供学习交流版权归原作者所有。

相关新闻

Agent终于能自己花钱了,Cloudflare钱包引爆抢注潮

Agent终于能自己花钱了,Cloudflare钱包引爆抢注潮

2026/8/6 5:41:06

8月5日,社交媒体刮起了一阵橙色旋风,不少博主在X上晒出了自己橙色的钱包ID。原来是“赛博活佛”Cloudflare在8月4日晚间推出面向AI Agent的可编程钱包Cloudflare Wallets,不仅让Agent具备自主参与互联网交易的能力,也让加密基础设…

数据库作业4

数据库作业4

2026/8/6 5:41:06

关闭防火墙 systemctl stop firewalld systemctl disable firewalld sed -i 7s/enforcing/disabled/ /etc/selinux/config 安装源码配置需求 dnf install -y gcc gcc-c make cmake zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel libffi-…

C++编译期计算:从constexpr到if constexpr的性能优化实战

C++编译期计算:从constexpr到if constexpr的性能优化实战

2026/8/6 5:41:06

1. 项目概述:为什么我们需要编译期计算? 在C的世界里,性能优化是一场永无止境的军备竞赛。我们绞尽脑汁优化算法,使用更高效的数据结构,甚至深入到汇编层面去抠指令。但你是否想过,有一种优化,…

Spring Boot AOP代理机制深度解析:JDK与CGLIB实战对比与避坑指南

Spring Boot AOP代理机制深度解析:JDK与CGLIB实战对比与避坑指南

2026/8/6 6:41:08

1. 项目概述:为什么我们需要深入理解Spring Boot AOP的代理机制?如果你用过Spring Boot,那你肯定用过Transactional、Cacheable或者自定义的Log注解。这些功能背后,几乎都离不开AOP(面向切面编程)的影子。但…

Linux入门DAY14(高频难点:指针)

Linux入门DAY14(高频难点:指针)

2026/8/6 6:41:08

前言在C语言学习过程中,指针属于重难点,很多同学容易混淆指针数组、数组指针、指针函数、函数指针几组概念,做题写代码经常踩坑。本文结合课堂笔记,梳理四类高频指针知识点,区分概念本质、语法、使用场景以及易错禁区&…

深入分析Xcode中SwiftUI的可视化编辑工具:Canvas、Inspector与Library

深入分析Xcode中SwiftUI的可视化编辑工具:Canvas、Inspector与Library

2026/8/6 6:41:08

SwiftUI 带来的描述性构建界面能力,为 Xcode 引入诸多的可视化工具奠定了基础。可视化界面搭建,早期在网页开发中,曾经流行过,最著名的代表 Dreamweaver。如果把 HMTL 源码视为因,那么浏览器渲染的界面则为果。从最后的…

2026上海橡塑展怎么挑选展台设计搭建公司?认准高品质搭建服务商

2026上海橡塑展怎么挑选展台设计搭建公司?认准高品质搭建服务商

2026/8/6 6:41:08

2026 上海橡塑展汇聚众多橡塑材料、机械设备行业企业,海量展位同台亮相,想要抓住专业采购客商目光,高品质的展位落地效果尤为关键。不少参展企业筹备展会时,都会寻找靠谱的展台设计搭建团队。挑选合作方不能只看效果图&#xff0c…

GEO市场规模有多大?2026—2030年中国GEO市场规模预测

GEO市场规模有多大?2026—2030年中国GEO市场规模预测

2026/8/6 6:41:08

按照爱分析对中国GEO市场的预测,市场规模将从2026年的48亿元,依次增长至2027年的154亿元、2028年的430亿元、2029年的860亿元,并在2030年达到1,376亿元。2026—2030年复合增长率预计超过130%,GEO将在2030年迈向千亿级市场。这里的…

expo start 打开 React Native DevTools 报错 socket hang up / DevTools 弹不出来 —— 系统代理未放行本地回环

expo start 打开 React Native DevTools 报错 socket hang up / DevTools 弹不出来 —— 系统代理未放行本地回环

2026/8/6 6:31:08

expo start 打开 React Native DevTools 报错 socket hang up / DevTools 弹不出来 —— 系统代理未放行本地回环 现象 安卓上按 j 打开 React Native DevTools 时,yarn start 终端直接崩溃退出,报错: Error: socket hang upat Socket.socketOnEnd (node:_http_client:599:…

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

2026/8/4 15:23:37

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经从网易云音乐下载了心爱的歌曲&am…

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

2026/8/5 6:02:27

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比工程导读:本文深入讨论 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比 在生产工程实践中的核心落地方案。基于 分布式架构与微服务设计 视角,剖析实际痛点、架…

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

2026/8/5 8:19:55

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案 【免费下载链接】MoneyPrinterPlus AI一键批量生成各类短视频,自动批量混剪短视频,自动把视频发布到抖音,快手,小红书,视频号上,赚钱从来没有这么容易过! 支持本地语音模型chatTTS,fasterwhisper,…

Unity相机抖动插件Camera-Shake集成与应用实战指南

Unity相机抖动插件Camera-Shake集成与应用实战指南

2026/8/6 0:00:51

1. 项目概述与核心价值最近在做一个动作游戏,需要给主角的重击和爆炸场景加点料,让打击感更足。我第一时间就想到了给相机加个抖动效果,毕竟这是提升玩家沉浸感最简单直接的手段之一。自己手写一个也不是不行,但时间成本高&#x…

Cocos Creator 3.7微信小游戏开发:从架构设计到提审上线的全流程实战指南

Cocos Creator 3.7微信小游戏开发:从架构设计到提审上线的全流程实战指南

2026/8/6 0:00:51

1. 项目概述:为什么需要一份3.7版本的专属适配指南?如果你是一位使用Cocos Creator开发微信小游戏的开发者,并且项目正运行在3.7版本上,那么你很可能已经感受到了那份“甜蜜的烦恼”。一方面,Cocos Creator 3.7是一个功…

AI编程实战:从Prompt工程到工具链集成,打造高效开发工作流

AI编程实战:从Prompt工程到工具链集成,打造高效开发工作流

2026/8/6 0:00:51

1. 项目概述:一次开源AI编程课程的深度重构 最近,我把自己的开源AI编程课程《Claude Code》做了一次从里到外的大更新。如果你对利用Claude、Codex这类大模型来辅助编程感兴趣,或者正在寻找一个能跟上最新AI编码工具迭代节奏的学习路径&#…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/6 5:43:30

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/4 14:25:14

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/4 15:11:03

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…