Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

quant

个人投资的组合分析工具。目标市场:美股 + 加密货币

⚠️ 仅供个人研究,不构成投资建议。所有结果为历史回看,不含手续费、滑点与税。


这个工具做什么 / 不做什么

✅ 做 算你已有组合的风险收益结构:年化、波动、夏普、索提诺、最大回撤、卡玛、相关性矩阵、权重漂移、收益贡献归因
❌ 不做 不预测、不给买卖信号、不读新闻财报宏观。它只看历史价格

它的定位是体检报告,不是决策工具。 想知道「现在该不该买」,这个脚本给不了答案——那需要接入新闻、财报、宏观数据的工具(见下方 Roadmap)。

它真正有用的地方是看结构性结论(例如「BTC 与美股相关性只有 0.32,是组合里唯一的分散化来源」),而不是看具体数字(年化多少百分比对未来没有预测意义)。


安装

需要 Python 3.10+。

pip install pandas yfinance quantstats PyPortfolioOpt

数据源为 Yahoo Finance,免费、无需 API key。

用法

Windows 双击: run-portfolio.bat(跑完会停住,不会闪退)

命令行:

python portfolio.py                                    # 用脚本内 HOLDINGS 默认权重
python portfolio.py --holdings "SPY:0.6,BTC-USD:0.4"   # 指定权重
python portfolio.py --start 2020-01-01 --rf 0.04       # 指定起点和无风险利率
python portfolio.py --html                             # 额外生成 quantstats 网页报告

代码写法:美股直接写 AAPL / SPY;比特币 BTC-USD;以太坊 ETH-USD


一个必须处理的坑:交易日历

美股一周 5 个交易日,加密 7 天都有价。 直接把两者的收益率序列拼在一起,组合收益会被虚增。

本脚本以股票交易日为准对齐,周末的加密行情折叠进下一个交易日。如果持仓全是加密货币,则退回全日历。


指标口径

指标 算法
年化收益 CAGR 累计净值 ^ (252 / 交易日数) - 1
年化波动 日收益标准差 × √252
夏普 (日超额收益均值 / 日收益标准差) × √252
索提诺 同夏普,但分母只用下跌日标准差
最大回撤 min(净值 / 历史最高净值 - 1)
卡玛 CAGR / |最大回撤|
组合净值 Σ(权重 × 各资产累计净值),买入持有,权重自然漂移
收益贡献 初始权重 × 该资产累计收益

价格使用后复权(auto_adjust=True),即分红再投资。


已知局限

局限 影响
幸存者偏差 你填进去的标的是你今天知道的赢家。回看好看是必然的
不含费税滑点 实际收益低于显示值
假设不再平衡 与真实操作有偏差
无风险利率固定 跨越加息周期时夏普失真
仅日频 看不见盘中波动
数据源免费档 Yahoo Finance 偶发缺数据或延迟

Roadmap

  • holdings.json 接入脚本——填一次真实持仓(股数 + 成本价),以后直接出结果,不用每次手打。模板见 holdings.example.json目前尚未接入代码
  • 实际盈亏计算(基于成本价)
  • 再平衡回测:定期再平衡 vs 放着不动,含手续费
  • 定投模拟:每月定额 vs 一次性买入
  • 接入新闻 / 财报 / 宏观数据——这是当前最大的缺口

参考方向:TradingAgents(多智能体 LLM 交易研究框架)、TradingAgents-CN(中文增强版,偏 A 股)。


隐私

holdings.json(真实持仓)已写入 .gitignore不会被提交。仓库里只有 holdings.example.json 模板,其中数据均为虚构。

About

Personal portfolio risk analytics for US equities & crypto — annualised return, volatility, Sharpe/Sortino, max drawdown, correlation matrix, contribution attribution. No predictions, no signals. | 个人投资组合风险分析工具

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages