运行时依赖
安装命令
点击复制本土化适配说明
a-share-quant-report — a-分享-quant-报告 安装说明: 安装命令:["openclaw skills install a-share-quant-report"] 该技能用于支付宝相关操作,可能需要相应的平台账号或API密钥
技能文档
A-分享 Quant 报告 Reproducer 适用场景
当用户希望复现一篇A股量化/金工研报时使用本技能。目标是把“研报文字”转成“可回测策略”:
拆解研报逻辑 生成可计算的alpha表达式 选择合适的A股回测平台或MCP 根据研报和用户要求,确定下载多少只股票做回测 输出回测结果、图表、偏差说明 你必须收集的输入
如果用户没有明确给出,先补齐以下信息再执行:
报告_输入:研报URL / PDF / 文本摘要 max_下载_stocks:最多下载多少只股票用于回测(必须询问或给出默认值) universe_preference:全A / 沪深300 / 中证500 / 中证1000 / 行业池 / 跟随研报 rebalance_freq:日 / 周 / 月 holding_count:持有前N只股票,或分组回测 backtest_平台:自动选择 / Qlib / RQAlphaPlus / JoinQuant / FinQ4Cn-MCP / QMT-MCP cost_assumption:双边费率、滑点,若用户没给则使用A股日频保守默认值
默认值:
max_下载_stocks = 1000 universe_preference = 跟随研报 rebalance_freq = 周 holding_count = 20 backtest_平台 = 自动选择 cost_assumption = 手续费万3,冲击/滑点单边15bp(可根据平台能力调整) 核心原则
- 先尊重研报,再尊重用户的下载上限
数据集选择顺序严格如下:
如果研报明确写了股票池(如沪深300、中证500、全A、某行业),优先按研报股票池。 如果用户又指定了 max_下载_stocks,则在研报股票池约束内截取可交易性最强的前K只股票。 如果研报没有写股票池,则根据研报逻辑自动匹配股票池,再应用 max_下载_stocks。 如果用户明确要求“就下载N只股票回测”,把 N 视为硬上限。
- 数据集匹配规则
按以下逻辑选择数据集:
研报是大盘增强/核心资产/宽基增强:优先沪深300;若用户指定下载数量,则取流动性最好的前K只。 研报是中盘/成长增强:优先中证500。 研报是小盘/弹性/高换手:优先中证1000,但要提示冲击成本更高。 研报是全市场多因子/横截面选股:优先“流动性过滤后的全A”,并按 max_下载_stocks 下载前K只。 研报是行业轮动/行业内选股:使用相关行业成分股,必要时按行业均衡方式截取。 研报是事件驱动/财报因子:股票池应先满足事件或财务披露可得性,再应用K只上限。
- 股票下载数量的解释
max_下载_stocks 的语义是“参与回测的数据集最大股票数量”,不是最终持仓数。
下载股票数:用于计算因子、排序和生成候选池。 持仓数:由 holding_count 控制。 一般应满足:max_下载_stocks >= holding_count * 5。 如果用户设置不合理(例如下载20只却想持仓20只),要明确提示样本太窄,建议扩大到至少1000只以上;若受研报原始股票池限制,则需解释无法达到1000只的原因。
- 平台路由规则
从研报中提取:
研究对象:选股 / 择时 / 行业轮动 / 事件驱动 / 风险模型 因子来源:量价 / 基本面 / 分析师预期 / 另类数据 信号逻辑:反转 / 动量 / 估值修复 / 资金行为 / 拥挤度 / 风险补偿 组合构建:top N / 分层 / 中性化 / 权重约束 / 调仓周期 回测设定:样本区间、基准、成本、剔除规则 Step 2:把文字逻辑转成alpha表达式
优先输出一个最小可运行表达式,再输出一个增强版表达式。 表达式应尽量使用以下组件:
收益率:ret_1, ret_5, ret_20 成交量/换手:volume, turnover, adv20 波动率:std(ret_1, 20) 排序:rank(x) 时序统计:ts_mean, ts_std, ts_rank 中性化:neutralize(x, industry), neutralize(x, 记录_mktcap)
如果研报逻辑无法完全量化,先给出“代理表达式”,并明确说明替代关系。
Step 3:决定数据集与下载规模
使用 data设置-selection-rules.md 的规则,输出:
原始候选池 过滤规则 最终下载股票数量 选择理由 可能引入的偏差(如存续偏差、流动性偏差) Step 4:选择回测平台
必须说明为什么选择该平台,并指出备选平台:
平台名称 是否适合A股 是否支持因子研究 是否支持MCP或自动化接入 是否能处理用户要求的数据下载规模 Step 5:运行回测
回测时务必区分:
候选股票池数量 最终持仓股票数量 调仓频率 成本参数 基准指数/ETF Step 6:结果展示
输出必须采用多因子模型常见回测展示范式,至少包含:
研报逻辑拆解 数据集选择说明(含下载多少只股票) alpha表达式与因子预处理说明 回测配置 因子诊断:覆盖率、缺失率、去极值/标准化/中性化说明 因子有效性:IC均值、RankIC均值、ICIR、月度IC胜率、分层单调性 组合表现:多空组合、多头组合、超额收益、累计净值、年化收益、Sharpe、最大回撤、年化波动、换手率、胜率 稳定性分析:分年收益、分阶段表现、风格/行业暴露摘要 与研报不一致的原因 下一步优化建议 自动展示回测过程中生成的全部关键图片 输出格式
严格按以下结构输出:
- 研报逻辑树
- 数据集方案
- Alpha表达式
先给最小可运行版,再给增强版。
- 回测平台选择
- 回测结果
- 图片展示要求
- 复现偏差说明
- 下一步优化
至少给3条可执行优化建议。
特别约束 如果用户给了研报,就不要直接套通用alpha,必须优先复原研报逻辑。 如果用户只给主题、不给研报全文,可以先做“近似复现”,但必须说明不是严格复现。 如果用户要求“下载多少只股票”,这个值必须出现在最终报告中,不能只体现在代码或配置里。 如果回测平台或MCP不支持全部交易细节,要明确告知能力边界。 如果数据集太小导致结果不稳,要明确建议扩大 max_下载_stocks;默认目标是至少1000只股票,除非研报股票池本身不足1000只。 回测报告不是只输出文字摘要,必须尽量以表格+图片形式完成展示。 如果回测过程中生成了图片,最终回复中必须逐张展示关键图片,不能只给本地路径或附件说明。 示例触发语句 复现这篇A股金工研报,并至少下载1000只股票做回测 根据这篇研报自动选择股票池,最多下载1200只股票 用Qlib复现这篇研报,若股票池足够则下载不少于1000只股票 帮我把研报拆成alpha表达式,并用MCP回测,下载前1500只流动性最好的A股
请始终把“研报逻辑 -> 数据集规模 -> alpha表达式 -> 回测平台 -> 回测结果”串成一个完整闭环,而不是只做摘要或只给公式。