A股分析工作台(自包含技能 · 一句话安装即用)
这是什么
本地运行的 A股分析工作台:纯 Python 后端(http.server,端口 8765)+ 单页网页前端。完整代码随本技能分发(在 assets/workbench/),首次使用由 AI 自动把代码部署到用户当前工作区、装依赖、启动、打开浏览器,对方无需任何配置即可用市场篇全部功能。
数据隔离(关键):技能自带代码零个人数据。运行后产生的数据(持仓/配置/操作日志/复盘)落在部署目录的上级,完全属于使用者自己,与分发者无关。
首次部署流程(AI 执行)
- 技能根目录 = 本 SKILL.md 所在目录;源代码 =
<技能根>/assets/workbench/。 - 部署目录 = 当前工作区下的
a-share-workbench/workbench(即<CWD>/a-share-workbench/workbench)。务必保留workbench这一级,这样数据目录(server.py里WORKSPACE = workbench上级)自包含在工作区,不污染技能目录。 - 若部署目录不存在或为空 → 把
<技能根>/assets/workbench/整体复制到部署目录。 - 依赖检查:尝试
import requests, akshare, pandas;任一缺失则
<managed_python> -m pip install -r <部署目录>/requirements.txt
(managed_python 用 WorkBuddy 管理的 Python 绝对路径)。 - 端口探测(见下)。已监听 → 直接打开;未监听 → 后台启动。
- 启动(PowerShell 后台任务,
run_in_background:true):
Set-Location "<部署目录>"; & "<managed_python>" -u server.py - 轮询端口出现 LISTENING(akshare 首导约 20-25s)后,
present_files('http://127.0.0.1:8765')打开预览面板。
端口探测(别用被沙箱黑的 reg/echo,用 netstat)
import subprocess
out = subprocess.run([r'C:\Windows\System32\netstat.exe','-ano','-p','TCP'],
capture_output=True, text=True, encoding='gbk', errors='ignore').stdout
ls = [l.strip() for l in out.splitlines() if '8765' in l and 'LISTENING' in l]
print('LISTENING 数:', len(ls))
for l in ls: print(' ', l)
意图分发
- 打开 / 启动 / 安装 / 部署:走「首次部署流程」。
- 重启:端口探测找占用 8765 的 PID →
taskkill /F /PID <pid>→ 重新启动。 - 关闭:端口探测找 PID →
taskkill /F /PID <pid>。 - 打不开:多半双监听(两进程抢 8765)→ 杀掉全部 8765 占用再启动;优先用部署目录里的
start.py(内置杀旧进程逻辑)。 - 选股配置:读
<部署目录上级>/data/stock_picker_config.json(字段 price_min/price_max/mv_max/risk/cycle),改完 Write 回写即时生效,无需重启。
工作台内功能(用户点按钮即用,后端实时拉数据)
- 📑 全面复盘:双篇深度报告(市场篇 7 段 + 持仓操作篇 10 章),按「每日复盘智能分析流程(妙想优先架构)」生成。
- 每日复盘 / 操作回放 / 智能选股·一进二 / 持仓面板 / 今日总结 / 市场情绪 等。
- 数据源:妙想(mx,可选) → 东财涨停池/龙虎榜(akshare) → 腾讯实时行情/K线,零缓存实时拉取。
数据目录(部署目录上级,即 <CWD>/a-share-workbench/)
data/a_share_portfolio.json:持仓(可选,市场篇不需要;空仓显示"无操作记录")data/stock_picker_config.json:选股配置操作日志/:交易记录(可选)复盘总结/:复盘 MD(可选)
市场篇(行情/连板/龙虎榜/选股/情绪)完全不需要上述任何个人数据,开箱即用。
坑(必看,照做避 90% 问题)
- 双监听:重复启动两进程抢 8765(SO_REUSEADDR 允许同端口双绑)→ 浏览器请求可能落到还在导入 akshare 的新进程,打不开。启动前必杀旧进程;start.bat 已内置。
- 别用 Start-Process:此环境它启动的 python 会被父 shell 回收起不来;用 PowerShell 后台任务直接跑 python(
run_in_background:true)。 - 沙箱回环隔离:沙箱探测 127.0.0.1 被拒不代表服务挂,以用户本机浏览器能开
http://127.0.0.1:8765为准。 - 妙想 MX_APIKEY 可选:不设也能完整运行(自动降级 akshare+腾讯);设了(环境变量
MX_APIKEY)指数交叉验证/资讯更准确。 - 系统代理 ProxyEnable=0,不是代理问题。