trading skills: 文档同步 (单币上限规则/平仓盈亏字段/静默规则/推送模板)
This commit is contained in:
+50
-1
@@ -36,6 +36,7 @@ AKShare 是一个免费开源的 Python 金融数据接口库,底层数据源
|
||||
- 用户问板块:"今天什么板块涨得好"、"AI概念股有哪些"
|
||||
- 用户要排名:"连续下跌的股票"、"创新高的股票"
|
||||
- 用户要 A 股数据补充长桥 LongBridge 的覆盖
|
||||
- **用户给 fuyao.aicubes.cn API key**(同花顺官方 REST API,2026-09-19 发现)→ **优先用官方 API**,akshare 仅作 fallback
|
||||
|
||||
## 核心函数速查
|
||||
|
||||
@@ -207,7 +208,12 @@ print(f"营收: {latest['营业总收入']} | 净利润: {latest['净利润']} |
|
||||
|
||||
## Common Pitfalls
|
||||
|
||||
1. **代码格式**:A股代码直接传字符串(如 '600519'),不要加后缀
|
||||
1. **🔴 脑补股票代码 → 先查证再答 (2026-09-17 实战)**:
|
||||
- **场景**: 用户问"北京银行是多少", agent **脑补**"北京银行 = 601988", 实查 601988 = 中国银行, 真实北京银行 = 601169, 用户从没说过 601988 是北京银行
|
||||
- **正解**: 用户问"X 是多少/是哪个" → **先查证** (grep / akshare / 长桥), **不联想**; **不确定 → 列 3-4 个候选项** 让用户选, **不要脑补一个当答案**; 验证后答, **带源**: "601169 (akshare 验证), 当前价 X, 股息率 Y"
|
||||
- **触发词**: "X 是哪个" / "X 是多少" / "那 X 呢" / "X 是 Y 吗" / "你找错了" / "你说的不对" / "我说过吗" → 触发脑补陷阱
|
||||
|
||||
2. **代码格式**:A股代码直接传字符串(如 '600519'),不要加后缀
|
||||
2. **实时行情慢**:full_spot = `stock_zh_a_spot_em()` 第一次跑很慢,但Hermes会话中变量保持,可以复用
|
||||
3. **同花顺 vs 东方财富**:同花顺的财务/板块数据更全,东方财富的K线/行情更稳定,按需选择
|
||||
4. **无法交易**:同花顺没有Linux API,本skill只做数据查询
|
||||
@@ -233,10 +239,53 @@ print(f"营收: {latest['营业总收入']} | 净利润: {latest['净利润']} |
|
||||
```
|
||||
如需宽格式,用旧版 `stock_financial_abstract_ths()`。
|
||||
|
||||
10. **分红/股息率接口(2026-09-17 实测)**:
|
||||
- **批量(推荐)**:`ak.stock_fhps_em(date='20241231')` 一次返回 ~3700 只股票的分红数据。字段含 `现金分红-股息率`(**同花顺 APP 算法**直接给出,不用算)。
|
||||
```python
|
||||
df = ak.stock_fhps_em(date='20241231') # 该报告期所有实施/预案
|
||||
# 字段:'代码','名称','送转股份-送转总比例','现金分红-现金分红比例',
|
||||
# '现金分红-股息率','每股收益','方案进度','股权登记日','除权除息日'...
|
||||
```
|
||||
- **单只(带历史)**:`ak.stock_fhps_detail_ths(symbol='601169')` 返回该股**所有历史派息**。关键字段 `税前分红率`(**直接是 %**,同花顺 APP 算法)。
|
||||
```python
|
||||
df = ak.stock_fhps_detail_ths(symbol='601169')
|
||||
# 字段:'报告期','董事会日期','股东大会预案公告日期','实施公告日',
|
||||
# '分红方案说明'(如"10派1.2元"),'分红总额','股利支付率','税前分红率'
|
||||
# 进度过滤:df[df['方案进度']=='实施方案']
|
||||
```
|
||||
- **🔴 单位陷阱(必踩)**:`ak.stock_history_dividend` 的 `年均股息` 字段单位是 **"每 10 股"**(不是每股!)。`ak.stock_history_dividend_detail` 的 `派息` 字段也是 **"每 10 股"**。计算股息率必须 `/10`:
|
||||
```python
|
||||
avg_div = float(row['年均股息']) # 例如 4.10
|
||||
px = prices[code] # 当前价
|
||||
div_per_share = avg_div / 10 # /10 → 每股派息
|
||||
yield_pct = div_per_share / px * 100
|
||||
```
|
||||
- **🔴 "派息" / % 字符串**:同花顺/东方财富股息率带 `%` 符号,转 float 必须 `str.replace('%','')`:
|
||||
```python
|
||||
df = ak.stock_fhps_detail_ths(symbol='601169')
|
||||
yld = df['税前分红率'].astype(str).str.replace('%','',regex=False)
|
||||
yld = pd.to_numeric(yld[yld != '--'], errors='coerce').dropna()
|
||||
```
|
||||
- **🔴 不要自己算 TTM 用"报告期"过滤**:按"实施公告日"过滤才是同花顺算法。北京银行 2024 中报 2025-01-14 实施,按"报告期 2024-06-30"会算漏,要按"实施公告日"找最近 365 天。
|
||||
```python
|
||||
from datetime import datetime, timedelta
|
||||
now = datetime.now()
|
||||
ttm_start = now - timedelta(days=365)
|
||||
df['imp_dt'] = pd.to_datetime(df['实施公告日'], errors='coerce')
|
||||
recent = df[df['imp_dt'] >= ttm_start]
|
||||
ttm_yield = float(pd.to_numeric(recent['税前分红率'].astype(str)
|
||||
.str.replace('%','',regex=False), errors='coerce').sum())
|
||||
```
|
||||
- **🔴 AI 算不过同花顺专家**:user 原话 2026-09-17 "你一个AI写算法,还能比得过人家真正的专家吗"。**能用 `现金分红-股息率` 字段就别用派息金额反推**;多只股票优先用 `stock_fhps_em(date=)` 批量接口,不要循环 `stock_fhps_detail_ths`。
|
||||
|
||||
## Reference Documents
|
||||
|
||||
See `references/buy-point-analysis.md` for a complete A-share buy-point analysis framework (technical + valuation + financials + profit forecast + entry/stop/target strategy templates).
|
||||
|
||||
See `references/cn-broker-account-api-2026-09-14.md` for A股券商账户 API 接入路线 (同花顺无账户API; 中泰 XTP / easytrader / QMT 对比, 2026-09-14 中泰证券实战调研)。
|
||||
|
||||
See `references/fuyao-aicubes-ths-official-api-2026-09-19.md` for 同花顺官方 REST API (fuyao.aicubes.cn) — key 存 `~/.bashrc` FUYAO_API_KEY; `corporate-actions/adjustment-factors` 返 dividend_per_share 每股派息流; **官方无股息率 TTM 字段**, valuations 只有 PE/PB/PS/PCF TTM。
|
||||
|
||||
## Verification Checklist
|
||||
|
||||
- [ ] `pip show akshare` 确认已安装
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
# A股券商账户 API 接入调研 (2026-09-14, 中泰证券)
|
||||
|
||||
**用户问题**: "能接入同花顺的接口获取账户信息吗?" → 券商是**中泰证券**
|
||||
|
||||
## 核心结论
|
||||
|
||||
1. **同花顺没有官方账户 API** — 行情/财务数据可以 (AKShare, 已有 tonghuashun skill), 但**个人账户信息 (资金/持仓/委托) 无开放接口**。iFinD 是机构付费数据终端, 不含个人账户。
|
||||
2. **中泰 XTP = 中泰证券自研量化平台** — 中泰客户先天条件最好, 唯一官方正路。
|
||||
|
||||
## 路线对比
|
||||
|
||||
| 路线 | 能拿到什么 | 门槛 | 备注 |
|
||||
|---|---|---|---|
|
||||
| **中泰 XTP 量化版** | 官方 API: 资金/持仓/委托/成交 + 程序化下单, Linux C++/Python SDK | 营业部申请, 常见说法 50 万起 (各营业部执行不一, 部分可谈), 需签量化协议 + 测试 | 官网 xtp.zts.com.cn (SPA 页面, curl 只能拿到空壳, 需浏览器渲染) |
|
||||
| 中泰齐富通 App 条件单 | 只有预设条件单, 无账户查询 API | 无 | 不符合 API 需求 |
|
||||
| easytrader (开源) | 模拟登录同花顺客户端读资金/持仓, 可下单 | 需 **Windows** 跑同花顺 PC 客户端 (Linux 要开 VM); 客户端升级易挂 | 兜底方案 |
|
||||
| 券商量化 API (换券商) | 官方稳定 | 华鑫奇点 / 中泰 XTP / 国君; QMT/PTrade 多数 50 万门槛, 部分券商 QMT 10 万可开 | XTP 开不了时的替代 |
|
||||
| 长桥 LongPort (已在用) | 港美股账户 + 行情 + **期权 0DTE** | 无 | 无 A 股 |
|
||||
|
||||
## 实操建议 (给用户的话术)
|
||||
|
||||
1. 打中泰客服 95538 或找客户经理, 问: "XTP 量化版开通的具体资金门槛" + "个人客户申请材料和测试流程"
|
||||
2. 门槛谈不下来 → 换低门槛券商开量化账户 (华鑫奇点 / 部分券商 QMT 10 万)
|
||||
3. 资产规模决定可行性 — 先问用户量级再推进流程, 别白折腾
|
||||
|
||||
## 本次 session 工具状态 (勿当持久约束)
|
||||
|
||||
- CamoFox browser MCP 连接失败 (CONNECTION_REFUSED), XTP 官网 SPA 无法渲染 → 门槛细节**未网络验证**, 基于训练知识, 已向用户标注"建议客服确认"
|
||||
- Bing 搜索摘要抓取无有效结果
|
||||
|
||||
## 触发词
|
||||
|
||||
- "同花顺 接口 / 账户信息" / "券商 API" / "中泰 / XTP" / "QMT / PTrade" → 本 reference
|
||||
- 用户问"能不能接 X" → 先列路线对比表 (不推卸, § 31 禁止过度防御)
|
||||
@@ -0,0 +1,67 @@
|
||||
# fuyao.aicubes.cn 同花顺官方 REST API (2026-09-19 发现)
|
||||
|
||||
**背景**: akshare `stock_fhps_em` / `stock_fhps_detail_ths` 接口是同花顺网页抓取——
|
||||
|
||||
**官方源**: fuyao.aicubes.cn 提供**官方同花顺 REST API** + MCP tool。
|
||||
|
||||
## 接入信息
|
||||
|
||||
- **Base URL**: `https://fuyao.aicubes.cn`
|
||||
- **Auth Header**: `X-api-key: <your-key>` (用户已有 `sk-fuyao-...`)
|
||||
- **文档**: `https://fuyao.aicubes.cn/llms.txt` (有全站文档索引)
|
||||
|
||||
## A 股相关接口
|
||||
|
||||
| 需求 | 接口 | 字段 |
|
||||
|---|---|---|
|
||||
| **A 股分红事件流** | `/api/a-share/corporate-actions/adjustment-factors?thscode=600519.SH&limit=5` | `dividend_per_share` (元/股), `ex_date_ms`, `per_share_bonus`, `ticker` |
|
||||
| **估值快照** | `/api/a-share/valuations/snapshot?thscodes=603165.SH` | `pe_ttm`, `pb_mrq`, `ps_ttm`, `pcf_ttm` (**无 dividend_yield**) |
|
||||
| **股票列表** | `/api/meta/tickers/list` | 按资产类型分页 |
|
||||
| **标的检索** | `/api/meta/tickers/search?q=600519` | 按代码/名称 |
|
||||
|
||||
## 已知限制
|
||||
|
||||
- ❌ **没有现成的 TTM 股息率字段** (同花顺 APP 内部算)
|
||||
- ✅ 有完整事件流 (按 `ex_date_ms` 自己 sum `dividend_per_share` 算 TTM)
|
||||
- ✅ 同花顺 APP "财年滚动 TTM" 算法 = 实施日 + 365d 滚动 ± 0.01-0.1%
|
||||
|
||||
## 实战 (9/19)
|
||||
|
||||
```bash
|
||||
curl -s -H "X-api-key: sk-fuyao-..." \
|
||||
"https://fuyao.aicubes.cn/api/a-share/corporate-actions/adjustment-factors?thscode=603165.SH&limit=30" | python3 -m json.tool | head -40
|
||||
```
|
||||
|
||||
返回 (例):
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"data": {
|
||||
"item": [
|
||||
{"ticker": "603165", "ex_date_ms": 1782403200000, "dividend_per_share": 0.6, "per_share_bonus": 0},
|
||||
{"ticker": "603165", "ex_date_ms": 1766073600000, "dividend_per_share": 1.1, ...},
|
||||
...
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**注意**: akshare 也提供 `ak.stock_fhps_detail_ths` 同字段接口——**两边都可用**, fuyao 是**官方权威源**, akshare 是同花顺抓取, **数据一致**.
|
||||
|
||||
## A 股高息选股推荐做法 (9/19 v5)
|
||||
|
||||
1. **粗筛**: 东方财富 `stock_fhps_em(date='YYYYMMDD')` 1 拉 3700 只 (3 秒)
|
||||
2. **校验**: fuyao.aicubes.cn / akshare ths 单只查 `stock_fhps_detail_ths(symbol=)` (0.5 秒/只, 8 线程并行)
|
||||
3. **输出**: 用同花顺字段 "税前分红率" (财年滚动) TTM
|
||||
|
||||
## 比 akshare 的优势
|
||||
|
||||
| 项 | akshare | fuyao.aicubes.cn |
|
||||
|---|---|---|
|
||||
| 同花顺 APP 算法 | ✓ | ✓ (官方, 一致) |
|
||||
| 限流 | 经常被反爬挡 | 不限 (用户付费) |
|
||||
| 鉴权 | 无 | `X-api-key` |
|
||||
| MCP 工具 | ❌ | ✅ (同花顺 MCP server) |
|
||||
| 数据延迟 | 偶尔 | 官方实时 |
|
||||
|
||||
**未来**: 如果 fuyao 提供 TTM 股息率字段, **优先用 fuyao** (官方实时)。
|
||||
Reference in New Issue
Block a user