风险调整的SMARTBETA

SKILL效率
效率 未标注权限 许可证不明确
安装这个技能

把 GMV、ERC、MDP、EW 四类风险平价组合统一到一个优化框架,输入资产收益序列即可求解权重、诊断分散度、依市场情绪给出动态再平衡方案,并输出可回测证据。方法经与原始文献数值交叉校验,可直接复现。

一句话选型结论

按资料字段整理

风险调整的SMARTBETA是效率类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类效率 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install zerone-iteration/risk-optimized-smartbeta
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

效率
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方zerone-iteration仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 enterprise
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791690498
正文体量15.5 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
整理待办与日程

把零散任务收进清单,排出优先级。

批量处理重复任务

把固定动作做成模板,重复执行。

把流程写成清单

把口头流程整理成可复用的步骤。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在效率场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
风险调整的SMARTBETA当前 未标注权限 未标注 未标注 未标注 有
Nano PDF 文档 联网访问 ClawHub 市场 424.9 万 OpenClaw 有
自动更新程序 浏览器控制 ClawHub 市场 296.4 万 OpenClaw 有
Gemini 助手 联网访问 ClawHub 市场 254.7 万 OpenClaw 有
word DOCX 文档 联网访问 ClawHub 市场 239.6 万 OpenClaw 有
Excel XLSX 前端 联网访问 ClawHub 市场 227.0 万 OpenClaw 有

SKILL.md 全文

15.5 KB
模型实际读到的说明书原文,来自技能仓库

风险优化下的 SmartBeta 策略

> Pay Skill 范式:鉴权型(agent_local)
> 鉴权型:履约在本机执行(需本地取数/解析资产收益文件),远端网关只做支付鉴权,支付通过后返回 fulfillment: "agent_local",Agent 再跑 scripts/ 下的脚本产出结果。

Overview

基于风险的 SmartBeta 是一类「不靠市值加权、而靠风险结构来分配权重」的资产配置方法。本技能把四类经典风险模型——最小方差(GMV)、等权(EW)、等风险贡献(ERC / 风险平价)、最大分散度(MDP)——统一到同一个优化框架之下:

w*(λ,γ,δ) = argmin ½ wᵀΣw − λ·D(w;γ) + (λ−1)·B(w;δ),  s.t. w ≥ 0
  D(w;γ) = γ·Σln wᵢ − (1−γ)·Σwᵢ²      (分散度约束:权重分散 ↔ 风险分散)
  B(w;δ) = δ·Σwᵢ + (1−δ)·Σwᵢσᵢ        (预算约束:等权方向 ↔ 风险预算方向)

通过三个参数即可在四类模型间平滑切换,并构造混合模型;进一步把「市场状态」引入 λ,得到依牛熊切换的动态 SmartBeta。技能提供四项可直接落地的能力:

  1. 风险组合权重求解:给定资产收益序列,输出 GMV/EW/ERC/MDP 或任意 (λ,γ,δ) 混合组合的权重;
  2. 四维分散度诊断:用波动率降低 VR、权重分散 WD、风险分散 RD、分散比率 DR 判定组合「到底分散没分散」,并指出它最像哪类经典模型;
  3. 静态回测对比:在真实数据上对比四类模型的年化/波动/最大回撤/夏普/胜率;
  4. 动态再平衡:以 EW 组合滚动波动率为市场情绪代理,熊市偏 ERC/GMV 控波动、牛市偏 EW 博贝塔,输出权重时序与回测。

方法经与原始文献数值交叉校验,可直接复现:ERC 的风险贡献严格相等(TRC 占比=1/N)、GMV 波动率降低最优、MDP 分散比率最优、EW 权重分散最优,均在合成与真实数据上得到验证。

When to Use(触发条件)

  • 「我想用风险平价 / 最小方差 / 最大分散度建一个组合,直接给我权重」
  • 「别只给我一个比例——告诉我这个组合到底分散没分散(GMV 还是 ERC 还是 MDP)」
  • 「这几只票/这几类资产的相关性高,风险模型还有没有用?帮我回测看看」
  • 「现在市场情绪怎么样,股债金该怎么配、什么时候该加债券控回撤」
  • 「把这套统一框架落成一个能按次跑、能出回测证据的接口/工具」

Workflow(工作流)

用户须先提供资产收益数据:scripts/fetch_assets.py 拉真实 A 股月线构造长表 assets.csv(列 date,ticker,ret,ret 为当期收益率);或用户自带同格式 CSV(支持任意标的池:股/债/金大类资产、行业指数、个股均可)。流程读取 references/rules.md 的求解与回测细则。

  1. 风险组合求解:python3 scripts/run_local.py --input assets.csv --mode optimize --model erc
    → 输出该模型权重 + 四维分散度指标;--model hybrid --lam <λ> --gamma <γ> --delta <δ> 可求任意混合组合。
  2. 分散度诊断:python3 scripts/run_local.py --input assets.csv --mode diagnose
    → 四类经典模型 VR/WD/RD/DR 对照表 + ERC 下各资产风险贡献占比(判定是否真「等风险贡献」)。
  3. 静态回测对比:python3 scripts/run_local.py --input assets.csv --mode backtest [--window 12]
    → GMV/EW/ERC/MDP 四策略绩效对比 + 净值曲线 SVG。
  4. 动态再平衡:python3 scripts/run_local.py --input assets.csv --mode dynamic [--window 12]
    → regime-based 动态组合回测 + λ(t) 曲线 SVG(牛熊切换一目了然)。

> 透明网关(付费)下 Agent 收到 paid:true 后才在本地执行上述脚本;支付未确认前不取数、不输出付费内容。

Output(输出规范)

  • 结论先行 + 可复现标注:报告首段给出判定结论与证据(如「ERC 下各资产 TRC 占比均为 0.25,风险贡献严格相等;与风险平价文献一致」),不堆方法论铺垫。
  • 权重表:各资产权重(降序)+ 组合波动率 σ_p + VR/WD/RD/DR 四象限。
  • 回测对比表:累积/年化收益率、年化波动率、最大回撤、信息比、月度胜率、回测月数。
  • 边界如实标注:高相关标的池下 ERC 与 EW 趋于重合(资产波动率相当时 ERC 收敛于 EW),风险模型分散度有限——与原文结论一致;沙箱用 A 股大盘股作真实数据验证,非原文股/债/金大类资产,生产可换自有池。
  • 取不到数据 / 列不对 / 截面月份不足 → 标注「未获取」,不推测补造。

Notes / Constraints(约束)

  • 免责:本结果仅为量化统计研究,不构成任何投资建议;历史表现不代表未来,模型存在失效风险(市场风格切换、相关性结构突变均可能导致风险模型失效)。
  • 数据契约:输入长表 CSV 列须为 date,ticker,ret;date 月末截面、ret 为当期收益(已与下期对齐、无前视);缺失值按截面剔除,不插值补造。
  • 协方差估计:回测默认用前 12 个月滚动窗口估计协方差(行业惯例),窗口不足自动跳过该期再平衡;全样本诊断用全部可用截面。
  • 动态模型边界:动态 λ 公式对观测期 σ 的极值敏感,极端行情可能使 λ 触及边界(1 或上限);λ 区间受观测窗口影响,建议用滚动窗口估 σ⁺/σ⁻。动态模型夏普与传统风险模型同量级(原文亦指出牛熊划分精度限制了夏普提升)。
  • 相关性结构敏感:风险模型在「低相关、可分散」的标的池(如股/债/金)上回撤与波动控制优秀,但在「高相关」池(如单一市场行业指数)上分散度有限——这是方法本身的已知边界,非实现缺陷。
  • 未做杠杆:本技能默认 long-only、不引入债券杠杆;原文提及债券可加杠杆增厚收益,生产可酌情扩展。

Pay Skill 模式(鉴权型,按次付费,已接入 X402)

本 Skill 默认以「提示词型」运行于 WorkBuddy 内,免费使用。作为付费技能(Pay Skill),
已通过腾讯 SkillHub + 微信支付 Agent Pay X402 协议接入按次收费。

鉴权型:履约在本机执行(需调用本地取数脚本 / 解析本地或远程资产收益文件),
远端网关只负责订单鉴权与支付状态确认,支付通过后返回 fulfillment: "agent_local",
不返回业务结果;Agent 收到 paid: true 后才在本地跑 scripts/ 下的脚本产出结果。

  • 统一网关主接口:POST https://pay.zerone-iteration.com/api/invoke
    (请求体 {"skill": "risk-optimized-smartbeta", "skill_version": "1.0.0", "query": "...", "amount": 500})
  • 兼容入口:POST https://pay.zerone-iteration.com/api/resource(等价于默认 Skill)
  • 支付回调:POST https://pay.zerone-iteration.com/api/pay/notify
  • 退款回调:POST https://pay.zerone-iteration.com/api/refund/notify
  • 实现:透明网关(nginx + Java 17 / Spring Boot + WechatPay-Java,微信支付公钥模式);
    skill/skill_version 仅做格式校验后透传进 X402 预下单,不查 SkillHub(不查注册表、不反查是否真实存在/已发布/版本匹配);
    无本地白名单,新增 Skill 免 Java 注册、免改 JAR、免重启,直接 POST /api/invoke 传正确 slug+版本即可
  • 状态:已完成本地算法在真实 A 股数据上的验证(见交付物 实测报告);付费链路 402 结构由 pay/server.py 提供,
    上线前需 DEV_MODE=true 验结构、再切生产密钥实测 1 元真扣(未做生产真扣联调)。

Agent 侧调用规范(含付费前置插件检查)

Step 0 付费前置插件检查(必须,缺失则不得发起付费调用)

  1. 检测当前环境中 weixinpay_pay 插件(微信支付 Agent Pay / AI 专属卡)是否已安装并已开通;
  2. 若不存在或未开通:不调用 /api/invoke,改为提示用户先安装/开通微信 AI 支付,完成后再继续;
  3. 若可用:继续 Step 1。

Step 1 调用统一网关:POST /api/invoke,请求体:

{
  "skill": "risk-optimized-smartbeta",
  "skill_version": "1.0.0",
  "query": "用户原始需求(用于订单留痕,不作为履约输入)",
  "amount": 500
}
  • skill:必填,固定为本 Skill 的 slug risk-optimized-smartbeta(与 SkillHub 已发布的一致;透明网关下传错 slug 时错误延后到 SkillHub/微信预下单环节才返回);
  • skill_version:必填,当前版本号 1.0.0(缺失返回 400 MISSING_SKILL_VERSION);
  • amount:必填,单位分,服务端校验为大于 0 的整数(小数/布尔/零/负数一律 400 INVALID_AMOUNT,不静默截断);
    区间不强制,价格由 SkillHub 产品定价约束。

Step 2 支付触发(X402 预下单 → 402):未支付时服务端依次执行——

  1. 生成订单号 out_trade_no(402 响应头 X-Out-Trade-No 与响应体 out_trade_no 均会返回,Agent 须记下);
  2. 调用微信支付 Native 下单,获取 code_url;
  3. 用 SkillHub 开发者私钥(SHA256withRSA)对 X402 AI 预下单请求签名;
  4. 调用 POST https://payapp.weixin.qq.com/palmpayminiapp/clawagentpay/preorder 换取 payment_code;
  5. 返回 HTTP 402,响应头 WeixinPay-Required 与 body WeixinPay 块中
    同时携带 X402 预下单返回的 payment_code(必须是 X402 的 payment_code,
    不能直接把微信 code_url 当作 payment_code 返回),并回显本单 amount 与 out_trade_no。
    ⚠️ body 的 WeixinPay 嵌套结构最易遗漏:缺失时 weixinpay 插件从 body 解析不到
    payment_code,会报「当前支付订单已过期」,该报错常被误判为「返回了 code_url」。

Step 3 用户支付授权:Agent 将 WeixinPay-Required 头(或 body WeixinPay 块)中的
payment_code 作为 paymentCode 交给 weixinpay_pay 插件,向用户申请支付授权。

Step 4 二次调用鉴权:用户完成支付后,Agent 再次调用 POST /api/invoke
(请求体同 Step 1,带请求头 X-Out-Trade-No: <402 返回的订单号>);
服务端按订单号主动向微信查单验证支付成功(不依赖回调到达)后返回:

{"ok": true, "paid": true, "fulfillment": "agent_local",
 "skill": "risk-optimized-smartbeta", "out_trade_no": "...", "already_fulfilled": false}

Step 5 本地履约(本 Skill 的关键差异):Agent 收到 paid: true 且
fulfillment: "agent_local" 后,在本机执行 scripts/ 下的脚本产出结果
(见 scripts/run_local.py),再把结果交付给用户。
支付未确认前,不执行本地取数脚本、不输出任何付费内容
(未支付重试返回 402 {"code":"NOT_PAID"})。

> 幂等说明:already_fulfilled: true 表示同一订单此前已鉴权通过;
> 此时直接复用上次已产出的结果,不要重复跑取数脚本(避免重复消耗外部接口配额)。

异常处理说明(Agent 与服务端两侧)

异常场景 处理方式
weixinpay_pay 插件不可用 不发起付费调用,引导用户安装/开通微信 AI 支付后重试
用户拒绝支付 / 支付取消 如实告知用户支付未完成,不推进后续流程、不输出付费内容;可重新发起(服务端生成新订单)
支付失败(余额不足/风控拦截) 如实转达失败原因,引导稍后重试;失败订单作废,不据此履约
payment_code 过期(最长 15 分钟) 提示订单已过期,Agent 重新调用获取新订单与新 payment_code,不得复用旧码
报错「当前支付订单已过期」 先查 402 响应体是否有 WeixinPay 嵌套结构,其次才是 code_url 方向
支付成功但二次调用仍 402(回调延迟) 等待 3~5 秒后重试,最多 3 次(指数退避),携带 X-Out-Trade-No、订单号不变
网络异常 / 5xx 指数退避重试(1s/2s/4s,上限 3 次);持续失败告知服务暂不可用
本地取数脚本失败(数据源不可用/文件缺失) 如实告知用户并说明原因,不得因为已付费而编造数据;可引导稍后重试同一订单(already_fulfilled 为 false 时不会重复扣费)
金额校验失败(400 INVALID_AMOUNT) 修正 amount 为大于 0 的整数分后重试
skill 传错 / 未发布(错误延后到 X402/微信预下单环节) 核对 skill/skill_version 与 SkillHub 已发布条目一致后重试,不得随便换 slug
skill_version 缺失(400 MISSING_SKILL_VERSION) 补上当前版本号 1.0.0 后重试
未支付即重试(402 NOT_PAID) 等待用户完成支付授权后按 Step 4 重试,不得跳过支付环节
退款 服务端经 /api/refund/notify 接收回调;已退款订单的 payment_code 失效,再次调用将重新走支付流程

> 核心原则(SkillHub 官方教程 FAQ):支付失败/未确认时必须如实告知用户,绝不据此推进后续流程。

核心特征对照表(供审核查验)

# 核心特征 实现位置
1 X402 AI 预下单换取 payment_code(开发者私钥 SHA256withRSA 签名,调官方 preorder 接口;WeixinPay-Required 返回 payment_code 而非微信 code_url) pay/server.py skillpay_x402_preorder();链路 Step 2.3~2.5
2 支付触发(未支付返回 402 + WeixinPay-Required 头/体双通道) pay/server.py _handle_invoke();链路 Step 2.5
3 订单号传递(out_trade_no 全链路关联:下单→预下单→回调置位→X-Out-Trade-No 重试→二次调用) pay/server.py generate_trade_no() / mark_paid / 402 响应 X-Out-Trade-No 头
4 重试机制(402 回调延迟重试带 X-Out-Trade-No、5xx 指数退避、订单过期重新下单) 上表「异常处理说明」
5 付费前置插件检查(weixinpay_pay 可用性检测,缺失不发起付费调用) 链路 Step 0
6 异常处理说明(支付失败/取消/过期/退款/本地脚本失败等全场景) 上表「异常处理说明」
7 透明网关(skill/skill_version 仅做格式校验后透传,不查 SkillHub、不查注册表) pay/server.py resolve_skill()(无 SKILL_REGISTRY,免 Java 注册/重启)

包内 pay/server.py 为 Python 参考实现(含 APIv3 签名、X402 预下单、回调验签解密、
主动查单、幂等鉴权、透明网关无需注册表),部署说明见 PAY_SKILL_UPGRADE.md 与 pay_skill.yaml。

注意:本 Skill 涉及两套独立密钥/证书——

  • 微信支付 API 证书(wechat_pay):用于微信 Native 下单与主动查单;
  • SkillHub 开发者密钥(skillhub):用于 X402 预下单签名。

私钥均不得写入 Skill 包或仓库,须通过环境变量注入服务端。

常见问题

5 问
答案由本站依据条目字段整理
风险调整的SMARTBETA怎么安装?

在支持 Skills 的客户端里执行:skillhub install zerone-iteration/risk-optimized-smartbeta。安装方式为未标注。装完刷新技能列表或重开客户端。

风险调整的SMARTBETA支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

风险调整的SMARTBETA权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

风险调整的SMARTBETA收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

风险调整的SMARTBETA用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。