Install
openclaw skills install a-share-daily-report-publishA股每日复盘报告生成器。自动采集通达信+同花顺问财数据,生成含涨停复盘、题材分组、连板梯队、资金流向等25模块的HTML报告。触发词:'生成A股日报'、'A股复盘'、'今日复盘'
openclaw skills install a-share-daily-report-publish安装本 Skill 前需确保以下工具可用:
tdx-connector):提供 tdx_quotes(实时行情)和 tdx_screener(条件选股)工具iwencai):提供自然语言金融数据查询,需配置 API Key⚠️ 以上依赖缺一不可。通达信 MCP 用于行情/涨停/炸板/连板数据,问财用于板块/资金流/融资融券数据。
| # | 工具 | 参数 | 目的 |
|---|---|---|---|
| 1 | tdx_quotes | code="000001" setcode="1" hasCalcInfo="1" | 上证行情+涨跌家数+成交额 |
| 2 | tdx_quotes | code="399001" setcode="0" hasCalcInfo="1" | 深证行情+涨跌家数+成交额 |
| 3 | tdx_quotes | code="399006" setcode="0" hasCalcInfo="1" | 创业板行情 |
| 4 | tdx_quotes | code="000688" setcode="1" hasCalcInfo="1" | 科创50行情 |
| 5 | tdx_screener | message="涨停" rang="AG" pageSize="200" | 涨停股+涨停原因+封成比+连板天数 |
| 6 | tdx_screener | message="炸板股" rang="AG" pageSize="200" | 炸板股列表 |
| 7 | tdx_screener | message="跌停" rang="AG" pageSize="50" | 跌停股列表 |
| 8 | tdx_screener | message="2连板" rang="AG" pageSize="50" | 2板详情 |
| 9 | tdx_screener | message="3连板" rang="AG" pageSize="20" | 3板详情 |
| 10 | tdx_screener | message="4连板" rang="AG" pageSize="10" | 4板详情 |
| 11 | tdx_screener | message="5连板及以上" rang="AG" pageSize="10" | 5板+详情 |
⚠️ 以上11个调用互相独立,必须同一轮全部并行发出,禁止逐个串行!
首板数计算:涨停总数 - 2连板数 - 3连板数 - 4连板数 - 5连板及以上数
| # | 工具 | 查询内容 | 目的 |
|---|---|---|---|
| 1a | iwencai | "今日A股同花顺二级行业涨幅前5的板块名称涨跌幅主力净流入" | 行业涨幅榜Top5(模块10) |
| 1b | iwencai | "今日A股同花顺二级行业跌幅最大的5个板块名称涨跌幅主力净流入" | 行业跌幅榜Top5(模块10) |
| 2 | iwencai | "今日A股成交额排名前10的股票代码名称涨跌幅成交额主力净流入换手率最新价" | 成交额排行(模块16) |
| 3 | iwencai | "今日A股人气排名前10的股票代码名称涨跌幅换手率量比总市值" | 人气龙头(模块4) |
| 4 | iwencai | "今日A股主力净流入前5和主力净流出前5的股票名称净流入额" | 资金风向(模块18) |
| 5 | iwencai | "今日A股跌幅前5的股票代码名称跌幅最新价主力净流出" | 跌幅榜(模块17) |
| 6 | iwencai | "今日A股同花顺二级行业主力净流入前5的板块名称涨跌幅主力净流入" | 行业净流入Top5 |
| 7 | iwencai | "今日A股同花顺二级行业主力净流出前5的板块名称涨跌幅主力净流入" | 行业净流出Top5 |
| 8 | iwencai | "今日A股概念板块主力净流入前5的板块名称涨跌幅主力净流入" | 概念净流入Top5 |
| 9 | iwencai | "今日A股概念板块主力净流出前5的板块名称涨跌幅主力净流入" | 概念净流出Top5 |
| 10 | iwencai | "今日A股地域板块主力净流入前5的板块名称涨跌幅主力净流入" | 地域净流入Top5 |
| 11 | iwencai | "今日A股地域板块主力净流出前5的板块名称涨跌幅主力净流入" | 地域净流出Top5 |
| 12 | iwencai | "沪深两市近5日融资余额融券余额融资融券余额日期" | 融资融券(模块21) |
⚠️ 以上12个调用互相独立,必须同一轮全部并行发出! ⚠️ 问财用"地域"而非"地区"查询地域板块数据。 ⚠️ 行业查询必须用"同花顺二级行业"而非"行业板块",否则会返回二级+三级行业混合数据,与同花顺APP不一致。 ⚠️ 板块涨跌榜需拆成涨幅/跌幅两个独立查询,合并查询问财不支持。
已合并至第2轮问财并行查询(#12),无需单独查询。取最新一日的数据填入 margin 字段,与前日对比计算变化。
⚠️ tdx_quotes 的 TotalBuyv/TotalSellv/PreVolInStock 字段只统计沪深主板+中小板,不含北交所等,数量偏少约200-300只。
修正方案:在第1轮取数后,用 tdx_screener 查询"全部A股"统计涨跌家数,或者用通达信APP的全市场数据直接填入 total_adv/total_dec/total_flat 字段。
"advance_decline": {
"sh_adv": 0, "sh_dec": 0, "sh_flat": 0,
"sz_adv": 0, "sz_dec": 0, "sz_flat": 0,
"total_adv": 0, "total_dec": 0, "total_flat": 0
}
sh_*/sz_*:来自 tdx_quotes(分市场明细展示用)total_*:来自通达信APP全市场数据或问财查询(报告主数据用)total_*,fallback 到 sh+sz 合计将所有取到的数据整理为以下JSON格式,写入当前工作目录的 report_data.json:
{
"date": "YYYY-MM-DD",
"weekday": "周X",
"time_label": "收盘复盘",
"time_cutoff": "15:00",
"market_tag": "📈 深创领涨 沪指微调",
"market_summary": "2654涨2505跌",
"indices": {
"sh": {"price": 0, "chg": 0},
"sz": {"price": 0, "chg": 0},
"cy": {"price": 0, "chg": 0},
"kc": {"price": 0, "chg": 0}
},
"advance_decline": {
"sh_adv": 0, "sh_dec": 0, "sh_flat": 0,
"sz_adv": 0, "sz_dec": 0, "sz_flat": 0,
"total_adv": 0, "total_dec": 0, "total_flat": 0
},
"total_amount": 0,
"amount_change": "▲较昨日放量",
"zt_total": 0,
"fst_zt": 0,
"st_zt": 0,
"st_zt_detail": "ST X只 + *ST Y只",
"ts_zt": 0,
"zb_total": 0,
"dt_total": 0,
"st_dt": 0,
"nonst_dt": 0,
"seal_rate": 0,
"cy_zt": 0,
"kc_zt": 0,
"lianban": {"1": 0, "2": 0, "3": 0, "4": 0, "5": 0},
"lianban_detail": {
"2": [{"name": "", "board_type": "", "reason": "", "concepts": ""}],
"3": [], "4": [], "5": []
},
"zt_stocks": [{"code": "", "name": "", "chg": 0, "reason": "", "concepts": "", "board_type": "", "first_time": "", "seal_amount": 0, "seal_ratio": 0, "open_times": 0, "lianban_days": 0, "lianban_label": ""}],
"zb_stocks": [{"code": "", "name": "", "chg": 0, "reason": "", "concepts": "", "open_times": 0}],
"dt_stocks": [{"code": "", "name": "", "chg": 0, "is_st": false, "reason": "", "concepts": "", "board_type": "", "lianban_days": 0}],
"sector_up": [{"name": "", "chg": 0, "flow": 0}],
"sector_down": [{"name": "", "chg": 0, "flow": 0}],
"renqi_top": [{"code": "", "name": "", "price": 0, "chg": 0, "turnover_rate": 0, "volume_ratio": 0, "market_cap": "", "tags": ""}],
"turnover_top": [{"code": "", "name": "", "price": 0, "chg": 0, "amount": 0, "turnover_rate": 0, "flow": 0}],
"fund_in": [{"name": "", "flow": 0}],
"fund_out": [{"name": "", "flow": 0}],
"decline_top": [{"code": "", "name": "", "chg": 0, "price": 0, "flow": 0, "risk": ""}],
"margin": {
"rz_balance": "", "rz_change": "",
"rq_balance": "", "rq_change": "",
"total": "", "total_change": "",
"date": ""
},
"sector_flow": {
"industry_in": [{"name": "", "flow": 0}],
"industry_out": [{"name": "", "flow": 0}],
"concept_in": [{"name": "", "flow": 0}],
"concept_out": [{"name": "", "flow": 0}],
"region_in": [{"name": "", "flow": 0}],
"region_out": [{"name": "", "flow": 0}]
},
"data_sources": {
"注释": "每个key对应一个模块,值为实际数据来源。generate.py的_DEFAULT_SOURCES有默认值,此处只需覆盖降级场景"
}
}
⚠️ 数据量要求:
zt_stocks/zb_stocks/dt_stocks必须存入全部个股数据,不要截断。generate.py 会按题材自动分组、全部展示。
⚠️ 字段映射(重要):通达信
tdx_screener返回的涨停原因字段(短概念标签,点号分隔,如"PCB概念.锂电池概念")→ 写入concepts;原因揭秘字段(详细叙事)→ 写入reason。两者用途不同,不要混淆。
python generate.py report_data.json
脚本自动:读 template.html + report_data.json → 生成 a-share-report-YYYY-MM-DD.html
data_sources 字段说明:每个模块的数据来源标签。当某个数据源降级(如问财失败改用东财),需将对应 key 的值改为实际来源(如
"sector": "东方财富")。generate.py 会读取此字段自动在报告卡片上标注正确来源,未配置则使用默认值。
使用 present_files 交付 HTML 文件。
| 字段 | 含义 | 用途 |
|---|---|---|
| sec_code / sec_name | 代码/名称 | 报告展示 |
| now_price / chg | 现价/涨跌幅 | 封板状态判断 |
| 封单金额0# | 封单金额(元) | 封板强度 |
| 首次涨停时间 | HH:MM:SS | 早盘/尾盘质量 |
| 涨停打开次数 | 整数 | 0=一字板 |
| 涨停原因 | 字符串 | 短概念标签,点号分隔,如"PCB概念.锂电池概念"→写入concepts字段,用于题材分组 |
| 原因揭秘 | 字符串 | 详细叙事归因,如"全球最大PPE树脂产区停产,PCB材料持续涨价;..."→写入reason字段,用于个股归因展示 |
| 板型 | 字符串 | 一字板/换手板/T字板 |
| 封成比 | 倍 | 封单金额/成交额 |
| 连续涨停天数 | 整数 | 连板天数 |
| 上市状态 | 字符串 | ST/*ST/退市 |
assets/template.htmlscripts/generate.pyreport_data.json(当前工作目录,临时)a-share-report-YYYY-MM-DD.html(当前工作目录)| # | 模块 | 数据源 |
|---|---|---|
| 1 | Header | 计算 |
| 2 | 4指数卡片 | tdx_quotes |
| 3 | 涨跌家数 | tdx_quotes(hasCalcInfo) + 通达信APP全市场数据修正 |
| 4 | 人气龙头Top10 | iwencai |
| 5 | 涨停封板率 | tdx_screener |
| 6 | 跌停专题 | tdx_screener |
| 7 | 短线情绪全景 | tdx_screener计算 |
| 8 | 情绪监测 | tdx_screener计算 |
| 9 | 连板天梯 | tdx_screener |
| 10 | 板块涨跌榜 | iwencai(同花顺二级行业) |
| 11 | 主线分析 | tdx_screener涨停原因聚合 |
| 12 | 核心个股筛选 | tdx_screener计算 |
| 13 | 涨停复盘 | tdx_screener涨停详细 |
| 14 | 炸板分析 | tdx_screener炸板详细 |
| 15 | 短线策略 | 数据驱动生成 |
| 16 | 行情展望 | 数据驱动生成 |
| 17 | 成交额排行 | iwencai |
| 18 | 跌幅榜 | iwencai |
| 19 | 资金风向 | iwencai |
| 20 | 板块主力资金流向 | iwencai(同花顺二级行业/概念/地域各净流入+净流出Top5) |
| 21 | 个股跟踪 | tdx_screener |
| 22 | 投资策略&心态 | 数据驱动生成 |
| 23 | 特殊事件 | 涨停原因提炼 |
| 24 | 融资融券 | iwencai |
| 25 | Footer | 计算 |