Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📈 Stock Trader

给 AI 智能体用的 A 股交易技能 — 行情 · 信号 · 回测 · 风控,自带"信号不可信"预警

OpenClaw Skill Python License: MIT Market: A股 Paper Trading Only

让智能体看得到数据、算得出信号、知道信号什么时候不可信、并且永远碰不到你的真实账户。


它解决什么问题

给 LLM 智能体接上股票数据很容易,难的是另外三件事:

  1. 不胡说 — 所有数字来自实时接口,智能体被禁止凭记忆编造行情;
  2. 不自信过头 — 技术信号在震荡阴跌股上会反复止损失血。本技能会用该股自己的历史数据回测这套信号,胜率不行就把买入信号当场拦下来,并告诉你证据;
  3. 不碰真钱 — 不接任何券商接口,模拟盘 + 人工确认是写死在技能定义里的红线。

✨ 功能一览

模块 能力
🔌 行情数据 实时报价(批量)· 前复权日K · 四大指数 · 主力资金流向
📊 技术分析 六指标投票信号(MA/MACD/RSI/KDJ/BOLL/量能)· 支撑阻力位 · ADX/ER 趋势强度
🚨 三层预警 适配度硬门槛(核心)· 大盘空头降级 · 震荡/下跌环境提示
🔬 信号回测 含佣金印花税 · 固定止损+移动止盈 · 胜率/回撤 vs 买入持有
💼 模拟盘 T+1(按当日买入部分锁定)· 单票/总仓位上限 · 移动止盈 · 权益曲线与最大回撤
⭐ 自选股 增删查 + 一键批量扫描

🏗️ 架构

flowchart LR
    subgraph 数据源
        T[腾讯行情<br>报价/日K/指数]
        E[东方财富<br>主力资金流]
    end
    subgraph "scripts/"
        F[fetch_data.py]
        A[analyze.py<br>信号+预警]
        B[backtest.py<br>策略回测]
        P[paper_trade.py<br>模拟盘+风控]
        W[watchlist.py]
    end
    AGENT((AI 智能体<br>SKILL.md 驱动))
    T --> F
    E --> F
    F --> A
    F --> P
    A -->|信号| AGENT
    A <-->|适配度门槛| B
    W --> A
    P -->|持仓/报警| AGENT
    AGENT -->|建议委托单| USER[用户手动下单]
Loading

🚨 三层预警体系(本项目的灵魂)

技术信号最大的谎言是"它对每只股票都管用"。实测同一套六指标信号:

股票 近500日信号胜率 策略收益 同期买入持有
宁德时代 69.2% +113.9% +138.6%
招商银行 87.5% +34.7% +28.7%
贵州茅台 18.2% −22.1% −1.0%
五粮液 25.0% −12.1% −25.4%

同一信号,有的票能用,有的票是绞肉机。因此:

第 1 层 · 适配度硬门槛(自动强制)analyze 产出买入信号时,自动回测该票近 500 日(结果按天缓存)。胜率 <45% 或策略收益为负 → 买入信号强制降为 hold

"signal": "hold",
"raw_signal": "buy",
"warnings": [
  "适配预警(已拦截买入):该票近500日信号胜率 18.2%、策略收益 -22.12%
   (同期持有 -0.97%),本信号体系与该票不匹配"
]

第 2 层 · 大盘过滤 — 上证指数空头排列时,买入信号自动降一级。

第 3 层 · 环境预警(仅提示) — 个股下跌趋势(close<MA60 且 MA20<MA60)、震荡市(ADX<20 且 ER<0.25)输出警告但不拦截。

💡 为什么第 3 层不做硬拦截? 我们做过 5 股 × 500 日的对照实验:环境硬拦截改善了茅台(−22%→−18%)却重伤了宁德(+114%→+62%)和五粮液(−12%→−30%),五股合计收益从 +121% 砍到 +52%——因为 V 型反转的最强买点必然出现在"下跌趋势"判定区内。预测环境不可靠,直接测量信号在这只票上的历史战绩才可靠。 实验开关保留在 backtest.py --entry-mode 供复现。

⛔️ 安全红线

写死在 SKILL.md,任何对话指令不得覆盖:

  • ❌ 不连接任何券商实盘接口,不自动下单
  • ✅ 实盘操作只输出"建议委托单",由用户在券商 App 手动执行
  • ✅ 止损报警只提醒,模拟盘卖出也需用户确认
  • ✅ 每条买入建议必须附带止损价、仓位上限与风险提示

🚀 快速开始

# 1. 安装依赖
pip install -r requirements.txt

# 2. 作为 OpenClaw 技能安装
cp -r stock-trader ~/.openclaw/skills/
# 之后在对话中提到 行情/信号/回测/复盘 即自动触发

# 3. 或者直接当 CLI 用
python scripts/fetch_data.py quote 600519 300750   # 实时行情
python scripts/analyze.py --watchlist              # 扫描自选股(含三层预警)
python scripts/backtest.py 600519 --days 500       # 回测验证
python scripts/paper_trade.py init --cash 1000000  # 开模拟盘
📜 全部命令速查
# 行情
python scripts/fetch_data.py quote <代码...>        # 实时行情(批量)
python scripts/fetch_data.py history <代码> --days N # 前复权日K
python scripts/fetch_data.py index                  # 四大指数
python scripts/fetch_data.py moneyflow <代码>       # 主力资金流向

# 分析与回测
python scripts/analyze.py <代码...> [--scan|--watchlist|--no-market]
python scripts/backtest.py <代码...> [--days 500] [--entry-mode off|soft|hard]

# 自选股
python scripts/watchlist.py add <代码> [--note 备注]
python scripts/watchlist.py remove <代码>
python scripts/watchlist.py list

# 模拟盘
python scripts/paper_trade.py init --cash <金额>
python scripts/paper_trade.py buy <代码> --qty <数量> --reason <理由>
python scripts/paper_trade.py sell <代码> --qty <数量> --reason <理由>
python scripts/paper_trade.py status   # 持仓+盈亏+最大回撤
python scripts/paper_trade.py risk     # 止损巡检(适合定时任务)

💼 模拟盘风控规则

规则 数值 说明
单票仓位上限 总资产 30% 超额拒单
总仓位上限 总资产 90% 强制留现金
T+1 仅锁当日买入部分 原有持仓可卖
固定止损 成本价 −8% 买入即记录
移动止盈 浮盈 +10% 启动,最高价回撤 8% 触发 自动抬升止损线
交易成本 佣金万2.5(最低5元,双向)+ 印花税 0.05%(卖出) 盈亏均为含费净值

所有拒单都会返回人话原因,例如:

风控拒单:T+1 规则,今日买入的 100 股锁定,当前可卖 100 股
风控拒单:买入后总仓位将超过 90% 上限,须保留现金

📁 项目结构

stock-trader/
├── SKILL.md              # 技能定义:触发条件、安全红线、工作流(智能体读这个)
├── requirements.txt      # 仅 requests + pandas
└── scripts/
    ├── fetch_data.py     # 数据层:行情/日K/指数/资金流,自带重试与代理绕过
    ├── analyze.py        # 信号层:六指标投票 + 三层预警
    ├── backtest.py       # 验证层:含费回测引擎(被适配度门槛复用)
    ├── paper_trade.py    # 执行层:模拟盘 + 全套风控
    └── watchlist.py      # 自选股管理

🤝 适配其他智能体框架

技能本体就是 SKILL.md(Anthropic Skill 规范)+ 普通 Python CLI 脚本, 不依赖 OpenClaw 任何私有 API——Claude Code、Codex 等任何能读 Markdown、 能执行命令的智能体框架都可以直接使用。

⚠️ 免责声明

本项目仅供技术研究与教育用途。所有信号、回测与预警均基于历史数据, 不构成任何投资建议,不保证未来有效。股市有风险,入市需谨慎, 使用本工具产生的任何投资决策与盈亏由使用者自行承担。

📄 License

MIT

About

A股交易技能 for AI 智能体 — 行情/信号/回测/风控,自带信号适配度预警 (OpenClaw Skill)

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages