昨天介绍了 OpenBB 这个"散户版彭博终端",反响不错,不少朋友问:数据拿到了,然后呢?怎么做分析、怎么做配置、怎么验证策略?
今天就接着聊,推荐三个可以和 OpenBB 无缝配合的 Python 工具——一个帮你做财报分析和估值,一个帮你做投资组合优化,还有一个用深度强化学习训练交易 AI。三个项目加起来超过 2 万颗星。
项目地址:https://github.com/JerBouma/FinanceToolkit
⭐ 4,500+ Stars | Python | MIT
你有没有算过一只股票的市盈率、市净率、ROE、自由现金流,然后发现不同网站给出的数字居然不一样?同花顺算的和雪球算的经常对不上,搞得你都不知道该信谁。
FinanceToolkit 就是来解决这个问题的——一个透明、可验证的财务分析库,内置 150+ 种标准化的财务指标。
from financetoolkit import Toolkit
# 初始化(支持多只股票同时分析)
companies = Toolkit(
["AAPL", "MSFT", "GOOGL"],
api_key="你的API Key" # FinancialModelingPrep
)
# 一行代码拿到所有盈利能力指标
profitability = companies.ratios.collect_profitability_ratios()
print(profitability)
这一行就能返回毛利率、净利率、ROE、ROA、ROIC 等十几个指标,而且三家公司的数据并排展示,对比分析超方便。
| Ratios | ||
| Models | ||
| Technical | ||
| Risk | ||
| Performance |
最实用的是 DCF 估值模型:
# 自动计算苹果公司的内在价值
dcf = companies.models.get_intrinsic_valuation()
print(dcf)
它会自动拉取历史财务数据,估算未来现金流,算出 WACC,最终给你一个内在价值。不是黑箱——每一步的计算过程都可以查看和验证。
pip install financetoolkit -U
需要一个 FinancialModelingPrep 的 API Key(免费版有每日限额),用来获取历史财务报表。也可以配合 Yahoo Finance 使用。
适合谁:做价值投资的人、需要写研报的分析师、学习财务分析的学生。如果你之前用 Excel 手动算财务指标算到头大,这个库能直接解放你。

项目地址:https://github.com/robertmartin8/PyPortfolioOpt
⭐ 5,500+ Stars | Python | MIT | 发表过学术论文
上面分析完个股,接下来就是"每只买多少"的问题了。这跟买不买同样重要——市面上有句话叫"不要把鸡蛋放在一个篮子里",但很少有人告诉你"每个篮子该放几个"。
PyPortfolioOpt 就是用数学帮你做这件事。它实现了现代投资组合理论(MPT),核心就是马科维茨的有效前沿。
from pypfopt import EfficientFrontier, risk_models, expected_returns
import pandas as pd
# 假设你有三只美股的历史价格数据
prices = pd.read_csv("stock_prices.csv", index_col="Date", parse_dates=True)
# 计算预期收益和协方差矩阵
mu = expected_returns.mean_historical_return(prices)
S = risk_models.sample_cov(prices)
# 找到最大夏普比率的最优组合
ef = EfficientFrontier(mu, S)
weights = ef.max_sharpe()
cleaned = ef.clean_weights()
print(cleaned)
# {'AAPL': 0.35, 'MSFT': 0.45, 'GOOGL': 0.20}
几行代码就算出了每只股票应该买多少比例。
| 最大夏普比率 | |
| 最小波动率 | |
| 有效前沿 | |
| Black-Litterman | |
| 层次风险平价(HRP) | |
| CVaR 优化 |
特别推荐 HRP(层次风险平价) 方法——它不依赖协方差矩阵的估计,对噪声数据更鲁棒,在实际投资中表现往往比经典的均值-方差优化更稳定。
pip install PyPortfolioOpt
零依赖外的配置,装好就能用。
适合谁:做资产配置的投资者、管理多只股票组合的人、想用数学取代"拍脑袋决定仓位"的人。和前面的 FinanceToolkit 配合使用更佳——先用 FinanceToolkit 选股,再用 PyPortfolioOpt 定仓位。

项目地址:https://github.com/AI4Finance-Foundation/FinRL
⭐ 14,500+ Stars | Python | MIT | NeurIPS 论文
如果说前两个项目是"传统金融分析的数字化",FinRL 就是"用 AI 重新定义交易"。这是目前开源里最系统的金融强化学习框架,由 AI4Finance 基金会维护,发过 NeurIPS 论文。
之前 3 月 23 号写的 TensorTrade 也做 RL 交易,但 FinRL 的生态要完整得多:
from finrl import config
from finrl.main import check_and_make_directories
from finrl.agents.stablebaselines3 import DRLAgent
# 1. 准备数据(内置支持Yahoo Finance等)
# 2. 构建交易环境
# 3. 训练DRL Agent
agent = DRLAgent(env=env_train)
model = agent.get_model("ppo") # 支持PPO, A2C, DDPG, TD3, SAC等
trained_model = agent.train_model(model, total_timesteps=50000)
支持的 RL 算法挺全的:PPO、A2C、DDPG、TD3、SAC、DQN——基本上主流的 model-free 算法都有。
pip install finrl
坦白说,RL 交易目前还是一个"研究 > 实战"的领域。和 TensorTrade 那期说的一样——加上真实的手续费和滑点,很多策略都会跑不赢买入持有。FinRL 的价值在于它提供了最完整的实验平台,让你系统地去验证 RL 在金融领域的可能性。直接拿来跑实盘?建议先纸盘跑三个月再说。
这三个项目和昨天的 OpenBB 形成了一个完整的全球投资工作流:
OpenBB(数据获取)
↓
FinanceToolkit(基本面分析 + 估值)
↓
PyPortfolioOpt(投资组合优化)
↓
FinRL(策略验证 + AI 交易)
| 拿数据 | ||
| 选标的 | ||
| 定仓位 | ||
| 验策略 |
四个工具全部 pip install 就能用,总共 0 元。如果你之前觉得"专业投研离我太远",这套工具链应该能改变你的想法。
投资这件事,工具越来越好了,门槛越来越低了,但做判断的还是你自己。这些工具最大的价值不是替你决策,而是让你的决策有更多数据支撑、更少拍脑袋。
觉得有用就转发给同样在做全球投资的朋友,有问题评论区聊 👇
#投资 #量化交易 #开源工具 #GitHub #Python #投资组合 #财务分析 #强化学习 #全球投资 #OpenBB