Files
stock-analysis/docs/可行性分析.md
WarrenZhou e28bfec957 Initial commit: 可转债轮动分析系统
- 实时行情:东财push2主源 + 腾讯批量报价备用源(自动切换)
- 历史K线:东财push2his主源 + 腾讯web子域备用源(含熔断机制)
- 增量同步:支持 -incr/-since 参数按存档日期增量入库
- 策略回测:净值曲线/10指标/基准对比,含基本面过滤
- 用户认证:用户名密码 + 邮箱验证码双登录方式
- 前端:三Tab SPA(实时行情/策略回测/数据管理)
2026-08-17 20:23:22 +08:00

142 lines
6.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# stock-analysis 可行性分析
> 项目:可转债轮动策略分析系统(Go B/S 架构)
> 日期:2026-08-12
## 1. 项目目标
搭建一个基于 Go 语言的 B/S 架构量化分析系统,实现:
- **策略制定**:用户自定义可转债轮动策略(选债因子、权重、调仓频率、风控规则)
- **历史回测**:用历史数据验证策略表现(年化收益、最大回撤、胜率、夏普比率)
- **实时交易**:通过东方财富开放平台模拟交易 API(方案4)自动下单,仅在模拟盘运行
## 2. 技术可行性
| 维度 | 方案 | 结论 |
|---|---|---|
| 后端语言 | Go 1.25.0 | ✅ 高并发 HTTP 拉取、B/S API 开发成熟 |
| 前端 | 原生 HTML/JS + ECharts(无构建链,轻量) | ✅ 满足回测曲线/持仓展示 |
| 数据库 | SQLite(modernc.org/sqlite,纯 Go 无 CGO) | ✅ 单机部署零依赖 |
| 定时任务 | Go 标准库 + goroutine 调度 | ✅ 盘中定时轮询行情 |
| 回测引擎 | 自研(事件驱动,逐日模拟) | ✅ 日频数据足够 |
## 3. 数据源可行性(东方财富免费接口)
### 3.1 实时全量可转债列表
```
GET https://push2.eastmoney.com/api/qt/clist/get
?pn=1&pz=100&po=1&np=1&fltt=2&invt=2&fid=f3&fs=b:MK0354
&fields=f2,f3,f12,f14,f26,f227,f228,f230,f232,f234,f235,f236,f237,f238,f239,f240
```
| 字段 | 含义 | 状态 |
|---|---|---|
| f2/f3 | 转债最新价 / 涨跌幅 | ✅ 实测确认 |
| f12/f14 | 转债代码 / 名称 | ✅ |
| f26 | 上市日期 | ✅ |
| f227 | 纯债价值 | ✅ 对照数据中心确认 |
| f228 | 正股最新价 | ✅ |
| f230 | 正股涨跌幅 | ✅ |
| f232/f234 | 正股代码 / 名称 | ✅ |
| f235 | 转股价 | ✅ |
| f236 | 转股价值 | ✅ |
| f237 | 转股溢价率(%) | ✅ |
| f238 | 纯债溢价率(%) | ✅ |
| f239/f240 | 回售/强赎触发价 | ✅ |
| f229 | ~~剩余规模~~ | ⚠️ 实测与剩余规模不符,疑似成交额,弃用 |
| 剩余规模 | 选债关键因子 | ⏳ M2 待定方案(datacenter 无此字段,需评估集思录等替代源) |
> 实测方法:请求 `fields` 后与东财数据中心详情页(data.eastmoney.com/kzz/detail)数值逐一对照。
> 注意:东财字段值可能是数字或 `"-"` 字符串,解析须容错;单页 `pz` 上限 100,需分页拉取。
### 3.2 历史K线(回测数据)
```
GET https://push2his.eastmoney.com/api/qt/stock/kline/get
?secid=1.113050&klt=101&fqt=0&beg=20200101&end=20500101&fields1=f1,f2,f3&fields2=f51,f52,f53,f54,f55,f56,f57
```
- 支持日(101)/周(102)/月(103)K线,前复权/不复权
- 返回 OHLC + 成交量 + 成交额,满足回测需求
### 3.3 频率限制与对策
| 风险 | 对策 |
|---|---|
| 无官方 SLA,接口可能变动 | 解析层隔离,字段映射集中管理 |
| 高频调用可能被封 IP | 全局限速器 500ms/请求 + 失败重试 + 指数退避 |
| 盘中数据延迟 | 以 3-5 秒轮询为主,不做毫秒级 |
## 4. 回测可行性
- 数据:日频 K 线全量可下载,覆盖近 5 年
- 交易模拟:按收盘价/次日开盘价撮合,计入佣金(万 0.5)、印花税(可转债免)、滑点(0.1%)
- 停牌处理:停牌日跳过,不产生交易
- 策略基准:中证转债指数(可下载)对照超额收益
## 5. 交易执行可行性(方案4:东方财富开放平台)
### 5.1 能力清单
| 能力 | 支持情况 |
|---|---|
| 模拟交易下单 | ✅ 需要申请模拟账户 + app_id/access_token/trade_key |
| 订单查询 / 撤单 | ✅ |
| 持仓 / 资金查询 | ✅ |
| 实盘交易 | ❌ 本项目不接入实盘 |
### 5.2 限制
- 仅 A 股标的(可转债含在 A 股范围内,需确认模拟盘支持可转债)
- API 调用频率限制约 15 秒/次
- 仅交易时段(9:15-15:00)可用
- 非官方文档化,接口以实际返回为准
### 5.3 结论
模拟盘对接可行,但**先完成数据与回测模块**,交易模块作为独立阶段开发,风险隔离。
## 6. 系统架构
```
┌─────────────────────────────────────────────┐
│ Web 前端 (HTML + ECharts) │
│ 策略配置 / 回测结果 / 持仓展示 / 下单操作 │
└─────────────────────┬───────────────────────┘
│ HTTP API
┌─────────────────────▼───────────────────────┐
│ Go 后端 │
│ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │
│ │ 策略引擎 │ │ 回测引擎 │ │ 交易模块 │ │
│ └──────────┘ └──────────┘ └──────────────┘ │
│ ┌──────────────────────────────────────┐ │
│ │ 数据层:东财接口客户端 + 限速 + 缓存 │ │
│ └──────────────────────────────────────┘ │
│ ┌──────────────────────────────────────┐ │
│ │ 存储:SQLite(行情缓存/回测结果/配置) │ │
│ └──────────────────────────────────────┘ │
└──────────────┬───────────────────────────────┘
│
┌──────────▼──────────┐
│ 东方财富免费行情接口 │ ┌─────────────────┐
│ (push2 / push2his) │ │ 开放平台模拟交易 │
└─────────────────────┘ └─────────────────┘
```
## 7. 里程碑规划
| 阶段 | 内容 | 状态 |
|---|---|---|
| M1 | 可行性分析 + 项目骨架 + 数据拉取模块 | 本次 |
| M2 | 回测引擎 + 轮动策略 + 回测结果可视化 | 后续 |
| M3 | 模拟盘交易模块(方案4对接) | 后续 |
| M4 | 定时任务 + 持仓跟踪 + 风控告警 | 后续 |
## 8. 结论
- 技术、数据、回测:**完全可行**
- 交易(方案4模拟盘):**有条件可行**,需先开通模拟账户
- 建议路径:M1 → M2 优先,M3/M4 在模拟账户开通后进行