A股股市盘前盘中盘后分析/china-stocks-daily-review — A股股市盘前盘中盘后分析/China Stocks Daily Review
v2.0A股市场行情分析 Skill,支持生成三类报告:盘前市场综述、盘中市场简评、盘后复盘报告。 China A-Share Market Daily Review Skill — 生成 3 种报告类型:Pre-Market Briefing、Intraday Snapshot、Post-Market Review。 【触发词 · Trigger Words】开盘前分析、盘前综述、早盘预判、今天关注什么、盘中异动、午间复盘、收盘复盘、今日行情怎么样、市场情绪、板块轮动、主线在哪、今天主线、连板梯队、涨停分析、北向资金、南向资金、资金动向、成交额、全天行情、A股今日、复盘报告、今日市场、行情综述、开盘情绪、涨跌停统计、市场概况、明日策略、今日策略。 Pre-market analysis、intraday alert、post-market recap、market sentiment、sector rotation、limit-up ladder、northbound/southbound flow、turnover、A-share today、daily review、tomorrow's strategy。 【数据架构 · Data Architecture】三层工具降级体系:Tushare Pro 官方 API(第一优先)→ AKShare 开源库(第二优先)→ 搜索引擎实时抓取(兜底)。每个数据项独立降级,数据缺失留空不臆想。 3-tier fallback:Tushare Pro API (primary) → AKShare (secondary) → Search Engine (final fallback)。每个数据项独立降级,缺失数据留空不填充。 【不适用场景 · Out of Scope】个股深度分析、宏观政策专项解读、选股推荐、龙虎榜席位分析、期权策略。 In-depth individual stock analysis、macro policy interpretation、stock picking、top-list broker analysis、options strategies。
运行时依赖
安装命令
点击复制技能文档
A股市场行情分析 / China A-Share Market Daily Review 适用边界 / Use Cases 使用本技能的情形: 用户询问今日/近期 A 股、港股、美股整体行情或综述 涉及市场情绪、风险偏好、板块轮动、热点主题 涉及资金动向(北向资金净额、主力净流入、融资融券) 涉及涨跌停统计、大宗交易 生成开盘前准备材料、盘中快评、收盘复盘报告 不使用本技能的情形: 聚焦某只具体个股的深度分析 聚焦宏观政策、财政货币政策解读 要求具体买卖建议或选股推荐 龙虎榜席位解读(使用"龙虎榜席位风格"技能) 北向资金行为深度分析(使用"北向资金行为"技能) 取数工具说明 / Data Source Tools 本技能使用三层工具取数,按优先级依次降级: This Skill uses a 3-tier data sourcing system with priority-based fallback: 数据回退优先级 / Data Fallback Priority: 工具 A:Tushare Pro 官方 API(用户自有 token,第一优先) ├─→ Token 未配置 / 无效 / 网络不通 │ └─→ 工具 A2:AKShare(免费开源库,第二优先) ├─→ 返回空数据 / 今日无数据 │ └─→ 工具 A2:AKShare │ ├─→ 成功:使用 AKShare 数据继续 │ └─→ 失败 / 空数据 │ └─→ 工具 B:搜索引擎(第三优先,兜底) ├─→ 接口报错(超时/服务异常) │ └─→ 工具 A2:AKShare → 若仍失败 → 工具 B:搜索引擎 └─→ 接口 40203 权限不足(积分不够) ├─→ index_daily 权限不足:改用 daily 拉全市场数据统计上涨/下跌/成交额 ├─→ limit_list_ths 权限不足: │ └─→ 工具 A2:stock_zt_pool_em(有连板数)→ 失败 → 工具 B 搜索连板梯队 ├─→ moneyflow_hsgt / moneyflow_ind_ths 权限不足: │ └─→ 工具 A2 对应接口 → 失败 → 工具 B 搜索 └─→ 以上所有接口均不可用:全部降级工具 B,以搜索结果为主数据源 核心原则:每个数据项独立降级,不因某一项失败而放弃整个报告。数据缺失时该项留空,不臆想填充。 工具 A / Tool A:Tushare Pro 官方接口(第一优先) / Tushare Pro API (Primary) 直接调用官方 http://api.tushare.pro 接口,需用户自己的 token。 首次使用:Token 配置向导 每次运行前先执行以下检查脚本,若 token 未配置或无效则引导用户注册: import urllib.request, json, os, re from collections import Counter from pathlib import Path # ── Step 1:读取 Token ──────────────────────────────────────── TOKEN_FILE = Path.home() / '.tushare_token' # 存储路径:~/. tushare_token def load_token(): """从本地文件读取 token,未配置返回 None""" if TOKEN_FILE.exists(): t = TOKEN_FILE.read_text(encoding='utf-8').strip() return t if t else None return None def save_token(token: str): TOKEN_FILE.write_text(token.strip(), encoding='utf-8') print(f' Token 已保存至 {TOKEN_FILE}') # ── Step 2:网络连通性检查 ──────────────────────────────────── def check_network() -> bool: """检查能否访问 Tushare API 服务器""" try: urllib.request.urlopen('http://api.tushare.pro', timeout=5) return True except Exception as e: err = str(e) if '400' in err or '403' in err or '401' in err: return True # 服务器可达(拒绝是正常响应) return False # ── Step 3:Token 有效性验证 ────────────────────────────────── def verify_token(token: str) -> tuple[bool, str]: """ 用 daily 接口(积分要求最低)验证 token 是否有效。 注意:不用 trade_cal,该接口同样需要积分,低积分账号会返回 40203 误判为无效。 返回 (is_valid, message) """ try: body = json.dumps({ 'api_name': 'daily', 'token': token, 'params': {'ts_code': '000001.SZ', 'start_date': '20240101', 'end_date': '20240103'}, 'fields': 'trade_date,close' }).encode() req = urllib.request.Request( 'http://api.tushare.pro', data=body, headers={'Content-Type': 'application/json'}, method='POST' ) with urllib.request.urlopen(req, timeout=15) as r: result = json.loads(r.read()) code = result.get('code', -1) msg = result.get('msg', '') if code == 0: return True, 'Token 验证通过' elif 'token' in msg.lower() or 'auth' in msg.lower() or code in (-1001, -2001): return False, f'Token 无效:{msg}' else: # 40203 等积分不足:说明 token 本身有效,只是部分接口受限,继续使用 return True, f'Token 有效(积分受限,仅部分接口可用,msg={msg})' except Exception as e: return False, f'网络请求失败:{e}' # ── Step 4:启动检查入口 ────────────────────────────────────── def startup_check() -> str | None: """ 执行网络 + token 完整检查。 返回有效 token;若无法获取,返回 None(触发降级至工具 A2/B)。 """ # 4-1 网络检查 if not check_network(): print(' 无法连接 Tushare 服务器(api.tushare.pro)') print(' 请检查网络连接,或确认防火墙未拦截该域名。') print(' → 自动降级至 AKShare(工具 A2)') return None # 4-2 读取已保存的 token token = load_token() if token is None: # 首次使用,引导注册 print('=' 50) print(' 未检测到 Tushare Token,需要完成以下配置:') print() print(' 第一步:免费注册 Tushare Pro 账号') print(' 注册地址:https://tushare.pro/register?reg=666') print(' (注册后即获赠基础积分,无需付费)') print() print(' 第二步:登录后获取 Token') print(' Token 页面:https://tushare.pro/user/token') print() print(' 第三步:将 Token 粘贴到下方并回车:') print('=' 50) # 非交互式环境下直接降级 print(' 当前为自动化运行环境,无法交互输入 Token。') print(' 请先在终端运行以下命令保存 Token,再重新执行报告生成:') print() print(" python -c \"from pathlib import Path; Path.home().joinpath('.tushare_token').write_text('YOUR_TOKEN_HERE')\"") print() print(' → 本次自动降级至 AKShare(工具 A2)') return None # 4-3 验证 token 有效性 valid, msg = verify_token(token) if not valid: print(f' Token 验证失败:{msg}') print(f' Token 文件位置:{TOKEN_FILE}') print(' 请检查 Token 是否正确,或前往 https://tushare.pro/user/token 重新获取。')