← Back to skills
extension
Category: Data & AnalyticsAPI key required

Wind Alice-A股短线策略报告

每日收盘后拉取 Wind 涨停股、指数与行业涨跌幅,梳理涨停板行业分布与热点概念,结合券商研报研判资金主线与轮动,输出含收盘综述、涨停板复盘、AI 主线研判的结构化报告。适用于 A 股短线策略、涨停板热点分析、盘后复盘等场景。

personAuthor: u_8061ecd8hubenterprise

A-Share Short-Term Strategy Report(Wind Alice-A股短线策略报告)


Agent 执行摘要(Skill 注入后最先读,再动任何工具)

| 顺序 | 做什么 | 禁止 | |------|--------|------| | 0 | 读同目录 AGENT.md | 禁止 search_codebase、禁止查 PostgreSQL/本地库「猜」涨停数据 | | 1 | aassr.ps1 check-conflict --prompt "<用户原话>" | — | | 2 | 一条 aassr.ps1 --prompt "<用户原话>" --no-wait | 禁止 -IdeSafe、$env:ALICE_IDE_SAFE、--ide-safe | | 3 | run_command / Shell 超时 ≥ 1200 秒;阻塞等到命令退出 | 禁止秒退后说「后台 PID / 稍后再问继续查」 | | 4 | stdout 含 ALICE_A_SHARE_SHORT_TERM_STRATEGY_REPORT_DONE | 无 DONE = 未完成,禁止编造 | | 5 | 原样交付 agentResult.value | 禁止自行概括、禁止读 Downloads 附件正文 |

powershell -NoProfile -ExecutionPolicy Bypass -File "<SKILL_DIR>\scripts\aassr.ps1" check-conflict --prompt "<USER_QUESTION>"
powershell -NoProfile -ExecutionPolicy Bypass -File "<SKILL_DIR>\scripts\aassr.ps1" --prompt "<USER_QUESTION>" --no-wait

见到 ALICE_BLOCK_WAIT_MODE=1 = 正在阻塞自旋,保持命令运行。见到 ALICE_IDE_DETACHED=1 = 误开了 detach,不要用 -IdeSafe 重跑。


核心原则:基础设施交给脚本处理;Agent 只负责把用户的问题拼成一句自然语言 prompt 传入。默认就执行 A-Share Short-Term Strategy Report 技能,无需也不要再指定其它 Skill。 任务完成后,只将 CLI stdout 中的 agentResult.value 原文原样交给用户;CLI 静默下载的附件(reportFullFile=)不要读给用户看。

宿主 Agent:执行任何 shell 命令前必须先读同目录 AGENT.md(一页执行契约,与 IDE 无关,随 skill 包发布)。

主调用默认(Cursor 等):步骤 5/6 只发一条 aassr.ps1 --no-wait,禁止设 $env:ALICE_IDE_SAFE='1',阻塞等到 ALICE_A_SHARE_SHORT_TERM_STRATEGY_REPORT_DONE 后同回合交付。仅已确认 Trae 且超时 <1200s 时才用 ALICE_IDE_SAFE=1(见 AGENT.md)。


何时调用本技能

官方技能:A股短线策略报告

每日收盘后自动生成 A 股短线交易策略报告,涵盖大盘收盘综述、完整涨停板复盘与 AI 主线研判,帮助短线交易者快速掌握当日市场热点、资金动向与板块轮动机会。

适用场景:

  • 每日收盘复盘 — 快速了解当日大盘表现与涨跌停分布
  • 涨停板分析 — 按行业分组查看全量涨停股详情
  • 热点概念识别 — AI 自动梳理当日市场主线与热点概念群
  • 资金轮动追踪 — 判断主力资金的行业偏好与轮动方向
  • 短线机会预判 — 结合研报与盘面数据,展望后续板块方向

试试这样问:

  • 生成今日 A 股短线策略报告
  • 今天涨停板有哪些热点?
  • 帮我复盘今天的 A 股市场
  • 今日市场主线是什么?资金在炒什么方向?
  • 出一份今天的涨停板分析报告

💡 提示:

  • 无需任何输入参数,直接发送指令即可,技能会自动识别最近一个已收盘的交易日
  • 若当日收盘前(15:30 前)触发,将自动使用上一个交易日数据
  • 报告包含三大板块:收盘综述 / 涨停板复盘(完整列表,按行业分组)/ AI 研判
  • AI 研判结合券商研报,输出主线判断、深度解析、资金轮动与后续预期四层结构
  • 数据来源为 Wind 金融终端,分析结果不构成投资建议

输出形式

  • Agent 向用户展示的内容:CLI stdout 中的 agentResult.value 正文(服务端流式返回)
  • 自动生成的结构化内容包含:收盘综述、涨停板复盘(按行业分组)、AI 主线研判(主线判断 / 深度解析 / 资金轮动 / 后续预期)
  • 部分场景下 CLI 会静默把完整报告附件下载到用户 Downloads/ 文件夹或 -d 指定目录(供用户本地查阅);Agent 向用户展示时只用 agentResult.value,不要粘贴附件正文
  • 数据来源于 Wind 金融终端,受限时在对应模块明确标注

触发场景与 prompt 构造

用户提问命中以下任一场景即可调用:A股日报 / 盘后复盘 / 市场情绪 / 资金流向 / 行业轮动 / 融资融券 / ERP风险溢价 / 解禁预警。

把用户的复盘需求(日期 / 关注维度)拼成一句自然语言。不要加 使用「...」技能: 前缀,CLI 内部已自动注入。


CLI 参数

<SKILL_DIR> = 本文件所在目录绝对路径。Windows 一律用方案 A(PowerShell 5.x 不支持 &&,见 AGENT.md「命令模板」与「禁止写法(Windows)」);macOS / Linux 用 node scripts/cli.mjs。

命令行调用

# Windows(方案 A)
powershell -NoProfile -ExecutionPolicy Bypass -File "<SKILL_DIR>\scripts\aassr.ps1" --prompt "<USER_QUESTION>" --no-wait [-d "<DIR>"] [--new]
# macOS / Linux
node scripts/cli.mjs --prompt "<USER_QUESTION>" --no-wait [-d "<DIR>"] [--new]

参数

| 参数 | 说明 | |------|------| | --prompt, -p | 用户提问(日期或复盘需求,自然语言)。必填;CLI 自动加 使用「A股短线策略报告」技能: 前缀,Agent 不要再加 | | --no-wait | Agent 默认必带——CLI 内部自旋 tasks/get 直到终态。默认 60s 一次探针、每轮 30min、全程 60min;到轮上限 CLI 自动续轮;Agent 禁止外层 Start-Sleep 或连发多条 | | -d, --download-dir | 报告附件落地目录;不传则用户 Downloads/ 文件夹(Windows %USERPROFILE%\Downloads)。不存在自动创建;同名冲突自动加 (1) 后缀,绝不覆盖 | | --new | 用户明确要求并行新建时清除本地记录后新建;须先 check-conflict 询问用户 | | --continue-session | 显式请求延续上一次多轮会话上下文(opt-in)。默认每次 CLI 调用视为全新会话,contextId 每次新生成,避免跨 Agent / 跨话题的 context 污染。宿主 Agent 判定为同一会话追问时(省略式追问 / 明确承接前文 / 代词指代等)应自动加此参数,不再要求用户显式说「接着刚才那个话题继续」。CLI 会复用上次落盘的 contextId(不设时间窗口);无落盘记录时退化为新会话。与 --new 正交:--new 决定是否新建 taskId、--continue-session 决定是否复用 contextId | | --new-session | 显式强制新建会话上下文(与默认行为一致,保留兼容旧脚本)。与 --continue-session 同时给时以 --new-session 为准 | | --session-scope <ID> | 宿主 Agent 会话隔离标识(推荐始终传入)。同一 OS 用户下 Cursor / Trae 等宿主 Agent 默认共享 ~/.wind-aifinmarket/current-session.json;不隔离会出现"A Agent 的续接读到 B Agent 的 contextId"这类跨宿主污染。传入 <ID> 后按 current-session.<ID>.json 隔离到宿主自己的文件。也可用环境变量 WIND_ALICE_SESSION_SCOPE 统一设置(命令行 --session-scope 优先)。非法字符(空格 / 冒号 / 路径分隔符 / 中文等)自动替换成 _,长度上限 64 | | --once | 配合 --no-wait,单次探针;仅脚本调试,Agent 禁止外层循环 | | --no-strict | 关闭 strict 模式(默认开启:未输出 DONE 行时 exit=0 改成 6);Agent 禁止传 | | --watch-interval / --watch-timeout / --watch-absolute-max | 自旋节奏与上限调优(秒),通常默认即可 | | --help, -h | 查看帮助 |

已废弃:--watch / -w(--no-wait 默认即内部自旋)。

调用示例

# Windows(方案 A)
powershell -NoProfile -ExecutionPolicy Bypass -File "<SKILL_DIR>\scripts\aassr.ps1" -p "生成今日 A 股短线策略报告" --no-wait
powershell -NoProfile -ExecutionPolicy Bypass -File "<SKILL_DIR>\scripts\aassr.ps1" -p "帮我复盘今天的 A 股市场" --no-wait
powershell -NoProfile -ExecutionPolicy Bypass -File "<SKILL_DIR>\scripts\aassr.ps1" -p "今天涨停板有哪些热点" --no-wait -d "D:\reports\a-share"
powershell -NoProfile -ExecutionPolicy Bypass -File "<SKILL_DIR>\scripts\aassr.ps1" -p "重新生成今日A股日报" --no-wait --new   # 仅用户说"重新跑"才加
# macOS / Linux
node scripts/cli.mjs -p "生成今日 A 股短线策略报告" --no-wait
node scripts/cli.mjs -p "帮我复盘今天的 A 股市场" --no-wait
node scripts/cli.mjs -p "今天涨停板有哪些热点" --no-wait -d "/reports/a-share"
node scripts/cli.mjs -p "重新生成今日A股日报" --no-wait --new

附件用 WIND_API_KEY 自动鉴权下载到 Downloads/ 或 -d 目录(CLI 在 DONE 行给出 reportFullFile= 路径仅供落盘核对);Agent 交付用户时只用 agentResult.value,不要展示下载附件内容。

多轮会话上下文(contextId 复用 + 宿主 scope 隔离)

A股短线策略报告支持多轮对话——同一话题下的连续追问,服务端可继承前一轮的分析上下文。CLI 遵循 opt-in 续接 + scope 隔离两层策略:

第一层:opt-in 续接(--continue-session)

  • 默认行为(不加 --continue-session):每次 CLI 调用视为全新会话,contextId 每次新生成。这是安全默认——避免跨 Agent / 跨话题 / 跨用户的 context 意外污染。taskId 也每次新生成(一条 prompt = 一个新任务)。
  • --continue-session(续接前一轮):CLI 读会话状态文件,复用上次落盘的 contextId;服务端继承前一轮上下文。不设时间窗口——只要落过盘就复用,隔多久都算同一会话。无落盘记录 → 静默退化为新会话,不报错。
  • 谁来加 --continue-session?:宿主 Agent 自动判断(详见 AGENT.md 的「会话续接判断」专节)。判断依据是「同一 Agent 会话内的追问信号」,如省略式追问「XX 呢 / 那 XX」、代词/指代、明确承接前文等;无需要求用户输入「接着刚才继续」等关键词。
  • --new-session(显式新建,兼容 alias):与默认行为一致;旧脚本或用户明确说「换个话题」时可加,无副作用。与 --continue-session 同时给时以 --new-session 为准(安全默认)。
  • 与 --new 的区别:
    • --new = 清除本地任务记录、同一 prompt 重新分析(决定 taskId 是否新建);
    • --continue-session / --new-session = 决定 contextId 是否复用(多轮上下文);
    • 二者正交,可组合。
  • 续接生效时的提示:CLI stdout 会打印 [CLI] 会话续接:复用上次 contextId = ...(--continue-session 生效[;scope=<ID>]);Agent 无需向用户暴露此细节,直接交付 agentResult.value 即可。

第二层:宿主 scope 隔离(--session-scope <ID> / WIND_ALICE_SESSION_SCOPE)

会话状态文件路径:

  • 未传 scope:~/.wind-aifinmarket/current-session.json——同一 OS 用户下所有宿主 Agent 共享。适用于单一宿主场景。
  • 传入 --session-scope <ID>:~/.wind-aifinmarket/current-session.<ID>.json——按宿主隔离,Cursor 里的续接不会误复用 Trae 上次的 contextId。

为什么要 scope 隔离?早期版本默认在 30 分钟窗口内自动复用 contextId,同一台机器上 Cursor / Trae 等宿主共享同一份 current-session.json,跨 Agent 的独立提问被服务端当成同一多轮对话,出现「Trae 回答里出现 Cursor 上一轮 A 股复盘数据」这类污染。改为「Agent 判断续接 + scope 隔离」后:同一宿主内的追问自动续接,跨宿主的调用完全隔离。

scope 命名建议:宿主固定名(cursor / trae)足够;需要更细粒度时可加 chat/workspace 后缀(cursor:workspace-abc / trae:chat-123)。非法字符(空格 / 冒号 / 中文等)会被 _ 替换,长度上限 64。

推荐做法:宿主 Agent 在 wrapper 脚本(如 aassr.ps1)里通过 WIND_ALICE_SESSION_SCOPE 环境变量统一设置自身 scope;也可以每次命令行显式传 --session-scope。两者都提供时命令行优先。

子命令

只读 / 配置类,不消耗服务端额度:

| 子命令 | 用途 | |--------|------| | apikey-set <KEY> / apikey-get / apikey-clear | 写入 / 查看(脱敏)/ 清除 ~/.wind-aifinmarket/config.env 中的 API Key | | status --prompt <Q> | 查询本地 tasks.json 中该 prompt 最近一条任务的落盘路径 | | check-conflict --prompt <Q> | 主调用前的并发预检:检测是否有同/相似 prompt 的 running 任务。无冲突 → exit=0;命中 → exit=11,stdout 列出 EXISTING_TASK ...,Agent 必须把详情列给用户、由用户三选一(attach / --new / 取消)。详见 AGENT.md「check-conflict 后用户三选一」 |

解析下载目录意图

扫描用户对话中是否说过"下载到 X / 保存到 X / 放到 X 目录"。

  • 命中 → 用 -d "<DIR>" 传入(多次指定取最近一次,含空格的路径必须加双引号)。
  • 未命中 → 不要传该参数;CLI 落到用户 Downloads/ 文件夹。

环境与配置

1. Node.js 18+

CLI 基于 Node.js(18+ 自带 fetch)。node -v 检查,未达标到 nodejs.org 下载。

2. 获取并配置 WIND_API_KEY

获取:浏览器打开 Wind Alice → 我的账号 → 总览,在「API Key」一栏点「生成」/「复制」(失效或泄漏点「重置」会让旧 Key 立即作废)。

写入(推荐用 CLI 子命令):

# Windows(方案 A)
powershell -NoProfile -ExecutionPolicy Bypass -File "<SKILL_DIR>\scripts\aassr.ps1" apikey-set <KEY>
powershell -NoProfile -ExecutionPolicy Bypass -File "<SKILL_DIR>\scripts\aassr.ps1" apikey-get
powershell -NoProfile -ExecutionPolicy Bypass -File "<SKILL_DIR>\scripts\aassr.ps1" apikey-clear
# macOS / Linux
node scripts/cli.mjs apikey-set <KEY>    # 写入(KEY 裸值,不加引号)
node scripts/cli.mjs apikey-get          # 查看是否已配置 + 脱敏末四位
node scripts/cli.mjs apikey-clear        # 清除

CLI 把 Key 写到 ~/.wind-aifinmarket/config.env(Windows %USERPROFILE%\.wind-aifinmarket\config.env),dotenv 格式单行 WIND_API_KEY=...——这是唯一受支持的位置。历史路径仍可读取(同目录无后缀 config、旧目录 ~/.wind-alice/config.env 与 config),apikey-set 只写新路径。

手动写入(无 Node 运维场景):

# macOS / Linux
mkdir -p ~/.wind-aifinmarket && printf 'WIND_API_KEY=...\n' > ~/.wind-aifinmarket/config.env && chmod 600 ~/.wind-aifinmarket/config.env
# Windows PowerShell
New-Item -ItemType Directory -Force "$env:USERPROFILE\.wind-aifinmarket" | Out-Null
"WIND_API_KEY=..." | Set-Content -Encoding ascii "$env:USERPROFILE\.wind-aifinmarket\config.env"

安全:CLI 不读环境变量,也不读 skill 目录内的 config.json——避免 Key 残留在 shell 历史 / CI 日志 / 提交记录。apikey-set / apikey-get stdout 仅回显脱敏 Key;macOS/Linux 会自动把文件权限收到 600。

配置位置与环境变量

| 路径 / 变量 | 内容 | 必备 | |-------------|------|------| | ~/.wind-aifinmarket/config.env(Win: %USERPROFILE%\.wind-aifinmarket\config.env) | dotenv:WIND_API_KEY=<KEY>,唯一受支持位置(不读环境变量、不读 skill 目录 config.json) | ✅ | | ~/.wind-aifinmarket/tasks.json | 本地任务注册表(CLI 自动维护) | 自动 | | ~/.wind-aifinmarket/results/<taskId>.md | 每条任务的 agentResult.value 落盘副本(stdout 截断时 Agent 可读) | 自动 | | WIND_ALICE_API_URL(环境变量) | Alice Agent 接口地址,默认 https://mcp.wind.com.cn/skills/alice,一般无需修改 | 否 |

兼容:历史路径仍可读取(同目录无后缀 config、旧目录 ~/.wind-alice/config.env 与 config),apikey-set 只写新路径。

中文乱码(Windows 必读)

根因:Node 输出 UTF-8 字节,Trae / PowerShell 5.x 管道捕获时默认按 GBK 解码 → live 输出变成 鏈繘绋嬪皢闃诲...,不是 CLI 坏了。

三层防护(由 CLI 自动提供):

  1. scripts/aassr.ps1:调用前切 UTF-8 代码页(Windows Agent 优先用它代替裸 node)。

  2. ALICE_SESSION_LOG=:非 TTY 管道场景下,CLI 会把全部输出 tee 到 ~/.wind-aifinmarket/logs/<promptHash>.session.log(完整 64 位 promptHash,UTF-8 BOM)。只能读 stdout 打印的那条路径,禁止 view_folder logs/ 扫描:

    # ✅ 从本次 CLI stdout 复制 ALICE_SESSION_LOG= 的完整路径
    Get-Content -Path "$env:USERPROFILE\.wind-aifinmarket\logs\<promptHash>.session.log" -Encoding UTF8 -Tail 200 -Wait
    
    # ❌ 禁止:按 mtime 挑「最新」或只认 12 位前缀——不同 prompt(同公司)会落在不同文件
    
  3. 落盘 .md(results/、Downloads/、--detach 日志)均带 UTF-8 BOM,Get-Content 即使不写 -Encoding UTF8 通常也能正确显示。

禁止:因 live 乱码就改 prompt 重试、连发多条 CLI、或手工 Start-Sleep 轮询 tasks.json。

查看 --detach 日志(避免中文乱码)

~/.wind-aifinmarket/logs/<hash>.log 由 CLI 以 UTF-8 写入。PowerShell 5.x 的 Get-Content 默认按 GBK 解码,会把 UTF-8 中文显示成 鏈繘绋嬪皢闃诲... 这类乱码——不是日志坏了,是读法错了。

# ✅ 正确:显式指定 UTF-8
Get-Content -Path "$env:USERPROFILE\.wind-aifinmarket\logs\969e4c647aae.log" -Encoding UTF8 -Tail 50 -Wait

# ❌ 错误:省略 -Encoding UTF8,中文 Windows 上几乎必乱码
Get-Content -Path "...\969e4c647aae.log" -Tail 50 -Wait

自新版 CLI 起,--detach 创建的日志文件会写入 UTF-8 BOM,部分环境下即使不写 -Encoding UTF8 也能正常显示;仍建议 Agent 始终带 -Encoding UTF8。


执行契约(七步流程 / 红线 / 完成判定 / replay / 退出码 / 交付顺序 / 会话续接 / 命令模板 / 自检清单)见 AGENT.md——唯一权威来源,本文不重复。 排障与常见问题(任务幂等性与停止行为、CLI 执行失败处理、Q&A)见 TROUBLESHOOTING.md。