"中国A股八维行情分析:技术、资金、市场结构、情绪、宏观、板块轮动、Sequoia量化信号 + 第8维CZSC缠论确认;支持指数、个股、本地/国内节点降级。"
Resources
4Install
npx skillscat add lzh-xbccz/hermes-finance/a-share-market-analysis Install via the SkillsCat registry.
中国 A 股行情分析
⛔ 铁律:你不是在写行情播报,你是在做证据审计。每个方向判断必须回答"为什么",并先做反向审计。允许使用"证据不足"、"方向未确认"、"观望";禁止在证据冲突时硬给做多/做空。
🆕 v3.0 — 集成 Sequoia-X 7策略量化选股引擎
量化选股(a_share_scanner.py)
基于 baostock 免费数据源,收盘后自动扫描全市场 5200+ 只 A 股:
# 首次:回填历史数据 (~12分钟)
python a_share_scanner.py --backfill
# 日常:增量更新 + 7策略扫描
python a_share_scanner.py
# 仅跑特定策略
python a_share_scanner.py --strategy turtle| 策略 | 说明 |
|---|---|
| 海龟突破 | 20日新高 + 成交额过亿 + 防诱多阳线 |
| 均线放量 | 均线多头排列 + 放量突破 |
| 高窄旗形 | 强动量后极度收敛缩量 |
| 涨停洗盘 | 涨停后回踩确认 |
| 跌停反包 | 上升趋势中跌停后的反包 |
| RPS突破 | 欧奈尔相对强度突破 |
| 定增回补 | 定增破发后的回补机会 |
数据源:baostock(免费、无需注册、后复权)→ 本地 SQLite,彻底规避东方财富反爬。
八维分析框架
| # | 维度 | 核心关注 | 数据源 | 状态 |
|---|---|---|---|---|
| 1 | 📈 技术结构 | K线趋势、量价关系、支撑阻力、形态 | 新浪 API + 腾讯 K 线 | ✅ |
| 2 | 💰 资金面 | 北向资金净流入/流出(A股独有) | 浏览器→东方财富网页 | 🐢 慢但可用 |
| 3 | 📊 市场结构 | 涨跌家数、涨停跌停统计 | 浏览器→东方财富网页 | 🐢 慢但可用 |
| 4 | 😱 情绪量能 | 成交量对比、风险偏好 | 新浪 API + 腾讯 K 线 | ✅ |
| 5 | 🌍 宏观政策 | 美股联动、人民币汇率、政策要闻 | Yahoo Finance + 新浪/腾讯 + Google News RSS | ✅ |
| 6 | 🔄 板块轮动 | 领涨/领跌板块、热点概念、龙头识别 | 东方财富板块流 + 雪球热股 | 🔴 海外严重受限 |
| 7 | 🧮 量化/Sequoia | 7策略扫描、RPS、突破/洗盘/反包信号 | baostock + SQLite | ✅ |
| 8 | 🧭 缠论结构 | CZSC 中枢、笔、背驰、买卖点候补 | 腾讯日线/个股K线 | 可用则跑 |
强制输出规则:
- 先给
各维度证据,只基于第 1-7 维逐项列出每个维度的偏多/偏空/中性/缺失状态及理由。不要用投票计数或权重打分决定方向。 - 必须做
反向审计:若资金、广度、板块或政策新闻与技术方向冲突,最终方向降为震荡或保守档。 - 再给
缠论确认,说明 CZSC 是确认、冲突还是不足。 - 最终方向由你基于各维度证据的逻辑强度综合判断后决定;A 股受 T+1、涨跌停、政策与板块轮动约束,CZSC 不能覆盖这些限制。
- 使用
python3 -m hermes_finance analyze a-share --stock <CODE>或 MCPanalyze_a_share,默认会尽量用采集器 K 线跑 CZSC。
⚠️ 海外服务器实测结果(2026-05-04 更新):
- ❌ 东方财富 API(push2/datacenter-web):TLS 成功,nginx 返回 502(Geo-block)
- ❌ 同花顺(10jqka.com.cn):Nginx forbidden,封海外 IP
- ❌ 新浪 hq.sinajs.cn(浏览器 fetch):CORS + Forbidden;curl CLI 可用
- ✅ 新浪财经首页(finance.sina.com.cn):指数数据可 snapshot 提取
- ✅ 腾讯
fqkline/kline:历史日 K +market市场状态可直接返回(含休市/节假日提示)- ✅ 雪球(xueqiu.com):海外可访问,三大指数+热股榜正常,板块排行 API 需登录
- ✅ 东方财富网页(浏览器):北向资金历史数据 + 板块持股流可提取,板块排行页 Canvas 渲染不可抓
- ❌ DuckDuckGo 新闻搜索:已触发 bot challenge,不再适合作为主新闻源
- ✅ Google News RSS:可直接解析,适合作为新闻主路径
- 详见
references/china-finance-apis.md
Playwright + Stealth 抓取(东方财富/同花顺等被封 API 的兜底)
当 curl API 被 Geo-block/WAF 拦截时,使用 Playwright 模拟浏览器抓取:
# 抓取东方财富北向资金页面
node /root/.hermes/scripts/crawl.mjs "https://data.eastmoney.com/hsgt/index.html" \
--wait ".content-sepe" --extract ".content-sepe" --timeout 20000
# 抓取同花顺板块数据
node /root/.hermes/scripts/crawl.mjs "https://q.10jqka.com.cn/thshy/" \
--wait "table" --extract "table" --timeout 20000或 Python 统一入口:
import sys; sys.path.insert(0, '/root/.hermes/scripts')
from smart_crawl import smart_crawl
content, method = smart_crawl("https://data.eastmoney.com/hsgt/index.html")⛔ 禁止调用 mcp_yfinance 系列工具:Yahoo Finance 频繁 429。所有数据通过
scripts/a_share_fetch.py获取。模型不要额外调mcp_yfinance_get_historical_stock_prices等 MCP 工具。
执行铁律
1. 先判断市场状态,再看方向
- 报告开头必须标注分析时间(UTC + 北京时间)
- 必须先判断当前属于:
交易中 / 午间休市 / 收盘后 / 周末 / 法定节假日 - 若指数快照时间戳落后于当前交易日,默认视为非实时数据
2. 先复盘最近 7-30 日主导手法
- 每次分析必须先回答最近更像:
趋势推进 / 箱体洗盘 / 冲高派发 / 跌破回收 / 阴跌磨人 - 再判断今天看到的是:
延续 / 回踩 / 诱多 / 诱空 / 纯噪音
3. 数据缺口必须降级处理
- 北向资金、涨跌家数、板块轮动三项里,只要缺两项,最终方向不得给强烈结论,只能
偏多 / 偏空 / 震荡中的保守档。这是数据完整性约束,不是投票计数。 - 若历史 K 线、指数快照、市场状态三者之一缺失,直接标注「数据不足」
- 数据缺失时必须明确写出缺口,绝不编造
4. 新闻只认硬新闻
- 监管、交易所、央行、部委、官方公告、宏观数据 = A/B 类,可影响方向
- 评论稿、标题党、技术分析文章、ETF营销文 = C 类,只能当背景,不得主导结论
5. A 股是 T+1,禁止把它当加密日内盘
- 现价贴近关键阻力/支撑、盈亏比很差时,不追单
- A 股日内分析的实质是次日预判,必须在结论中标注
T+1限制
覆盖标的
必有三大指数:
- 上证指数 (000001) —
sh000001 - 深证成指 (399001) —
sz399001 - 创业板指 (399006) —
sz399006
可选(用户指定):科创板 50、沪深 300、中证 500、个股。
一键分析流程
按顺序执行数据块,最后汇总输出完整报告。
块 0:前置检查 — 时间、市场状态、节假日 ⚠️ 必做
先确认现在是实时盘、午休、收盘后,还是法定节假日。A 股休市时,所有「实时」分析都必须自动降级成盘后/假期分析。
# 腾讯 K 线接口自带 market 状态,能直接看到 SH/SZ/CYB 是否开盘或休市
curl -s "https://web.ifzq.gtimg.cn/appstock/app/fqkline/get?param=sh000001,day,,,30,qfq" | python3 -c "
import json, sys
from datetime import datetime, timezone, timedelta
d = json.load(sys.stdin)['data']['sh000001']['qt']
market = d.get('market', [''])[0]
bjt = timezone(timedelta(hours=8))
print('分析时间 UTC :', datetime.now(timezone.utc).strftime('%Y-%m-%d %H:%M'))
print('分析时间 BJT :', datetime.now(bjt).strftime('%Y-%m-%d %H:%M'))
print()
print('=== 市场状态 ===')
for item in market.split('|'):
if item.startswith(('SH_', 'SZ_', 'CYB_', 'NEWSH_', 'NEWSZ_')):
print(item)
"执行规则:
SH_close_劳动节休市、SZ_close_劳动节休市这类状态 = 节假日分析,不得写成实时盘判断11:30-13:00北京时间 = 午间休市,不得误判为连续交易- 若指数快照日期落后于今日,说明市场未开或仍在节假日
块 1:三大指数实时行情(新浪 API)
curl -s "https://hq.sinajs.cn/list=sh000001,sz399001,sz399006" \
--compressed \
-H "Referer: https://finance.sina.com.cn" \
| iconv -f gbk -t utf-8 \
| python3 -c "
import sys
for line in sys.stdin:
line = line.strip()
if not line or '=' not in line: continue
data = line.split('=', 1)[1].strip('\"').split(',')
if len(data) < 10: continue
name = data[0]
current = float(data[1])
prev_close = float(data[2])
open_p = float(data[3]) if data[3] else 0
high = float(data[4])
low = float(data[5])
vol = float(data[8]) if data[8] else 0
amount = float(data[9]) if data[9] else 0
trade_date = data[30] if len(data) > 30 else ''
trade_time = data[31] if len(data) > 31 else ''
chg_pct = (current - prev_close) / prev_close * 100 if prev_close else 0
color = '🔴' if chg_pct < 0 else '🟢'
print(f'{color} {name}: {current:,.2f} ({chg_pct:+.2f}%)')
print(f' 今开:{open_p:,.2f} 最高:{high:,.2f} 最低:{low:,.2f} 昨收:{prev_close:,.2f}')
print(f' 成交量:{vol/1e8:.2f}亿手 成交额:{amount/1e8:.1f}亿')
if trade_date or trade_time:
print(f' 时间戳:{trade_date} {trade_time}'.strip())
print()
"新浪数据字段顺序:名称, 当前价, 昨收, 今开, 最高, 最低, _, _, 成交量(手), 成交额(元), ...
备用路径(腾讯快照):
curl -s "https://qt.gtimg.cn/q=sh000001,sz399001,sz399006" | iconv -f gbk -t utf-8腾讯返回串里自带
YYYYMMDDHHMMSS时间戳,适合交叉确认是否为节假日/盘后快照。
块 1.5:指数历史 K 线 + 最近轨迹复盘(腾讯 K 线,零依赖)
不再把 AKShare 当硬依赖。优先使用腾讯
fqkline/kline接口,既能取近 30 日日 K,也能拿到市场状态字段。
curl -s "https://web.ifzq.gtimg.cn/appstock/app/fqkline/get?param=sh000001,day,,,30,qfq" | python3 -c "
import json, sys
d = json.load(sys.stdin)['data']['sh000001']
rows = d['day']
print('=== 上证指数 近30日 ===')
for row in rows:
dt, o, c, h, l, vol = row[:6]
o, c, h, l, vol = map(float, [o, c, h, l, vol])
chg = (c - o) / o * 100 if o else 0
color = '🟢' if chg >= 0 else '🔴'
print(f'{dt[5:]} {color} O:{o:,.0f} C:{c:,.0f} H:{h:,.0f} L:{l:,.0f} {chg:+.2f}% 量:{vol/1e8:.2f}亿')
"复盘后必须输出:
- 最近
7-30日主导手法:趋势推进 / 箱体洗盘 / 冲高派发 / 跌破回收 / 阴跌磨人 - 最近
2-3次关键动作:放量突破、长上影冲高回落、跌破后收回、缩量横盘等 - 今天更像:
延续 / 回踩 / 诱多 / 诱空 / 纯噪音
AKShare 可选路径:
- 若本机已装 AKShare,可继续使用
stock_zh_index_daily_em - 若未安装,不得因此跳过历史轨迹复盘;应改走腾讯 K 线
块 2:资金面 — 北向资金 🌐 浏览器抓取
A 股最关键的独有指标。 北向资金(外资通过沪股通/深股通买卖A股)被称为「聪明钱」。
东方财富 API 被墙,但网页可通过浏览器正常加载并提取数据(已验证 2026-05-02)。
步骤:
browser_navigate→https://data.eastmoney.com/hsgt/index.html- 等待页面加载(5-10秒)
browser_console执行以下 JS:
// 提取北向资金 + 涨跌家数
const rows = document.querySelectorAll('table tbody tr');
const results = [];
rows.forEach(row => {
const cells = row.querySelectorAll('td');
if (cells.length >= 11) {
results.push({
type: cells[0]?.innerText?.trim(),
board: cells[1]?.innerText?.trim(),
status: cells[2]?.innerText?.trim(),
netBuy: cells[3]?.innerText?.trim(),
totalVol: cells[4]?.innerText?.trim(),
balance: cells[5]?.innerText?.trim(),
up: cells[6]?.innerText?.trim(),
flat: cells[7]?.innerText?.trim(),
down: cells[8]?.innerText?.trim(),
index: cells[9]?.innerText?.trim(),
indexChg: cells[10]?.innerText?.trim()
});
}
});
JSON.stringify(results, null, 2)- 将提取的 JSON 传给
scripts/a_share_data.py解析:
python3 ~/.hermes/scripts/a_share_data.py northbound '<json>'解析规则:
- 陆股通行(board = "港>沪" / "港>深")= 北向资金
netBuy带「亿元」单位,正数=外资净流入(利好),负数=净流出(利空)- 涨跌家数从「港>沪」行的 up/down/flat 字段提取
- 状态列显示「收盘」或「交易中」
北向资金判断标准:
| 净流入 | 信号 |
|---|---|
| >50亿 | 🟢 强烈看涨 |
| 10~50亿 | 🟢 偏多 |
| -10~10亿 | ⚪ 中性 |
| -50~-10亿 | 🟡 偏空 |
| <-50亿 | 🔴 强烈看空 |
块 3:市场结构 — 涨跌家数 🌐 浏览器抓取
涨跌家数从北向资金同一个页面获取——已在块 2 中一并提取。
解析 rules:从返回 JSON 中取 board="港>沪" 行的 up/down/flat 字段。
若页面返回-、空值、或市场处于休市/节假日,必须标注「数据暂缺/市场休市」。
涨跌家数判断标准:
| 涨跌比 | 信号 |
|---|---|
| >3:1 | 🔴 极度亢奋(追高风险) |
| 1.5~3:1 | 🟢 偏多 |
| 1:1.5~3 | 🟡 偏空 |
| <1:3 | 🟢 极度恐慌(机会信号) |
涨停跌停(需额外浏览器抓取):
- 涨停 > 100 家 = 赚钱效应强
- 跌停 > 50 家 = 恐慌蔓延
- 数据源:
https://data.eastmoney.com/cjsj/hqtzcj.html(⚠️ JS 动态加载,可能提取失败,此时标注「数据暂缺」)
块 4:情绪面
# 恐惧贪婪指数(加密市场情绪,作为风险偏好参考)
curl -s "https://api.alternative.me/fng/?limit=1" | python3 -c "
import json, sys
d = json.load(sys.stdin)['data'][0]
print(f'加密恐惧贪婪: {d[\"value\"]} ({d[\"value_classification\"]})')
"
# A 股自身情绪:成交额 vs 5日均量(从块 1.5 的 K 线数据计算)
# 公式:今日成交额 / 近5日均量 > 1.5 = 放量(情绪高涨)
# < 0.7 = 缩量(情绪低迷)块 5:宏观面 — 美股联动 + 人民币汇率
# 美股三大指数 + VIX(Yahoo Finance)
curl -s -H "User-Agent: Mozilla/5.0" "https://query1.finance.yahoo.com/v8/finance/chart/^GSPC?interval=1d&range=5d" | python3 -c "
import json, sys
d = json.load(sys.stdin)['chart']['result'][0]
meta = d['meta']
quotes = d['indicators']['quote'][0]
idx = d['timestamp']
from datetime import datetime, timezone
print('=== 标普500 近5日 ===')
for i in range(len(idx)):
dt = datetime.fromtimestamp(idx[i], tz=timezone.utc).strftime('%m-%d')
o = quotes['open'][i]
c = quotes['close'][i]
chg = (c-o)/o*100 if o else 0
co = '🟢' if chg>=0 else '🔴'
print(f'{dt} {co} O:{o:,.0f} C:{c:,.0f} {chg:+.2f}%')
prev = meta.get('chartPreviousClose', 0)
cur = meta.get('regularMarketPrice', 0)
print(f'变动: {(cur-prev)/prev*100:+.2f}%')
"
# VIX
curl -s "https://query1.finance.yahoo.com/v8/finance/chart/^VIX?interval=1d&range=5d" | python3 -c "
import json, sys
meta = json.load(sys.stdin)['chart']['result'][0]['meta']
cur, prev = meta.get('regularMarketPrice',0), meta.get('chartPreviousClose',0)
print(f'VIX: {cur:.1f} (前:{prev:.1f})')
if cur < 15: print('🟢 安逸 → 利好风险资产')
elif cur < 20: print('🟡 正常')
elif cur < 30: print('🟠 担忧 → A股承压')
else: print('🔴 恐慌 → A股大概率大跌')
"
# 人民币汇率(新浪)
curl -s "https://hq.sinajs.cn/list=USDCNY,USDCNH" \
--compressed \
-H "Referer: https://finance.sina.com.cn" \
| iconv -f gbk -t utf-8宏观执行规则:
- 若当前为周末/节假日,美股现货与人民币汇率只作为背景过滤,不作为实时触发
- A 股对美股的传导通常是「隔夜情绪 + 次日预期」,独立性高于加密
块 6:板块轮动 🔄
⚠️⚠️ 海外服务器获取板块行排行极度困难。 同花顺封 IP,雪球板块 API 需登录,东方财富 Canvas 渲染。以下方案用「板块持股资金流」替代纯涨幅排行。
方法 A:东方财富 — 板块持股资金流(🐢 海外可用)
东方财富页面含「板块持股」表(Table 11),提供板块涨跌幅 + 资金流向,是目前海外唯一可用的板块维度数据。
步骤:
browser_navigate→https://data.eastmoney.com/hsgt/index.html- 等待页面加载(5-10 秒)
browser_console执行:
// 提取板块持股流数据(Table 11)
(() => {
const tables = document.querySelectorAll('table');
// 定位板块持股表:headers 含「板块名称」「涨跌幅」
for (const table of tables) {
const headers = Array.from(table.querySelectorAll('th')).map(h => h.innerText.trim());
if (headers.some(h => h.includes('板块名称')) && headers.some(h => h.includes('涨跌幅'))) {
const rows = table.querySelectorAll('tbody tr');
return JSON.stringify(Array.from(rows).slice(0, 10).map(row => {
const cells = row.querySelectorAll('td');
return {
sector: cells[1]?.innerText?.trim(),
changePct: cells[3]?.innerText?.trim(),
holding: cells[4]?.innerText?.trim(),
count: cells[5]?.innerText?.trim()
};
}), null, 2);
}
}
return '[]';
})()- 输出结果按涨跌幅排序即为板块强弱排行。
方法 B:雪球热股榜(🐢 辅助参考)
雪球(xueqiu.com)海外可访问,首页热股榜可反映当日资金热点,但无板块排行。
步骤:
browser_navigate→https://xueqiu.com/hq- 从 snapshot 提取「热股榜」列表,观察热门个股所属板块
- 热门股聚集的板块 = 当日主线
方法 C:东方财富板块排行页(⚠️ Canvas 渲染,仅作最后尝试)
https://data.eastmoney.com/bkzj/hy.html— 表格 Canvas 渲染,不可直接querySelectorAll提取。但可尝试用browser_console搜索页面<script>标签中的 JSON 数据块。
// 尝试从页面脚本中提取板块数据 JSON
Array.from(document.querySelectorAll('script')).map(s => s.innerText).join('\n').match(/\{[^}]*"industryName"[^}]*\}/g)板块轮动分析要点
从提取到的数据中判断:
- 当日主线:资金净流入最多的板块 + 涨幅领先板块的共性主题
- 板块持续性:对比前几日数据,判断是否连续上榜
- 龙头股:雪球热股榜中领涨板块的代表个股
- 轮动信号:
- 银行/消费领涨 = 🟡 防御/避险
- 科技/券商领涨 + 放量 = 🟢 进攻
- 板块全线下挫 = 🔴 系统性恐慌
- 数据质量标注:板块持股流数据 ≠ 纯涨幅排行,报告中必须标注「数据来自板块资金流」
块 5b:增强宏观利率 📐 ⚠️ 新增(macro-rates-monitor 精简版)
A股受美股隔夜情绪+美联储利率路径+美元影响(北向资金对美债收益率和DXY高度敏感)。
与块5并行拉取。
# 增强宏观(Yahoo Finance,4符号 + 延迟防429)
import json, urllib.request, time
SYMBOLS = {'^TNX':'10Y','^FVX':'5Y','DX-Y.NYB':'DXY','^VIX':'VIX'}
results = {}
for sym, label in SYMBOLS.items():
try:
url = f'https://query1.finance.yahoo.com/v8/finance/chart/{sym}?interval=1d&range=2d'
req = urllib.request.Request(url, headers={'User-Agent':'Mozilla/5.0'})
d = json.load(urllib.request.urlopen(req,timeout=10))['chart']['result'][0]
m = d['meta']
cur = m.get('regularMarketPrice',0); prev = m.get('chartPreviousClose',0)
chg = (cur-prev)/prev*100 if prev else 0
results[label] = {'cur':cur,'chg':chg}
print(f'{label}: {cur:.2f} ({chg:+.2f}%)')
time.sleep(0.5)
except Exception as e:
if '429' in str(e): print(f'{label}: 429 RATE LIMIT'); break
print(f'{label}: ERR')
tnx=results.get('10Y',{}).get('cur',0); fvx=results.get('5Y',{}).get('cur',0)
dxy=results.get('DXY',{}).get('cur',0); dxy_chg=results.get('DXY',{}).get('chg',0)
vix=results.get('VIX',{}).get('cur',0)
print(f'\n10Y: {tnx:.1f}% | 5Y: {fvx:.1f}% | DXY: {dxy:.1f}({dxy_chg:+.2f}%) | VIX: {vix:.1f}')
# 北向资金逻辑
if tnx > 4.5: print('10Y>4.5% -> USD attractive -> 北向流出压力')
elif tnx < 3.5: print('10Y<3.5% -> USD weakening -> 北向流入利好')
else: print('10Y neutral -> 北向按自身节奏')
if dxy_chg < -0.5: print('DXY弱 -> 人民币升值预期 -> 北向流入利好A股')
elif dxy_chg > 0.5: print('DXY强 -> 人民币贬值压力 -> 北向流出利空A股')
# 美股隔夜传导
if vix > 25: print('VIX>25 -> 美股恐慌 -> A股开盘承压')
elif vix < 15: print('VIX<15 -> 美股安逸 -> A股开盘偏暖')
else: print(f'VIX正常({vix:.1f}) -> 隔夜传导中性')
print(f'FOMC: Jun 17-18, 2026 | CPI: ~May 12 | A股不受T+1影响隔夜美股')块5b 北向资金联动逻辑:
| 美债10Y | DXY | 北向预期 | A股影响 |
|---|---|---|---|
| >4.5% | >105 | 流出 | 🔴 利空 |
| <3.5% | <100 | 流入 | 🟢 利好 |
| 3.5-4.5% | 100-105 | 中性 | ⚪ 按自身节奏 |
块 7:新闻搜索(政策面)
DuckDuckGo 已触发 bot challenge,不再作为主路径。优先用 Google News RSS;若需要中文财经站即时快讯,再用新浪财经首页 headlines 作补充。
# Google News RSS(中文)
curl -s "https://news.google.com/rss/search?q=%E4%B8%8A%E8%AF%81+OR+%E6%B7%B1%E8%AF%81+OR+%E5%88%9B%E4%B8%9A%E6%9D%BF&hl=zh-CN&gl=CN&ceid=CN:zh-Hans" | python3 -c "
import sys, html, xml.etree.ElementTree as ET
root = ET.fromstring(sys.stdin.read())
items = root.findall('./channel/item')
print('=== A股相关新闻(Google News RSS)===')
for i, item in enumerate(items[:8], 1):
title = html.unescape(item.findtext('title', '')).strip()
source = item.findtext('source', '')
pub = item.findtext('pubDate', '').strip()
print(f'{i}. {title}')
if pub:
print(f' {pub}')
"
# 新浪财经首页 headlines(补充)
curl -s "https://finance.sina.com.cn" | python3 -c "
import re, sys
html = sys.stdin.read()
matches = re.findall(r'<li><a[^>]+href=\"([^\"]+)\"[^>]*>([^<]+)</a> <span class=\"time fright\">([^<]+)</span></li>', html)
print('=== 新浪财经首页 A股快讯 ===')
shown = 0
for href, title, tm in matches:
if any(k in title for k in ['A股', '上证', '深证', '创业板', '涨停', '收评', '快讯']):
print(f'- {title.strip()} ({tm})')
shown += 1
if shown >= 5:
break
"新闻分类规则:
- A 类:证监会 / 交易所 / 新华社 / 央行 / 国常会 / 政策文件
- B 类:PMI / 利率 / 汇率 / 海外大盘 / 产业政策
- C 类:评论稿 / KOL / 标题党 / ETF营销 / 技术分析文章
- 只有 A/B 类能影响方向;C 类最多当背景情绪
分析框架详解
📈 技术面(与加密通用,适配 A 股特点)
A 股特殊规则 ⚠️
- T+1 交易:当日买入次日才能卖出,做日内分析时需标注「T+1 限制」
- 涨跌停板:主板 ±10%,创业板/科创板 ±20%,ST 股 ±5%
- 交易时间:9:30-11:30, 13:00-15:00(北京时间)
- 集合竞价:9:15-9:25 可挂单,9:20 后不可撤单
趋势结构(多周期确认)
- 日线/60min 确定主趋势,30min/15min 寻找入场点
- 均线系统:MA5/MA10/MA20/MA60 多空排列,日线与 60min 共振时信号最强
历史轨迹复盘
- 先判断最近
7-30日主导手法,再解释今天的涨跌 - 若当前信号与最近主导手法冲突,优先怀疑是假突破/假跌破
- A 股常见节奏:放量突破 → 次日高开低走;缩量慢推 → 持续性更好;长上影冲高回落 → 派发风险
形态识别
与加密相同:双顶/双底/头肩/三角形/旗形/W底/M顶
A 股特有技术指标
- 分时图形态:早盘冲高回落 vs 尾盘拉升,反映主力意图
- 集合竞价量:9:25 撮合成交量异常放大 → 当日可能大幅波动
- 缺口理论:A 股缺口回补概率高于加密
💰 资金面(A 股独有,核心维度)
| 指标 | 含义 | 多空判断 |
|---|---|---|
| 北向资金 | 外资通过沪/深港通净买入 | 连续净流入 = 🟢 看涨 |
| 主力净流入 | 大单资金流向 | 主力净流入 > 0 = 🟢 |
| 融资余额 | 杠杆资金规模 | 融资余额持续上升 = 情绪偏多 |
| 融券余额 | 做空规模 | 融券暴增 = 看空信号 |
📊 市场结构(A 股独有)
| 指标 | 含义 |
|---|---|
| 涨跌家数比 | 上涨/下跌股票数。>2:1 = 普涨,<1:2 = 普跌 |
| 涨停家数 | >100 家 = 赚钱效应强,<20 家 = 人气冰点 |
| 跌停家数 | >50 家 = 恐慌出逃 |
| 连板高度 | 最高连板数,反映游资活跃度 |
😱 情绪面
- 成交额:今日 vs 5日/20日均量。放量上涨 = 健康,缩量上涨 = 警惕
- 融资融券比:融资/融券 > 100 = 极度看多(拥挤信号)
- 新股破发率:近期新股上市首日破发比例 → 情绪温度计
- 节假日注意:休市期间成交额、涨跌家数、北向资金不更新,情绪面只能基于上一交易日收盘数据
📐 增强宏观
- 美债10Y X.X% | DXY XX.X | VIX XX.X
- 北向联动:[流入利好/流出利空/中性]
- FOMC X月X日 | CPI X月X日
🌍 宏观面
🇺🇸 美股联动
- A 股与美股存在情绪传导,但独立性高于加密
- 关注:美联储决议、非农、CPI
🇨🇳 中国特有宏观因子
- 央行政策:降准/降息/LPR 调整 → 直接利好
- 人民币汇率:USDCNY > 7.2 → 外资流出压力
- PMI:>50 经济扩张,<50 经济收缩
- 政策信号:国常会、政治局会议、证监会表态
🔄 板块轮动
- 领涨板块:资金主攻方向,判断当日主线
- 领跌板块:资金逃离方向
- 热点概念:是否有持续性(连续 3 天以上上榜)
- 龙头识别:板块内率先涨停、封单最大的个股
报告输出模板
## 📊 A 股综合分析报告 — YYYY-MM-DD
**分析时间(UTC)**:[YYYY-MM-DD HH:MM]
**分析时间(BJT)**:[YYYY-MM-DD HH:MM]
**市场状态**:[交易中 / 午休 / 收盘后 / 周末 / 节假日]
**数据完整性**:[完整 / 哪些关键块缺失]
### 🟢 三大指数快照
[上证/深证/创业板:价格、涨跌、成交额]
### 🧭 历史轨迹复盘
[最近 7-30 日主导手法]
[最近 2-3 次关键动作]
[今天更像延续/回踩/诱多/诱空/纯噪音]
### 📈 技术面
[趋势方向 + 关键支撑/阻力位 + 量价判断]
[⚠️ 形态识别结果]
### 💰 资金面
[北向资金净流入/流出 + 主力资金方向]
[「数据暂缺」如海外无法获取]
### 📊 市场结构
[涨跌家数 + 涨跌停统计]
[「数据暂缺」如海外无法获取]
### 😱 情绪面
[成交额 vs 均量 + 整体风险偏好]
### 📐 增强宏观
- 美债10Y X.X% | DXY XX.X | VIX XX.X
- 北向联动:[流入利好/流出利空/中性]
- FOMC X月X日 | CPI X月X日
### 🌍 宏观面
[美股隔夜表现 + 人民币汇率 + 政策要闻]
### 🔄 板块轮动
[领涨板块 TOP5 / 领跌板块 TOP5 / 热点概念]
### 🎯 综合研判
| 维度 | 信号 | 方向 |
|------|------|------|
| 技术面 | [简述] | 🟢/🔴 |
| 资金面 | [简述/暂缺] | 🟢/🔴 |
| 市场结构 | [简述/暂缺] | 🟢/🔴 |
| 情绪面 | [简述] | 🟢/🔴 |
| 宏观面 | [简述] | 🟢/🔴 |
| 板块轮动 | [简述/暂缺] | 🟢/🔴 |
[维度一致/分歧判断]
### 🎯 明日前瞻
- 方向: [偏多 / 偏空 / 震荡]
- 关键点位: 上证支撑 XX / 阻力 XX
- 关注板块: [1-2个]
- 风险提示: [T+1限制 / 涨跌停规则 / 政策风险]
### ⚠️ 免责声明
以上分析基于公开数据,不构成投资建议。A 股有风险,投资需谨慎。相关文件
scripts/a_share_data.py— 东方财富网页数据提取与标准化脚本。用法:python3 scripts/a_share_data.py <northbound|sectors|capital_flow|breadth> '<json>'scripts/a_share_fetch.py— 通过国内节点统一拉取 A 股关键数据(指数、北向、涨跌家数、板块资金流、指数资金流、汇率等),并支持个股模式。用法:python3 scripts/a_share_fetch.py --remote ash-remote或python3 scripts/a_share_fetch.py --stock 600519scripts/a_share_analyze.py— 基于采集 JSON 生成 A 股综合分析报告,也支持个股观察段落。用法:python3 scripts/a_share_analyze.py --input /tmp/a_share.jsonreferences/china-finance-apis.md— 中国金融数据 API 实测记录(哪些能通、哪些被墙)
注意事项
- 涨跌停板规则:主板 ±10%,创业板/科创板 ±20%,ST ±5%。极端行情下流动性枯竭
- T+1 制度:日内分析仅适用于观察,实操需考虑隔夜风险
- 政策风险:A 股受政策影响极大,突发监管/窗口指导可瞬间转向
- 数据可用性:海外服务器可通过浏览器提取东方财富网页的北向资金历史数据(hsgt/index.html)+ 板块持股流,但实时北向资金表/涨跌家数休市时为空。新浪财经首页可替代 API 提取指数。板块排行是海外最大缺口。
- 市场状态判断:优先使用腾讯
market状态和指数时间戳;不要只按本地时钟判断是否开盘 - 午间休市:11:30-13:00(北京时间)不交易,不能误判为连续盘中
- 历史 K 线:优先腾讯
fqkline/kline,AKShare 仅为可选路径 - 交易时间:只在 9:30-15:00 有实时数据,其他时段为收盘价
- 新浪 API:GBK 编码,需
iconv -f gbk -t utf-8转码 - Google News RSS:可用,但会混入评论和二手转发;必须做 A/B/C 分类
- 预测必须标注「不构成投资建议」
- 数据缺失时明确标注缺口,绝不编造