威科夫交易智能体架构深潜:WyckoffTradingAgent 如何把 CLI、Web、MCP 与 Actions 串成一条完整链路

【免费下载链接】WyckoffTradingAgent

Open-source Wyckoff trading agent and AI stock screener for volume-price analysis, A-share screening, CLI workflows, and MCP tools.灵感来自秋生trader @Hoyooyoo

项目地址: https://gitcode.com/gh_mirrors/wy/WyckoffTradingAgent
点击查看 免费下载

WyckoffTradingAgent 是一个开源的威科夫交易智能体与 AI 选股器:你用自然语言和它对话,它替你完成量价结构识别、A 股全市场漏斗筛选、AI 研报生成、持仓风控诊断与自动化通知。这篇文章带你深潜它的架构——看 CLI、Web、MCP Server 与 GitHub Actions 四个入口如何共享同一个核心引擎,又把"选股 → 确认 → 复盘"串成一条 7×24 小时自动运转的链路。

一、架构全景:一个大脑,四只"手" 🧠

整个系统可以概括为"一个大脑 + 四只入口":四个入口各自有独立的运行时与交互方式,但底层共用同一套威科夫金融引擎、行情/存储集成和业务工具。

  React Web        CLI (TUI)        MCP Server        GitHub Actions
  (浏览器)         (终端)           (AI 客户端)         (定时任务)
      │                │                │                    │
      └────────────────┴───────┬────────┴────────────────────┘
                               ▼
                     Agent「大脑」(LLM + 工具编排)
                               ▼
                 核心引擎:漏斗 / 诊断 / 策略 / 信号
                               ▼
        数据源(TickFlow/Tushare…) + 存储(Supabase / 本地 SQLite)
维度React WebCLI(TUI)MCP ServerGitHub Actions
定位在线"读盘室"本地全能工作台被 AI 客户端调用无人值守定时流水线
运行时Hono Worker + AI SDKAgentRuntimeFastMCP(stdio)定时脚本 + 通知推送
工具数13+(TS 封装)2619(三层权限)直接跑引擎
多轮对话✅✅❌(单次调用)—
后台任务❌✅❌✅(天然异步)
跨会话记忆❌✅(SQLite)❌—

四个入口的能力差异是刻意设计:网页版追求轻,CLI 追求全(后台任务、跨会话记忆、浏览器检索都只有它有),MCP 追求安全(写操作默认拒绝),Actions 则完全无人值守。

WyckoffTradingAgent 本地可视化面板总览界面

二、大脑:五层漏斗与信号反馈闭环 ⚙️

所有入口最终调用的"重活"都发生在 core/ 目录下的引擎里。主线漏斗引擎由 core/wyckoff_engine.py 与 core/mainline_engine.py 驱动,A 股全市场约 5000 只股票会依次通过五层筛选:

层名称做什么
L1基础过滤剔除 ST,过滤低价、小市值、低流动性标的
L2八通道强度主升 / 潜伏 / 吸筹 / 地量等八种威科夫量价通道
Mainline主线发现概念热度 + 主题雷达,输出"主线买点 / 观察 / 过热不追"
L3行业共振单标签行业共振验证
L4微观狙击Spring / EVR / 趋势回踩等核心买点形态
L5退出信号初始止损、利润激活与跟踪止损

关键设计是:L4 信号不会立即变成买入建议,而是进入跨日确认状态机(pending → survived → confirmed),由 core/signal_confirmation.py 用 1–3 天真实价格验证。更妙的是信号反馈闭环:漏斗每天记录观察样本,盘后任务结算后续收益并刷新信号健康度,下一轮漏斗再读取这些反馈——策略自己给自己打分数,完整流程见 docs/A_SHARE_FUNNEL_FLOW.md。

Wyckoff 威科夫量价分析单股 K 线结构图界面

三、CLI:本地全能工作台 🖥️

wyckoff 一条命令启动基于 Textual 的全屏终端对话(TUI),运行时收敛在 cli/runtime.py 的 AgentRuntime:它按 ReAct 范式循环——模型先推理,再决定调哪个工具,观察结果后进入下一轮,最多 15 轮。

CLI 是四个入口中能力最"满"的一个:

  • 后台任务:screen_stocks(全市场扫描)、generate_ai_report(AI 研报)、run_backtest(回测)这类耗时工具会提交给 BackgroundTaskManager(cli/background.py)的守护线程,立即返回不阻塞对话,完成后自动通知并汇报结果;
  • 跨会话记忆:分层记忆系统(cli/memory.py)从对话中沉淀你的风险偏好与交易剧本,下次对话自动召回;
  • 本地面板:wyckoff dashboard 一条命令启动可视化面板,推荐、信号池、记忆、对话日志尽在眼前。

WyckoffTradingAgent CLI 终端读盘室启动界面

诊断报告直接在终端渲染:逐只持仓体检、AI 三分类研报(逻辑破产 / 储备营地 / 起跳板)、资金仓位全景与违规未平仓告警,一目了然。

威科夫交易智能体 CLI 诊断研报输出界面

后台任务面板可以逐条查看每次扫描、研报、回测任务的执行状态与摘要:

WyckoffTradingAgent Dashboard 后台任务管理界面

四、Web:在线"读盘室" 🌐

网页版由 web/apps/web/(React 19 + Vite)前端与 web/apps/api/ 的 Hono Worker 组成,部署在 Cloudflare Pages 上。浏览器只请求同源 /api/*,边缘函数把请求反代到完整 Worker,由 Worker 完成鉴权、限流、工具执行与流式输出。

两个值得新手留意的架构决策:

  1. 调仓必须"两步走":网页版把调仓拆成 plan_portfolio_update → 用户在聊天里确认 → execute_portfolio_update,确认由协议层的审批机制强制保障,未确认前不会落库;
  2. 工具独立封装:Web 的 13+ 个工具(查持仓、大盘概览、漏斗选股、AI 研报等)用 TypeScript 独立实现,与 Python 侧共享同一份引擎语义,但不强行共享运行时。

威科夫交易智能体 Web 读盘室对话界面

漏斗选股页展示最近选股日的 AI 推荐清单:漏斗分、推荐价与现价对照,数据由每日定时漏斗任务产出,页面只读不重算。

AI 选股漏斗筛选结果页面

五、MCP:让 AI 客户端调用它 🔌

wyckoff-mcp 是一个 stdio 协议的 MCP Server(入口 mcp_server.py,实现位于 integrations/public_mcp/),把 19 个公开工具暴露给 Claude Code、Cursor 等 AI 客户端。它的安全模型对新手很有参考价值:

  • 三层权限:Tier 1 无需凭证(历史查询);Tier 2 需行情源 Key(搜索、单股分析、大盘、回测);Tier 3 需用户认证(持仓、AI 研报、决策);
  • 写操作默认拒绝:tools/write_guard.py 对写入类工具一律拦截,显式配置才放行——否则任何 MCP 客户端都能绕过审批直接清仓;
  • 握手零副作用:initialize / tools/list 不加载业务模块、不读登录态、不连数据库。

方向是双向的:WyckoffTradingAgent 自己也可以作为客户端接入第三方 MCP Server,外部工具会带 mcp__ 前缀并入同一套审批闸门。完整契约见 docs/PUBLIC_MCP.md。

六、GitHub Actions:7×24 的自动化骨架 🚀

如果说前三个入口是"人找系统",GitHub Actions 就是"系统找人"。.github/workflows/ 下有 40 多条工作流,构成一条无人值守的数据流水线(时间为北京时间,摘录核心几条):

时间工作流职责
周一~五 08:20盘前风控A50 + VIX 预警,开盘前先"量体温"
周一~五 16:05账户净值快照写入当日真实现金与持仓市值
周一~五 16:35港股漏斗港股全市场漏斗筛选
周日~四 17:17A 股漏斗daily_job.py 跑 Step2→3→4:筛选、AI 审判、生成决策工单
周二~六 05:35美股漏斗美股筛选 + 推荐表现结算
周一~五 23:00形态复盘重定价同步收盘价、计算推荐收益
周一~五 23:30信号反馈闭环结算信号 outcomes、刷新健康度
手动回测网格多周期 × 多风格回放 + walk-forward 样本外验证

除了业务任务,Actions 还负责部署:Worker 变更自动部署到 Cloudflare(worker_deploy.yml)、桌面端三平台测试与候选构建(desktop.yml)、Agent 服务镜像滚动更新(agent_service_deploy.yml)——代码合入 main 到线上生效,全程无需手动操作。

回测网格报告:最优参数梯队与 walk-forward 验证结果

七、数据与存储:多源降级 + 双层存储 🗄️

数据链路同样讲究"降级思维":

tickflow(★) → tushare → akshare → baostock → efinance   (A 股日线 OHLCV 五级降级)

统一由 integrations/stock_hist_repository.py 仓库层拉取。存储分两层:云端 Supabase(用户配置、持仓、推荐、信号、净值,RLS 行级权限隔离多用户)+ 本地 SQLite(~/.wyckoff/wyckoff.db),TUI 启动时由 integrations/sync.py 后台静默同步,云端不可达时自动使用本地陈旧数据,永不卡死。

WyckoffTradingAgent 本地与云端同步状态面板

八、一条候选的"完整链路":把四个入口串起来 🔗

理解了各部分,再看它们如何协作。一只 A 股从被选中到被复盘,完整走过一次全链路:

  1. Actions(周日~四 17:17)跑漏斗:全市场 5000 股 → 五层筛选 → AI 三分类审判 → 候选写入 Supabase,飞书推送日报;
  2. CLI / Web(次日):你在读盘室里问"今天有什么机会",Agent 读取最新漏斗结果与信号池,跨日确认(confirmed)的候选由 OMS 引擎收敛出唯一允许买入区间;
  3. 你确认执行:成交后通过 wyckoff portfolio fill 或 Web 回填真实成交;
  4. Actions(23:00 / 23:30):复盘任务重定价、信号反馈任务结算后续收益,反哺下一轮漏斗。

整条链路里,人只在"确认买入"和"回填成交"两个节点介入,其余全部自动流转——这就是"一条链路"的含义。

九、安全护栏:写给普通用户的定心丸 🛡️

  • 高危操作必须确认:执行命令、写文件、改持仓等工具在 CLI 弹窗确认,在 Web 走协议层审批,MCP 默认拒绝写入;
  • 无人值守更谨慎:本地 daemon 只放行最窄的 set_stop_loss(签名里根本没有股数/成本/现金参数),其余操作进待批准队列,12 小时过期;
  • 数据库唯一门是 RLS:Supabase 每张表强制行级权限,Web JWT、CLI token 各走各的策略,云端任务写共享表需显式声明 server_job 上下文;
  • 建议单不是成交:AI 只产出 APPROVED / NO_TRADE / CANCELLED 状态的建议工单,任何代码路径都不会自动扣减你的持仓。

十、快速上手:5 分钟跑起来 🏁

# 安装(Python 3.11+)
uv pip install youngcan-wyckoff-analysis

# 启动 CLI 读盘室,/model 里填入你的 LLM API Key 即可对话
wyckoff

# 启动本地可视化面板
wyckoff dashboard

# 以 MCP Server 身份供 AI 客户端调用
uvx --from 'youngcan-wyckoff-analysis[mcp]' wyckoff-mcp

零配置即可开始对话;需要行情能力时再配置 TickFlow / Tushare Key 即可。

延伸阅读 📚

风险提示:本项目用于教育、研究与信息参考,不构成投资建议。

【免费下载链接】WyckoffTradingAgent

Open-source Wyckoff trading agent and AI stock screener for volume-price analysis, A-share screening, CLI workflows, and MCP tools.灵感来自秋生trader @Hoyooyoo

项目地址: https://gitcode.com/gh_mirrors/wy/WyckoffTradingAgent
点击查看 免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值