$npx -y skills add Yourdaylight/stock_datasource --skill stock-rt-subscribeSubscribe to real-time stock market data via WebSocket long connection from receiver nodes (A-shares, HK stocks, ETFs). Use this skill when the user wants to monitor live stock prices, set up real-time alerts, or stream minute-level K-line data. The skill provides a WebSocket ser
| 1 | # 实时股票数据订阅(WebSocket) |
| 2 | |
| 3 | 通过 **WebSocket 长连接** 实时接收 A 股、港股、ETF 行情数据,每 3~5 秒更新一次。 |
| 4 | |
| 5 | ## 架构 |
| 6 | |
| 7 | ``` |
| 8 | Receiver Node (HTTP API) → scripts/subscribe_client.py → ws://localhost:8765 → 客户端 |
| 9 | ``` |
| 10 | |
| 11 | ## 环境准备 |
| 12 | |
| 13 | ```bash |
| 14 | pip install requests websockets |
| 15 | export STOCK_RT_NODE_URL="http://your-node:9100" |
| 16 | export STOCK_RT_TOKEN="your-token" # 可选,有鉴权时设置 |
| 17 | ``` |
| 18 | |
| 19 | ## 快速开始 |
| 20 | |
| 21 | ### 一次性查询(验证连通性) |
| 22 | |
| 23 | ```bash |
| 24 | python3 scripts/subscribe_client.py --symbols 00700.HK 600519.SH --once |
| 25 | ``` |
| 26 | |
| 27 | ### 启动 WebSocket 推送服务 |
| 28 | |
| 29 | ```bash |
| 30 | # 基础订阅 |
| 31 | python3 scripts/subscribe_client.py --symbols 00700.HK 09988.HK 600519.SH |
| 32 | |
| 33 | # 指定节点和端口 |
| 34 | python3 scripts/subscribe_client.py --node-url http://your-node:9100 --ws-port 8765 --symbols 00700.HK |
| 35 | |
| 36 | # 涨跌幅告警(±2% 触发) |
| 37 | python3 scripts/subscribe_client.py --symbols 00700.HK --alert-pct 2.0 |
| 38 | |
| 39 | # 输出到文件 |
| 40 | python3 scripts/subscribe_client.py --symbols 00700.HK --output ticks.jsonl |
| 41 | ``` |
| 42 | |
| 43 | ### 编程方式启动 |
| 44 | |
| 45 | ```python |
| 46 | from scripts.subscribe_client import StockWSServer |
| 47 | |
| 48 | server = StockWSServer( |
| 49 | node_url="http://your-node:9100", |
| 50 | symbols=["00700.HK", "09988.HK"], |
| 51 | poll_interval=3.0, |
| 52 | ) |
| 53 | server.add_callback(lambda sym, tick: print(f"{tick.name}: {tick.close}")) |
| 54 | server.run(port=8765) |
| 55 | ``` |
| 56 | |
| 57 | ### AI Agent 集成 |
| 58 | |
| 59 | ```python |
| 60 | from scripts.ai_agent_integration import StockDataAgent |
| 61 | |
| 62 | agent = StockDataAgent() |
| 63 | agent.install() # 检查依赖、验证节点连通性 |
| 64 | |
| 65 | # 完整工作流(订阅 + 告警监控 60 秒) |
| 66 | import asyncio |
| 67 | asyncio.run(agent.complete_workflow(['00700.HK', '600519.SH'], duration=60)) |
| 68 | ``` |
| 69 | |
| 70 | ## 告警策略 |
| 71 | |
| 72 | 告警规则配置见 [references/strategy_config.json](references/strategy_config.json),内置策略: |
| 73 | - `limit_up_down`:涨停/跌停监控 |
| 74 | - `big_move`:大幅波动(≥ ±5%) |
| 75 | - `vol_spike`:成交量异动(≥ 近5日均量3倍) |
| 76 | - `price_breakout`:价格突破近20日高点 |
| 77 | |
| 78 | ## 参考文档 |
| 79 | |
| 80 | - **[references/api.md](references/api.md)**:WebSocket 消息格式、数据字段说明、客户端连接示例(Python/JS/wscat)、动态订阅管理指令、排错指南 |
| 81 | - **[references/strategy_config.json](references/strategy_config.json)**:告警策略完整配置 |