Agent skill

akshare-risk-trigger

用于基于AkShare数据的风险触发监控场景。适用于金融工作中的基础任务单元。

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/akshare-risk-trigger

SKILL.md

AKShare A股风险舆情触发 Skill

1. Skill 概述

这个 Skill 基于 AKShare 的 A 股行情、新闻、热度与风险专题数据,构建一个可执行的 风险舆情触发机制。它不是预测未来收益的黑盒模型,而是一个面向研究、预警和盘前/盘后巡检的规则型引擎:

  • 识别 价格风险:大跌、波动放大、换手异常。
  • 识别 舆情风险:个股相关新闻中的负面关键词聚集。
  • 识别 热度失衡:热度冲高但排名恶化,或舆情过热。
  • 识别 结构性风险:高股权质押、商誉减值预期。
  • 输出 触发等级触发原因综合风险分数

2. 数据来源

本 Skill 默认使用以下 AKShare 接口:

  1. A股历史行情stock_zh_a_hist

    • 用途:计算收益率、波动率、回撤、换手异常等。
    • 来源说明:东方财富沪深京 A 股日频历史行情。
  2. 个股新闻stock_news_em

    • 用途:抓取指定股票或关键词的最近新闻,进行负面关键词计数。
    • 来源说明:东方财富指定个股新闻资讯。
  3. A股人气榜stock_hot_rank_em

    • 用途:获取当前人气排名,用作过热/拥挤度参考。
  4. 个股热度历史趋势stock_hot_rank_detail_em

    • 用途:获取近期排名、新晋粉丝、铁杆粉丝等热度变化。
  5. 上市公司质押比例stock_gpzy_pledge_ratio_em

    • 用途:识别高质押风险。
  6. 商誉减值预期明细stock_sy_yq_em

    • 用途:识别商誉减值预期带来的财务/舆情共振风险。
  7. 千股千评stock_comment_em

    • 用途:读取机构参与度、综合得分、关注指数等辅助特征。

建议安装 AKShare 最新版本后使用,因为 stock_news_emstock_hot_rank_detail_em 等接口在近几个版本有过修复记录。AKShare 官方文档当前展示的版本为 1.18.39,官方安装建议为 pip install akshare --upgrade,GitHub 仓库采用 MIT License

3. 功能

3.1 核心触发维度

Skill 会从 4 个维度构造风险触发项:

A. 行情风险触发

  • 单日大跌触发:最近一个交易日跌幅 <= 阈值(默认 -7%)
  • 5日累计下跌触发:最近 5 个交易日累计收益 <= 阈值(默认 -12%)
  • 20日波动放大触发:近 20 日波动率 / 近 60 日波动率 >= 阈值(默认 1.5)
  • 换手异常触发:最新换手率 / 过去 20 日平均换手率 >= 阈值(默认 2.0)
  • 回撤触发:最近收盘价相对 60 日最高收盘回撤 >= 阈值(默认 20%)

B. 舆情风险触发

  • 统计最近新闻标题和摘要中的 负面关键词,如:
    • 立案
    • 处罚
    • 违规
    • 违约
    • 减值
    • 商誉
    • 质押
    • 暴跌
    • 亏损
    • ST
    • 问询函
    • 诉讼
    • 终止
    • 下修
  • 若负面新闻占比超过阈值(默认 30%),触发 舆情风险

C. 热度过热触发

  • 当前处于人气榜前列,同时:
    • 近期排名恶化,或
    • 近几次热度波动异常,或
    • 新闻负面占比不低
  • 用来识别 “高关注 + 风险事件” 的拥挤交易场景。

D. 结构性风险触发

  • 高质押触发:上市公司质押比例 >= 阈值(默认 20%)
  • 商誉减值预期触发:在对应报告期的商誉减值预期明细中出现
  • 千股千评低分辅助触发:综合得分过低,作为弱辅助信号

3.2 输出结果

输出字段示例:

  • symbol:股票代码
  • as_of_date:计算日期
  • risk_score:0~100 的综合风险分数
  • risk_levelLOW / MEDIUM / HIGH / CRITICAL
  • triggers:触发项列表
  • headline_negative_ratio:负面新闻占比
  • pledge_ratio:质押比例(如可获取)
  • goodwill_warning:是否存在商誉减值预期
  • latest_rank:最新热度排名(如可获取)
  • comment_score:千股千评综合得分(如可获取)

4. 目录结构

text
akshare-a-share-risk-sentiment-trigger/
├─ skill.md
├─ LICENSE
├─ requirements.txt
└─ script/
   ├─ config.py
   ├─ utils.py
   ├─ data_loader.py
   ├─ risk_engine.py
   └─ run_skill.py

5. 使用示例

5.1 安装依赖

bash
pip install -r requirements.txt

5.2 运行单只股票预警

bash
python script/run_skill.py --symbol 603777

5.3 指定日期区间与报告期

bash
python script/run_skill.py \
  --symbol 300750 \
  --start-date 20240101 \
  --end-date 20260313 \
  --report-date 20241231

5.4 输出为 JSON

bash
python script/run_skill.py --symbol 002594 --output json

5.5 自定义负面关键词

bash
python script/run_skill.py \
  --symbol 600519 \
  --negative-keywords 立案,处罚,问询函,暴雷,违约,减值

6. 触发逻辑说明

Skill 内置一个规则分值系统,默认做法如下:

  • 单日大跌:+18 分
  • 5日累计大跌:+16 分
  • 波动放大:+12 分
  • 换手异常:+10 分
  • 60日大回撤:+12 分
  • 负面新闻占比 >= 30%:+12 分
  • 负面新闻占比 >= 50%:额外 +8 分
  • 人气榜前 100 且排名恶化:+6 分
  • 质押比例 >= 20%:+10 分
  • 质押比例 >= 35%:额外 +8 分
  • 商誉减值预期:+14 分
  • 千股千评综合得分偏低:+4 分

风险等级映射:

  • 0 ~ 19:LOW
  • 20 ~ 39:MEDIUM
  • 40 ~ 59:HIGH
  • 60+:CRITICAL

你可以在 script/config.py 中调整阈值与打分权重。

7. 交易说明

  1. 本 Skill 仅用于研究、监控、教学与策略辅助,不构成任何投资建议。
  2. 风险触发并不等于必然下跌,也可能对应利空兑现后的反弹阶段。
  3. AKShare 的部分数据来自第三方站点,存在:
    • 接口临时失效
    • 字段变更
    • 数据延迟
    • 历史口径修正
  4. 建议将本 Skill 用作 预警系统,而不是独立下单系统。
  5. 在真实交易中,至少结合以下信息复核:
    • 公司公告
    • 交易所问询/处罚
    • 财报与预告
    • 板块环境
    • 市场整体风险偏好
  6. 若用于量化回测,请先固定样本期、字段口径与接口版本,避免未来函数与幸存者偏差。
  7. 热度与新闻类信号很容易放大短线噪声,建议与流动性、财务质量、事件验证机制配合使用。

8. 可扩展方向

  • 新增公告文本解析
  • 接入板块热度与资金流
  • 多股票批量扫描
  • 企业级消息推送(飞书 / 钉钉 / 企业微信)
  • 回测模块:检验触发后 1/3/5/10 日收益分布
  • LLM 摘要模块:自动生成风险说明

9. License

本 Skill 代码 License

本压缩包内除第三方依赖外的自编代码采用 MIT License,详见根目录 LICENSE

第三方依赖说明

  • AKShare 官方仓库采用 MIT License
  • 通过 AKShare 获取的数据,仍需遵守 AKShare 与其上游数据源的使用约束。
  • 使用者应自行确认对第三方数据源的合规使用边界,尤其是在商业环境、再分发、缓存和高频采集场景下。

Expand your agent's capabilities with these related and highly-rated skills.

Didn't find tool you were looking for?

Be as detailed as possible for better results