尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证AI agent skill (Claude Code / Codex) for deterministic K-line structure analysis of A-shares, HK & US stocks: triple-barrier risk plans, 15-day normal volatility range, no-lookahead backtest, JSON + PNG + offline HTML from real market data. A股/港股/美股 K线结构识别与风控研究技能,真实行情、无前视回测。仅供研究,不构成投资建议。
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗A股 / 港股 / 美股 K 线数学结构识别与风控研究技能,给 Claude Code、Codex 等 AI 助手使用
English TL;DR: An Agent Skill for Claude Code, Codex, Cursor, Gemini CLI and other AI agents. Ask in plain language ("analyze NVDA") and the agent runs deterministic Python on real market data (A-shares, Hong Kong, US) to produce K-line structure, a triple-barrier risk plan, a direction-free 15-day normal volatility range and a no-lookahead backtest, as JSON + PNG + offline HTML. For research only, not investment advice. Full English docs: README.en.md.
kline-structure-chart 是一个符合 Agent Skills 开放规范 的金融量化与 K 线数学结构分析技能包。装进 Claude Code、Codex、Hermes Agent、Cursor、Gemini CLI、OpenCode 等 AI 助手之后,你只需用自然语言提问(例如:"帮我看看中际旭创的 K 线结构和支撑压力,账户 50 万"),助手就会自动完成从真实行情拉取 → 确定性数学结构识别 → 三重屏障风控与正常波动范围 → 离线交互看板与高清图生成 → 回复契约校验的完整投研闭环。
中际旭创 300308.SZ 离线交互看板录屏(数据截至 2026-10-15):拖动时间回放,每个历史截面只用当时数据,白线是之后的真实收盘;再演示图层开关与副图切换。看板是技能原样输出的 HTML,可在项目主页在线打开。
*_result.json(稳定契约)、1920×1160 PNG 结构图、离线交互 HTML 看板与中文 Markdown 报告出自同一份计算结果;lint_response.py 拦截助手回复里编造的价格和概率话术。--days 只改显示根数,不改任何结论;离线测试全部使用录制下来的真实行情回放。[DATA_UNAVAILABLE] 退出,不估算、不补数。macOS / Linux 一行安装(会自动注册到已安装的 Claude Code、Codex 等助手):
curl -fsSL https://raw.githubusercontent.com/xiongcp/stock-skill/main/install.sh | bash
装好后新开一个会话,问"帮我分析 300308.SZ"或"看看腾讯 00700.HK 的 K 线结构,带回测"。Windows、Claude Code 插件市场、npx skills、让 AI 助手代装和不用 uv 的方式见第 3 节,直接用命令行见第 5 节。
仅供研究与学习,不构成投资建议,也不会替你下单。
在传统的大模型看图或直接对话问股中,普遍存在四大致命痛点:
为此,kline-structure-chart 建立了六大工程铁律(Hard Invariants)与确定性结构 + 风控两层架构:
flowchart TD
A["用户自然语言提问 / CLI 调用<br/>(如:分析中际旭创 / 00700.HK / NVDA.US)"] --> B["0. 名称解析与多市场真实行情网关<br/>resolve_symbol.py · data_gateway.py"]
B --> C["盘中未收盘K线剥离 + 点位时间前复权(PIT) + 大盘基准配对<br/>market_rules.py(A股沪深300 / 港股恒指 / 美股SPY)"]
C --> D["确定性数学结构与多周期规则层<br/>单边因果NW核平滑 · 因果ZigZag · 轨道候选打分拟合<br/>主+备选ABC浪型 · 推动5浪硬规则 · 8类标准情景筛选<br/>蜡烛/双底双顶/RSI背离 · SMC(FVG/OB/BOS) · Volume Profile"]
D --> F["Triple-Barrier 风控与正常波动范围<br/>risk.py · forecast.py · evaluation.py<br/>左右侧入场区/盘中硬止损/+0.90R移动保本/持仓防守/港美做空<br/>鞅中心15日50%&80%区间 + 线上计划逐日无前视回测"]
D --> G["v6 稳定契约:*_result.json<br/>(contract_v6.py 投影,assets/analysis.schema.json 全量校验)"]
F --> G
G --> H1["*_preview.png<br/>1920×1160 高清结构图"]
G --> H2["*_dashboard.html<br/>离线交互看板(另读 *_chart_data.json)"]
G --> H3["*_report.md<br/>中文报告"]
G --> H4["lint_response.py<br/>回复守门"]
[DATA_UNAVAILABLE] 非零退出(退出码 3),严禁回退、估算、补数或生成任何合成行情。当日未收盘 K 线(按交易所时区与半日市/提前收市规则判定)严格拆出,绝不混入已收盘序列。000300.SH、港股 HSI.HK、美股 SPY.US),计算大盘状态分与 20 日相对强弱(RS Line)。大盘极弱(状态分 < 35)或缺失基准时,独立风控官自动触发一票否决(verdict.risk_veto = true)。day 与反向达标确认日 confirmed_at_day;点位复权(PIT)只消费截至当时已生效的分红送转;回测与历史回放截面按当时截止日重算大盘状态与复权,并经追加 5 倍极端未来价格冲击的因果回放审计验证零泄漏。--days N(60~500)只改变主图展示根数,底层取数固定 760 根、指标在固定 420 根历史上预热、结构在固定 120 根窗口上识别,切换展示天数绝不改变任何指标数值、结构分类或交易点位。rule_score)是确定性条件加权分,绝不称为"胜率"或"上涨概率";不输出任何概率、胜率或频率数字,唯一例外是回测成交胜率(附 Wilson 95% 区间与样本量),它只是已发生成交的统计,不是未来上涨概率。本技能只做规则化技术分析与量化研究验证,不构成任何投资建议,也不会替你下单。
| 市场 | 代码格式 | 示例 | 行情来源 | 默认大盘基准 |
|---|---|---|---|---|
| A股 | 6 位代码 + .SH / .SZ / .BJ | 600519.SH、000002.SZ、830799.BJ、510300.SH(ETF)、000001.SH(上证指数) | 新浪日线(不复权)+ Yahoo 除权除息事件 | 沪深300 000300.SH |
| 港股 | 5 位代码 + .HK | 00700.HK、01810.HK、02800.HK(ETF)、HSI.HK、HSTECH.HK | Yahoo 日线;恒生科技指数用腾讯指数日线 | 恒生指数 HSI.HK |
| 美股 | 代码 + .US | NVDA.US、SPY.US、QQQ.US、BRK.B.US | Yahoo 日线 + ^VIX 恐慌指数 | SPY.US |
证券简称、A 股 ST/*ST 风险警示标识和港股每手股数(Board Lot)会自动从腾讯行情快照获取;常见科创/创业板 20% 涨跌幅 ETF、A 股跨境/债券/黄金/货币 T+0 ETF 以及港交所豁免印花税的 ETF/ETP 代码段均支持自动识别。
以下三张 1920×1160 结构图全部由本技能脚本基于真实行情自动生成(数据截至 2026-10-15,完整报告、JSON 与离线交互看板见 examples/):
300308.SZ · 创业板 · 红涨绿跌 · 扩散喇叭形 + 跌破下轨 + 三情景推演 + 15 日正常波动范围)右上角红框是风控否决:大盘环境评分低于 35,且收盘跌破结构下轨,个股不给做多评级。
00700.HK · 红涨绿跌 · 破位下行与 C 浪末端反转推演)NVDA.US · 绿涨红跌 · 超跌反弹与破位下行推演)git,以及 Python ≥ 3.12 + Pillow(Pillow 只用来画 PNG;全部指标、形态、风控与回测计算只用 Python 标准库)。[DATA_UNAVAILABLE])。技能本身只是一份说明(SKILL.md)加一组 Python 脚本,agent 按 SKILL.md 里的命令运行脚本,所以电脑上必须有能运行这些脚本的 Python 和 Pillow。uv 解决的是"让这件事在任何机器上都一次成功":
uv sync --frozen 严格按 uv.lock 安装,每台机器得到同一个 Pillow 版本,PNG 渲染一致。.venv 里;直接 pip install 到系统 Python 在新版 macOS(Homebrew)和 Debian/Ubuntu 上会被 PEP 668(externally-managed-environment)拒绝。"agent 遇到错误会自己安装"大多数时候成立,但不可靠:agent 可能把依赖装进系统 Python(被拒绝或污染环境)、用了过低的 Python 版本、在禁止联网或禁止写系统目录的沙箱里反复失败,轻量模型尤其容易卡住。所以 SKILL.md 现在写明了确定的兜底路径:有 uv 用 uv run python;没有 uv 就在技能目录建 .venv 并 pip install -r requirements.txt,然后用 .venv/bin/python。scripts/doctor.py 也不再把"没装 uv"判为失败。
不想自己敲命令时,把下面这句话直接发给你正在用的 AI 助手(Claude Code、Codex、Gemini CLI、Cursor、OpenCode、Hermes Agent 等能执行命令的助手):
请按 https://raw.githubusercontent.com/xiongcp/stock-skill/main/INSTALL_FOR_AGENTS.md 的步骤,把 kline-structure-chart 技能安装到你自己的技能目录;需要安装 uv 或其他软件前先问我,完成后把 doctor 自检结果告诉我。
助手会读取 INSTALL_FOR_AGENTS.md:判断自己该装到哪个技能目录 → 检查 git / Python / uv → 有 uv 就运行一键脚本,没有 uv 且你不同意安装时改用 venv + pip → 运行 doctor → 告诉你结果和下一步。指引里写明了安全边界:不用 sudo、不覆盖已有目录、安装任何软件前先征求你的同意、不索要任何账号密码。
助手无法访问网址时,把 INSTALL_FOR_AGENTS.md 的全文复制给它即可。装完后新开一个会话,技能才会被加载。
macOS / Linux:
curl -fsSL https://raw.githubusercontent.com/xiongcp/stock-skill/main/install.sh | bash
Windows(PowerShell):
irm https://raw.githubusercontent.com/xiongcp/stock-skill/main/install.ps1 | iex
脚本依次完成:
git 和 uv。缺 uv 时询问是否用官方安装器安装(加 --install-uv 则不询问直接安装);不安装 uv 时(回答 N,或非交互环境未加 --install-uv)改用本机 Python 3.12+,依次查找 python3.13、python3.12、python3(Windows:py -3.13、py -3.12、python),都低于 3.12 才退出并提示安装 Python 3.12+ 或加 --install-uv。~/.local/share/stock-skill;已存在时执行 git pull --ff-only,所以重复执行同一条命令就是更新。uv sync --frozen --python 3.12,按 uv.lock 安装依赖;不用 uv 时改为在技能目录 python -m venv .venv 并 .venv/bin/pip install -r requirements.txt(版本与 uv.lock 一致)。claude、codex、gemini、cursor-agent、opencode,把技能目录软链到对应的技能目录(见下表)。目标位置已有同名的普通目录时先备份为 *.bak.<时间>。requirements.txt 里)和环境自检 doctor(不用 uv 时用 .venv/bin/python 运行),最后打印下一步。| Agent | 探测命令 | 全局技能目录 | --project 时的目录 |
|---|---|---|---|
| Claude Code | claude | ~/.claude/skills/ | <项目>/.claude/skills/ |
Codex(以及读取 ~/.agents/skills 的其他工具) | codex | ~/.agents/skills/ | <项目>/.agents/skills/ |
| Hermes Agent | hermes | ~/.hermes/skills/ | <项目>/.hermes/skills/ |
| Gemini CLI | gemini | ~/.gemini/skills/ | <项目>/.agents/skills/ |
| Cursor | cursor-agent | ~/.cursor/skills/ | <项目>/.agents/skills/ |
| OpenCode | opencode | ~/.config/opencode/skills/ | <项目>/.agents/skills/ |
目录约定与 vercel-labs/skills 一致。一个都没探测到时,默认注册到 Claude Code 和 ~/.agents/skills/。
安装完成后新开一个会话,试问"帮我分析 300308.SZ"或"看看中际旭创的 K 线"。
通过管道运行时用 bash -s -- 传参,例如:
curl -fsSL https://raw.githubusercontent.com/xiongcp/stock-skill/main/install.sh | bash -s -- --agents claude,codex --dry-run
选项(install.sh) | Windows(install.ps1) | 说明 |
|---|---|---|
--dir <目录> | -Dir | 代码目录,默认 ~/.local/share/stock-skill(也可用环境变量 STOCK_SKILL_DIR) |
--agents claude,codex | -Agents claude,codex | 只注册到指定 agent;all 表示全部五个 |
--project <目录> | -Project | 只注册到某个项目(项目级技能目录),不动全局目录 |
--copy | -Copy | 复制而不是软链(更新代码后需重新执行脚本) |
--install-uv | -InstallUv | 缺 uv 时直接安装,不询问;不加且不安装 uv 时改用本机 Python 3.12+ 建 .venv(见 3.1 第 1 步) |
--no-test | -NoTest | 跳过安装后的自检 |
--dry-run | -DryRun | 只打印将要执行的操作,不做任何修改 |
--source <地址或路径> | -Source | 从其他 Git 地址或本地检出安装(开发测试用) |
--update | -Update | 更新,等同重新执行安装 |
--uninstall | -Uninstall | 卸载 |
更新:重新执行 3.1 的安装命令即可(软链安装会随 git pull 自动生效;--copy 安装会重新复制)。
卸载:
bash ~/.local/share/stock-skill/install.sh --uninstall
卸载只删除本脚本创建的软链、带安装标记的复制目录和代码目录;其他技能、你自己放在同名位置的目录(会提示"跳过")以及安装时生成的 *.bak.* 备份都不会被删除。安装时用过 --dir 或 --project 的,卸载时请带上同样的参数。
Claude Code 插件市场:在 Claude Code 里执行
/plugin marketplace add xiongcp/stock-skill
/plugin install kline-structure-chart@stock-skill
插件市场清单在 .claude-plugin/marketplace.json,直接指向 kline-structure-chart/ 目录。插件方式不会运行 uv sync,首次分析时 uv run 会自动安装依赖。
npx skills(vercel-labs/skills):会自动识别已安装的 agent。
npx skills add xiongcp/stock-skill
常用参数:-g 安装到用户目录、-a claude-code 指定 agent、--copy 复制而不软链。
手动安装:
git clone https://github.com/xiongcp/stock-skill.git ~/.local/share/stock-skill
cd ~/.local/share/stock-skill && uv sync --frozen --python 3.12 --directory kline-structure-chart
mkdir -p ~/.claude/skills && ln -sfn ~/.local/share/stock-skill/kline-structure-chart ~/.claude/skills/kline-structure-chart
其他 agent 把最后一步的 ~/.claude/skills 换成 3.1 表格里的目录。
不用 uv 的手动安装:需要 Python ≥ 3.12(python3 --version 查看;把下面的 python3.12 换成你机器上 3.12 及以上的解释器名)。克隆与软链两步同上,把第二步换成:
cd ~/.local/share/stock-skill/kline-structure-chart && python3.12 -m venv .venv && .venv/bin/pip install -r requirements.txt
requirements.txt 只有 Pillow,版本与 uv.lock 一致(由测试校验)。此后 SKILL.md 与本文中的 uv run python 一律换成 .venv/bin/python(Windows:.venv\Scripts\python),助手会按 SKILL.md「运行环境」一节自动替换。
以下命令在代码目录(默认 ~/.local/share/stock-skill)执行。先跑环境自检,逐项显示 ✅/❌ 和修复建议(断网时数据源几项为 ❌,其余可离线通过):
uv run --directory kline-structure-chart python scripts/doctor.py
再跑离线测试(不访问网络,全部使用录制下来的真实行情回放):
uv run --directory kline-structure-chart pytest -q
最后联网跑一次真实分析:
uv run --directory kline-structure-chart python scripts/analyze_and_forecast.py --market CN --symbol 600519.SH --output-dir artifacts/smoke
失败时脚本以非零码退出:[DATA_UNAVAILABLE] 表示取不到真实行情,[INVALID_ARGUMENT] 表示代码或参数有误,[INSUFFICIENT_HISTORY](退出码 4)表示已收盘K线不足(见第 8 节)。成功时退出码为 0,kline-structure-chart/artifacts/smoke/ 下会出现 600519.SH_report.md、600519.SH_result.json、600519.SH_chart_data.json、600519.SH_preview.png、600519.SH_dashboard.html 五个文件。
直接用自然语言提问即可,名称、拼音、代码都可以:
助手按技能里的规则工作:
scripts/resolve_symbol.py 通过腾讯证券搜索查代码;匹配到多个证券(比如"腾讯")时会请你选择,不会凭记忆猜。--backtest)。UNAVAILABLE 不给任何价位;PARTIAL 把告警放在回答最前面。*_report.md 为骨架回答,顺序为:大盘 → 结构与条件推演 → 风控计划 → 未来正常波动范围 → 回测 → 文件路径 → 免责声明。报告中的数字不得改动。完整示例(真实行情生成的报告、图和标准回复)见 examples/。
小提示:
所有命令都在仓库根目录执行。
uv run --directory kline-structure-chart python scripts/analyze_and_forecast.py --market HK --symbol 01810.HK --account-equity 300000 --output-dir artifacts/hk --backtest
命令执行完会在终端打印一段 JSON 摘要,产物写入 kline-structure-chart/<--output-dir>/。
| 参数 | 说明 |
|---|---|
--symbol(必填) | 标的代码,格式见第 1 节 |
--output-dir(必填) | 产物目录,相对于 kline-structure-chart/ |
--market | CN / HK / US;代码带后缀时可以省略 |
--asset-type | index / equity / etf。默认按代码段推断:A 股 51/56/58(沪)、15(深)开头及港交所 ETF/ETP 代码段(02800 |
--days | 主图显示多少根 K 线,取值 60~500,默认 120。只影响显示,不影响任何计算结果 |
--horizon-bars | 预测天数,1~60,默认 15 |
--as-of | 只用截至某日(YYYY-MM-DD)的数据,用于复盘历史 |
--adjustment | raw / split / total_return。默认个股和 ETF 用前复权(含分红送转),指数不复权 |
--account-equity、--max-risk-pct | 账户净值与单笔风险比例(默认 0.01,即 1%;取值 0~0.05,写成 1 会以 [INVALID_ARGUMENT] 拒绝)。不传账户净值时不计算股数;股数按入场区上沿到止损的距离(含交易成本)计算,风控否决或评级不是做多时不给股数 |
--name、--st | 手动指定证券简称、手动标记 ST。正常情况下会自动获取,无需填写 |
--ipo-no-limit | 标记上市前 5 个交易日、不设涨跌幅的新股 |
--color-scheme | auto / cn_red_up / us_green_up。默认 A 股和港股红涨绿跌,美股绿涨红跌 |
--benchmark | 替换默认大盘基准 |
--backtest、--backtest-step | 生成历史计划回放回测;--backtest-step 设为大于 1 可以加快速度 |
--input、--offline | 使用本地真实行情文件,并且不联网(见 5.2) |
本地文件是一个 JSON 数组,每个元素是一根日 K 线:
[{"day": "2026-10-14", "open": 1270.1, "high": 1286.75, "low": 1266.0, "close": 1286.0, "volume": 2377273}]
uv run --directory kline-structure-chart python scripts/analyze_and_forecast.py --market CN --symbol 600519.SH --name 贵州茅台 --input /path/to/bars.json --offline --output-dir artifacts/local
对文件的要求和行为:
PARTIAL,风控会否决做多确认。只知道名称或拼音时,先查代码(数据源为腾讯证券搜索接口):
uv run --directory kline-structure-chart python scripts/resolve_symbol.py 茅台
status 为 RESOLVED,并给出可直接运行的分析命令;匹配到多个(如"腾讯"、"000001")时为 AMBIGUOUS,列出候选;找不到时以 [INVALID_ARGUMENT] 退出。--market HK、--asset-type index 缩小范围。北交所股票目前搜不到,请直接用 .BJ 代码。环境有问题时运行 scripts/doctor.py(见 3.5 节),加 --offline 可跳过数据源连通检查。
| 文件 | 内容 |
|---|---|
*_report.md | 中文分析报告,依次为:数据说明、风控否决、结论、大盘、结构与条件推演、风控计划、形态证据、未来正常波动范围、回测、文件路径、免责声明。数字全部取自 *_result.json |
*_result.json | v6 稳定契约(通过 assets/analysis.schema.json 全量校验) |
*_chart_data.json | K 线序列、回放快照等渲染数据;不是稳定接口 |
*_preview.png | 1920×1160 结构推演图;数据有问题时带红色告警和水印 |
*_dashboard.html | 离线交互看板:8 个图层开关、悬停查看数值、相对强弱视图、历史回放滑块、导出 PNG |
*_backtest.json | 历史计划回放回测与无前视审计(传 --backtest 时生成) |
命令行的标准输出是一个 JSON 信封,失败时退出码区分错误类型:
| 退出码 | 标准输出 | 含义 |
|---|---|---|
| 0 | {"status": "ok", "schema_version", "verdict", "quality", "files"} | 成功;files 是相对 --output-dir 的产物文件名 |
| 1 | {"status": "error", "error": {"code": "INTERNAL_ERROR", "message"}}(契约自检失败,不写任何产物);其他未预期异常无信封,stderr 为 Python traceback | 技能内部错误,不是参数或行情问题:告诉用户是技能出错,不要改参数重试 |
| 2 | {"status": "error", "error": {"code": "INVALID_ARGUMENT", "message"}} | 代码或参数有误(argparse 自身的参数错误也是 2,但不输出 JSON) |
| 3 | 同上,code = DATA_UNAVAILABLE | 真实行情取不到 |
| 4 | 同上,code = INSUFFICIENT_HISTORY | 已收盘K线不足:上市太短、--as-of 太早,或数据源本次只返回了部分历史(可稍后重试) |
stderr 同时打印 [CODE] message。
每个字段的含义、单位、能否为空和稳定级别见 references/output-fields.md(6.x 内只新增字段,不删除、不改名、不改语义)。完整产物示例见 examples/。
| 层级 | 核心产出 | 统计口径与对外表述规范 |
|---|---|---|
| 确定性数学结构层 | 轨道拟合形态、主+备选 ABC 浪型、推动 5 浪、8 类标准情景(选 2 | 规则分是确定性条件加权分(均值回归体制下按反转规则调整),严禁称为胜率或上涨概率;Volume Profile 是 OHLCV 成交分布近似,不等于真实持仓筹码;情景只写"触发条件 → 目标位 → 失效条件",不附概率 |
| 风控与正常波动范围层 | 入场区、止损、TP1/TP2、移动保本、仓位、持仓防守、港美股做空计划,以及以最新收盘为中心的 15 日正常波动范围(50%、80%) | 区间只描述波动幅度、不含方向;必须同时给出样本外覆盖率与独立样本数;风控否决时入场区称"观察区" |
每次分析会根据当前截面的轨道位置、量能、RSI 与波段结构,从以下 8 类标准情景中动态筛选出 2~5 个适用情景(当触发位距最新收盘价不足 0.5×ATR 时自动归入**「已在进行中」**):
TREND_CONTINUATION(趋势延续):沿上升通道或推动第 3/5 浪顺势推进;BREAKOUT_RETEST(突破回踩):放量站上上轨/颈线/前高后回踩确认;FALSE_BREAKOUT_REVERSAL(假突破回落):冲高刺破上轨或前高后缺量跌回轨道内;RANGE_OSCILLATION(区间震荡):位于轨道内部且距上下边界均超过 1.0×ATR;BREAKDOWN_DECLINE(破位下行):收盘跌破下轨、颈线或前低支撑;C_WAVE_REVERSAL(C 浪末端反转):ABC 调整浪中 C/A 接近 1.0 倍且出现背离或企稳;OVERSOLD_BOUNCE(超跌反弹):RSI14 < 30 或收盘偏离 MA20 超过 2.0×ATR;APEX_BREAKOUT(收敛末端变盘):收敛三角形/楔形距顶点剩余 0~10 根 K 线以内且未过期。# 对 Agent 最终输出的自然语言回复执行契约守门校验(拦截捏造价格、违规概率术语、漏报否决/免责声明)
uv run --directory kline-structure-chart python scripts/lint_response.py --result examples/600519.SH/600519.SH_result.json --response examples/600519.SH/reply.md
quality.status):
OK:可以正常解读。PARTIAL:有告警,比如缺少大盘基准,请先读告警。UNAVAILABLE:结果不可用。| 现象 | 原因与处理 |
|---|---|
[DATA_UNAVAILABLE] ... 网络已禁用(--offline) | 去掉 --offline,或者配合 --input 使用本地文件 |
[DATA_UNAVAILABLE] ... HTTPError 429 / timed out | 行情接口限流或网络不通,稍后重试 |
[DATA_UNAVAILABLE] ... Cannot derive ... symbol | 代码格式不对,按第 1 节的格式补全后缀 |
[INVALID_ARGUMENT] Cannot resolve market | 代码没有后缀,加上 .SH / .SZ / .HK / .US 或传 --market |
[INVALID_ARGUMENT] Ambiguous symbol '000001' | 需要明确是 000001.SH(上证指数)还是 000001.SZ(平安银行) |
[INVALID_ARGUMENT] --days must be between 60 and 500 | --days 超出范围;--horizon-bars 同理(1~60) |
[INSUFFICIENT_HISTORY] ...(退出码 4) | 已收盘K线不足:上市时间太短、--as-of 太早,或数据源本次只返回了部分历史(可稍后重试) |
no CJK font found | 没有中文字体,运行 scripts/doctor.py 查看对应发行版的安装命令 |
uv: command not found | 安装 uv:https://docs.astral.sh/uv/,或重新执行安装脚本并加 --install-uv;不想装 uv 时按 3.4「不用 uv 的手动安装」建 .venv,再把命令里的 uv run python 换成 .venv/bin/python |
新会话里看不到 kline-structure-chart | 运行 scripts/doctor.py 检查技能软链;确认注册到了正在使用的 agent 的目录(第 3.1 节表格),然后新开会话 |
| 安装时提示"已存在且不是 Git 仓库" | --dir 指向的目录里已有别的文件,换一个目录或先手动清理 |
resolve_symbol.py 以 [DATA_UNAVAILABLE] 退出 | 腾讯证券搜索接口不可用,直接提供带后缀的完整代码 |
| 报告提示"数据只到某日:最近已收盘的交易日……尚未提供" | 数据源收盘后入库有延迟,或该标的停牌;稍后重跑 |
| 报告提示"港股每手股数未能获取" | 腾讯快照暂时不可用,股数按 100 股/手假设计算,下单前请向券商核对 |
Q:能告诉我上涨概率吗? 不能。规则分(0~100)是技术条件的加权打分,不是概率;未来正常波动范围只描述波动幅度,不含方向。本技能不输出任何概率、胜率或频率数字,唯一例外是回测成交胜率(附 Wilson 95% 区间与样本量),它只是这套规则在该标的上已发生成交的统计,不是未来上涨概率。
Q:数据从哪里来,会不会用假数据?
新浪、Yahoo、腾讯的公开行情接口。取不到就以 [DATA_UNAVAILABLE] 退出,绝不估算或生成数据;离线测试使用录制下来的真实行情。
Q:会把我的数据或问题发给第三方吗? 脚本只向行情接口请求标的代码对应的公开行情,不上传账户净值等任何个人信息。
Q:怎么更新?会不会覆盖我的修改?
重新执行安装命令即可,代码目录用 git pull --ff-only 更新;如果你在代码目录里改过文件导致无法快进合并,脚本会报错停止,不会覆盖。
Q:可以只给某个项目安装吗?
可以,加 --project <项目目录>,技能会注册到该项目的 .claude/skills 或 .agents/skills。
Q:能分析北交所股票、港股 ETF 吗?
可以。北交所需要直接给 .BJ 代码(名称搜索不到);常见港交所 ETF/ETP 代码段(如 02800.HK、03033.HK)会自动识别为 etf 并免除印花税。
Q:能做空吗?
本技能不替你交易。港股、美股可以融券卖空但有严格限制,A 股融券受限更多,规则见 references/ 下的三个市场手册。
[DATA_UNAVAILABLE] 报错,不会给出错误数据。install.ps1 与整体流程都还没有在 Windows 上实测。创建软链需要开发者模式或管理员权限,失败时脚本会自动改为复制;已加入微软雅黑字体路径。uv run --directory kline-structure-chart pytest -v
uv run --directory kline-structure-chart python tests/check_days_invariance.py --data tests/fixtures/recorded/sina_daily --step 40
HOME="$(mktemp -d)" bash install.sh --source "$(pwd)" --agents claude,codex
--only quotes、--only search 这类参数只录某一类:uv run --directory kline-structure-chart python tests/record_fixtures.py
本技能输出的所有内容都是基于历史行情的规则化技术分析,仅供研究与学习参考,不构成任何投资建议。市场有风险,决策需独立判断。