- 实时行情:东财push2主源 + 腾讯批量报价备用源(自动切换) - 历史K线:东财push2his主源 + 腾讯web子域备用源(含熔断机制) - 增量同步:支持 -incr/-since 参数按存档日期增量入库 - 策略回测:净值曲线/10指标/基准对比,含基本面过滤 - 用户认证:用户名密码 + 邮箱验证码双登录方式 - 前端:三Tab SPA(实时行情/策略回测/数据管理)
142 lines
6.6 KiB
Markdown
142 lines
6.6 KiB
Markdown
# 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 在模拟账户开通后进行
|