事件驱动交易台维护技能
事件驱动交易台维护与调试。当用户需要修改、调试或扩展 racingai.top/event-driven 页面功能时加载。覆盖:前后端架构、动态渲染调试、服务器部署与重启、后端API数据结构。
chenxyzcyxpp
@chenxyzcyxpp
Install
$ openclaw skills install @chenxyzcyxpp/event-driven-dashboard事件驱动交易台维护技能
架构概览
零依赖事件驱动股票分析仪表板,部署在阿里云ECS (<SERVER_IP>)。
用户浏览器 → nginx (racingai.top) → Python HTTPServer (:5566)
├── GET /event-driven → 返回 HTML
├── GET /api/health → 健康检查
├── GET /api/market → 上证实时行情
└── POST /api/analyze → AI新闻分析
↓
news_analyzer.py
├── 百度千帆 LLM (ernie-4.5-turbo-128k)
└── 东方财富 API (实时行情)
文件位置(活跃部署):
/var/www/event-driven/event-driven-trader-dashboard.html— 独立 HTML 前端(含内嵌 CSS + JS,无外部依赖)/var/www/event-driven/server.py— 零依赖 Python HTTP 后端(纯标准库,兼容 Python 3.6+)/var/www/event-driven/news_analyzer.py— AI 新闻分析引擎
⚠️
/home/horserace/fintech/下有一份不完整的副本,不是活跃部署。始终修改/var/www/event-driven/下的文件。
调试 Pitfalls(必读)
Pitfall 1: 初始 HTML 硬编码演示数据
症状:页面某个区域"不随分析结果更新",始终显示固定内容(如中国电建、比亚迪等)。
根因:初始 HTML 中包含大量硬编码演示数据(~21KB),覆盖全部 7 个区域。即使 JS 渲染函数存在且被正确调用,页面初始加载时用户看到的是假数据。
修复模式:
- 检查 JS 渲染函数是否存在且在
runAnalysis()中被调用 - 检查初始 HTML 中是否有硬编码的演示数据(grep 标的名称如"中国电建")
- 将所有硬编码演示数据替换为"等待分析"空状态占位
- 确认
runAnalysis()在收到 API 响应后调用所有渲染函数
受影响区域(8个,全部需检查):
- 事件影响力面板(4 个指标卡)
- 板块影响热力(sector tiles)
- 标的共振排序(table tbody)
- 三维共振决策矩阵(SVG
<g id="matrixDataPoints">内的数据点) - 分析报告 → 事件解读 tab (
tab-event) - 分析报告 → 产业链拆解 tab (
tab-chain) - 分析报告 → 技术面详情 tab (
tab-tech) - 分析报告 → 操作建议 tab (
tab-action) - Pipeline 步骤描述(Pipeline desc)
Pitfall 2: 浏览器缓存旧版本
症状:修复已部署到服务器,但用户仍看到旧页面。
根因:server.py 的 _serve_html() 原本不设置 Cache-Control 头,浏览器缓存旧 HTML。
修复:_serve_html() 必须返回以下头:
self.send_header("Cache-Control", "no-cache, no-store, must-revalidate")
self.send_header("Pragma", "no-cache")
self.send_header("Expires", "0")
Pitfall 3: 服务器不支持 HEAD 方法
BaseHTTPRequestHandler 默认只处理 GET/POST,curl -I(HEAD)返回 501。用 curl -s 或 curl -sD- -o/dev/null 验证。
部署与重启
# 1. 上传修改后的文件
scp /local/file.html root@<SERVER_IP>:/var/www/event-driven/
# 2. 重启 systemd 服务(服务由 systemd 托管,勿用 fuser+nohup 手动重启,会与 systemd 冲突)
ssh root@<SERVER_IP> "systemctl restart event-driven"
# 3. 查看服务状态与日志
ssh root@<SERVER_IP> "systemctl status event-driven"
ssh root@<SERVER_IP> "journalctl -u event-driven -n 50"
# 4. 验证
ssh root@<SERVER_IP> "curl -s http://127.0.0.1:5566/api/health"
# 期望返回: {"status": "ok", "service": "event-driven-trader"}
后端 API 数据结构
POST /api/analyze 请求体:{"text": "新闻文本"}
响应 JSON 关键字段:
{
"event_type": "policy|earnings|industry|company|macro",
"event_title": "事件标题",
"event_summary": "事件摘要",
"market_impact": {"direction": "利好|利空|中性", "duration": "短期|中期|长期", "intensity": "high|medium|low"},
"affected_sectors": [{"sector": "板块名", "impact": "利好|利空", "reason": "原因"}],
"beneficiary_stocks": [{"name": "股票名", "code": "代码", "signal": "strong|medium|weak", "logic": "逻辑", "key_point": "关注点"}],
"risk_factors": ["风险1", "风险2"],
"signal_summary": "综合研判",
"confidence": "high|medium|low",
"disclaimer": "免责声明"
}
前端渲染函数链
runAnalysis() 在收到 API 响应后依次调用:
renderMetrics(data) → 事件影响力面板
renderSectors(data) → 板块影响热力
renderTargets(data) → 标的共振排序表
renderMatrix(data) → 三维共振决策矩阵 SVG
renderReport(data) → 分析报告(4个tab全部更新)
updatePipelineDesc(data) → Pipeline 步骤描述
验证清单
修改后必须验证:
grep -c '中国电建\|比亚迪\|隆基绿能'返回 0(无硬编码数据)grep -c '等待分析'返回预期数量(占位符存在)- 渲染函数数量正确(
grep -c 'function render') renderMatrix(data)和renderReport(data)在runAnalysis()中被调用- Cache-Control 头正确返回
- 端到端 API 测试通过(
POST /api/analyze返回有效数据)
详见 references/architecture.md 获取完整架构细节和区域映射。
Top skills in this category
Stock Analysis
@udiedrichsenAnalyze stocks and cryptocurrencies using Yahoo Finance data. Supports portfolio management, watchlists with alerts, dividend analysis, 8-dimension stock scoring, viral trend detection (Hot Scanner), and rumor/early signal detection. Use for stock analysis, portfolio tracking, earnings reactions, crypto monitoring, trending stocks, or finding rumors before they hit mainstream.
Stock Market Pro
@kys42Yahoo Finance (yfinance) powered stock analysis skill: quotes, fundamentals, ASCII trends, high-resolution charts (RSI/MACD/BB/VWAP/ATR), plus optional web a...
Stock Watcher
@robin797860Manage and monitor a personal stock watchlist with support for adding, removing, listing stocks, and summarizing their recent performance using data from 10jqka.com.cn. Use when the user wants to track specific stocks, get performance summaries, or manage their watchlist.
A股量化 AkShare
@mbpzA股量化数据分析工具,基于AkShare库获取A股行情、财务数据、板块信息等。用于回答关于A股股票查询、行情数据、财务分析、选股等问题。
Intelligent Stocks Screener
@financial-ai-analyst基于东方财富数据库,支持通过自然语言输入筛选A港美股、基金、债券等多种资产,支持多元指标筛选,含技术面、消息面、基本面及市场情绪等,可用于全球资产速筛、跨市场监控、投资组合构建、策略回测等场景。返回结果包含数据说明及 csv 文件。Natural language screener for investment...