金融分析技能

v1.0.0

利用免费数据源进行多资产投资组合的风险平价分析、动态调仓和回测,提供文字报告与图表可视化。

0· 526·13 current·13 all-time
MIT-0
Download zip
LicenseMIT-0 · Free to use, modify, and redistribute. No attribution required.
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
medium confidence
!
Purpose & Capability
SKILL.md 与 README.md 声称集成 Yahoo Finance(yfinance)、Alpha Vantage、Finnhub 等在线免费数据源并提示配置 ALPHA_VANTAGE_API_KEY;但 manifest.dependencies 未列出 yfinance/plotly,实际代码(optimized_risk_parity_skill.py / optimized_main.py)读取本地 CSV、无网络调用迹象。文档中宣称的在线数据抓取能力与实际要求/实现不匹配。
!
Instruction Scope
运行说明要求设置 ALPHA_VANTAGE_API_KEY 并列出了从 API 获取数据的用法,但代码路径/实现均以 CSV 为主,且默认 CSV 路径指向用户工作区(C:\Users\wu_zhuoran\.openclaw\workspace\data\marketdata.csv)。说明指示访问网络数据与代码实际行为不一致;此外文档允许把任意 CSV 放入默认路径,需注意本地文件读取权限与隐私。
Install Mechanism
没有 install spec;实际文件为 Python 脚本,依赖是常见数据分析包(pandas/numpy/matplotlib/seaborn)。无远程下载或可执行二进制安装步骤,磁盘写入/执行范围受限于脚本本身,安装风险较低。
!
Credentials
Registry metadata 报告 'required env vars: none' 而 SKILL.md 要求 ALPHA_VANTAGE_API_KEY。这是不一致的:如果技能确实需要在线 API,清单应声明相应环境变量;反之,文档要求 API Key 会误导用户暴露凭证。总体上没有看到对其他凭据或敏感变量的不当请求。
Persistence & Privilege
技能未设置 always:true,未请求修改其他技能或系统范围配置,也不声明需要长期驻留或特殊权限。默认行为(按需运行脚本并读写输出目录)与其用途相称。
What to consider before installing
要点与建议: 1) 文档/清单不一致:在安装或提供任何 API Key 之前,向发布者确认该技能是否真的会调用 Alpha Vantage / yfinance / Finnhub,以及这些网络调用会在哪里发生(由本地脚本直接发起还是需要新增模块)。 2) 如果你只需处理本地 CSV:当前代码看起来仅从本地 CSV 加载并计算风险平价,且不需要任何 API Key;在此情形下无需提供在线凭证,但也请手动检查脚本以确认无隐蔽的网络请求(搜索 'requests', 'urllib', 'socket', 'yfinance', 'alpha_vantage', 'finnhub')。 3) 如果准备运行:先在隔离/沙箱环境中运行,使用非敏感示例 CSV,观察是否有出站网络连接或意外文件写入。查看生成的输出目录权限并确认路径(默认路径包含具体用户名,应按需修改)。 4) 要求修正清单:要求发布者或维护者把实际需要的依赖和环境变量在 manifest/registry metadata 中列清楚(例如将 ALPHA_VANTAGE_API_KEY 列为可选或必需),并在文档中明确何时会进行网络请求。 5) 若你会提供 API Key:只在信任来源并确认代码确实需要并安全使用该键时才提供;否则勿将长期/高权限凭证填入。

Like a lobster shell, security has layers — review code before you run it.

latestvk97d33y9mjypx88y2rdak92szn81xr2w

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

SKILL.md

金融分析技能 (Financial Analysis Skill)

概述

这是一个用于投资组合分析的技能,支持从免费API获取各类资产行情数据,并提供文字报告和图表可视化。优化版本整合了滚动窗口调仓逻辑和回测功能。

功能特性

  • ✅ 投资组合分析(资产配置、风险评估、收益分析)
  • ✅ 支持多种资产类型:股票、ETF、加密货币等
  • ✅ 免费数据源集成
  • ✅ 文字报告生成
  • ✅ 图表可视化(收益曲线、资产分布、风险指标等)
  • 滚动窗口风险平价分析(使用历史一年数据,每月调仓)
  • 避免未来数据(使用expanding窗口计算波动率)
  • 回测功能(完整的回测流程)

数据源

  • Yahoo Finance (通过yfinance库)
  • Alpha Vantage (免费API)
  • Finnhub (免费层)
  • CSV文件(中国市场数据)

安装依赖

pip install yfinance pandas numpy matplotlib seaborn plotly

使用方法

1. 基本使用

分析投资组合

python financial_analysis.py --portfolio example_portfolio.json --output ./output

获取单个资产数据

python financial_analysis.py --symbol AAPL --period 1y

2. 滚动窗口风险平价分析

运行回测

python optimized_risk_parity_skill.py --csv "C:\path\to\marketdata.csv" --output ./backtest_output

数据格式要求

  • CSV文件应包含日期列和收益率列
  • 收益率数据应为百分比格式(如:1.5表示1.5%)
  • 脚本会自动将百分比转换为实际收益率(除以100)
  • 支持处理文本行和缺失值

3. 投资组合配置文件格式

创建一个JSON文件(如 my_portfolio.json):

{
  "AAPL": 0.25,    # 苹果股票,权重25%
  "GOOGL": 0.20,   # 谷歌股票,权重20%
  "MSFT": 0.20,    # 微软股票,权重20%
  "AMZN": 0.15,    # 亚马逊股票,权重15%
  "TSLA": 0.20     # 特斯拉股票,权重20%
}

滚动窗口风险平价分析

核心特点

  1. 避免未来数据:使用历史一年数据计算波动率
  2. 动态调仓:每月根据最新波动率重新计算权重
  3. 风险平价:各资产对组合风险贡献相等
  4. 回测验证:完整的回测流程,验证策略效果

分析流程

  1. 数据加载:加载CSV数据,处理百分比单位
  2. 滚动波动率:使用expanding窗口计算历史波动率
  3. 权重计算:基于波动率倒数计算风险平价权重
  4. 投资组合收益率:使用滚动权重计算每日收益率
  5. 绩效评估:计算总收益率、年化收益率、夏普比率等
  6. 可视化:生成收益曲线、资产配置、相关性等图表

输出文件

  • 分析报告rolling_risk_parity_report.txt
  • 详细数据rolling_risk_parity_data.json
  • 可视化图表
    • rolling_risk_parity_returns.png - 收益曲线图
    • rolling_risk_parity_allocation.png - 资产配置饼图
    • rolling_risk_parity_correlation.png - 相关性热力图
    • rolling_asset_returns_comparison.png - 资产收益对比图
    • rolling_weight_changes.png - 滚动权重变化图

报告内容

  • 投资组合概览
  • 收益分析(总收益、年化收益)
  • 风险指标(波动率、最大回撤、夏普比率)
  • 资产配置分析
  • 相关性分析
  • 滚动权重变化
  • 可视化图表
  • 投资建议

配置

需要配置API密钥(如使用Alpha Vantage):

  • ALPHA_VANTAGE_API_KEY=your_key_here

示例输出

中国市场滚动风险平价组合分析报告
============================================================
生成时间: 2026-02-26 10:20:04
数据来源: C:\Users\wu_zhuoran\.openclaw\workspace\data\marketdata.csv
数据时间范围: 2015-03-23 至 2026-02-25
数据点数: 2656
滚动窗口: 252个交易日(约1年)
调仓频率: 每月

平均投资组合配置:
  五年期国债 (TF.CFE): 46.04% (波动率: 2.46%)
  十年期国债 (T.CFE): 32.55% (波动率: 3.61%)
  沪铜 (CU.SHF): 9.33% (波动率: 17.87%)
  沪金 (AU.SHF): 12.09% (波动率: 14.88%)

收益指标:
  总收益率: 44.78%
  年化收益率: 3.57%

风险指标:
  年化波动率: 3.76%
  最大回撤: -9.48%
  夏普比率: 0.42

技术实现

滚动窗口计算

  • 使用expanding()窗口而非rolling()窗口
  • 确保不使用未来数据
  • 最小窗口大小为252个交易日(约1年)

权重计算

  • 基于波动率倒数加权:权重 = (1/波动率) / ∑(1/波动率)
  • 每月调仓,动态调整权重
  • 使用前一天的权重计算当日收益率

回测验证

  • 完整的回测流程
  • 避免数据泄露
  • 提供详细的绩效指标

注意事项

  • 确保数据质量,处理缺失值和异常值
  • 滚动窗口大小可根据实际情况调整
  • 调仓频率可根据市场情况调整
  • 考虑交易成本对回测结果的影响

Files

8 total
Select a file
Select a file to preview.

Comments

Loading comments…