PROJECT ROADMAP / 06
完整项目路线图
直接同步中英文 README 的 A–R 任务表。它既是进度记录,也是后续研究范围的约束。
A项目结构与基础环境(1—15)
12 / 15 完成
+
项目结构与基础环境(1—15)
12 / 15 完成
- 1
整理项目结构
- 2
建立 `src/archer_factor_analyzer` package
- 3
配置 `pyproject.toml`
- 4
完成 editable install
- 5
建立 `data` 文件夹
- 6
建立 `graphy` 文件夹
- 7
建立 `test_main` 文件夹
- 8
建立 `data_source` 模块(当前数据接入位于 `data/ricequant_data.py`)
- 9
建立 `backtest` 文件夹
- 10
建立 `signal.py`
- 11
建立 `analyzer.py`(文件存在,总封装未完成)
- 12
建立 `report.py`
- 13
建立 `research` 文件夹
- 14
建立 `result` 文件夹并保存正式结果
- 15
建立 `cache` 文件夹
B单因子分析最小闭环(16—36)
21 / 21 完成
+
单因子分析最小闭环(16—36)
21 / 21 完成
- 16
`winsorize`
- 17
`standardize`
- 18
`apply_each_day`
- 19
`calculate_return`
- 20
`calculate_future_return`
- 21
`calculate_cumulative_return`
- 22
`calculate_momentum_factor`
- 23
`align_factor_and_return`
- 24
`calculate_ic`
- 25
`calculate_rank_ic`
- 26
`assign_quant_group`
- 27
`calculate_group_return`
- 28
`calculate_long_short_return`
- 29
`plot_rank_ic`
- 30
`plot_long_short_cumulative_return`
- 31
完成第一个正式动量因子研究脚本
- 32
跑出 IC mean
- 33
跑出 Rank IC mean
- 34
跑出 Rank ICIR
- 35
跑出 Q1—Q5 分组平均收益
- 36
跑出 Q5−Q1 多空累计收益图
C基础指标增强(37—45)
7 / 9 完成
+
基础指标增强(37—45)
7 / 9 完成
- 37
`calculate_icir`
- 38
`calculate_sharpe`
- 39
`calculate_drawdown`
- 40
`calculate_max_drawdown`(接口存在,返回值仍需修正)
- 41
`calculate_annual_return`
- 42
`calculate_annual_volatility`
- 43
`calculate_win_rate`
- 44
`calculate_summary_metrics`(接口存在,受 Max Drawdown 返回问题影响)
- 45
使用 momentum long-short 测试 summary metrics
DRiceQuant / rqdatac 数据接入(46—72)
12 / 27 完成
+
RiceQuant / rqdatac 数据接入(46—72)
12 / 27 完成
- 46
确认 `rqdatac` 可以 import
- 47
确认 `rqsdk` 可以 import
- 48
建立 data source 初始化结构
- 49
建立 RiceQuant 数据模块
- 50
初始化 RiceQuant(当前依赖环境配置自动初始化)
- 51
获取指数成分股功能
- 52
获取价格数据功能(当前为 `get_stock_bars`)
- 53
获取行业数据
- 54
获取市值数据
- 55
数据模块保存缓存
- 56
数据模块读取缓存
- 57
拉取沪深 300 成分股
- 58
拉取沪深 300 三年日 K
- 59
整理成 `price_df`
- 60
验证 `price_df` 格式
- 61
拉取中证 500 成分股
- 62
拉取中证 500 三年日 K
- 63
整理中证 500 `price_df`
- 64
拉取行业分类
- 65
拉取市值
- 66
检查日期范围
- 67
检查股票数量
- 68
检查缺失值比例
- 69
检查整列全空股票
- 70
保存 `price_df` 到 cache
- 71
保存 `industry_df`
- 72
保存 `market_cap_df`
E用 RiceQuant 真实数据重跑正式因子(73—88)
12 / 16 完成
+
用 RiceQuant 真实数据重跑正式因子(73—88)
12 / 16 完成
- 73
建立真实数据动量研究入口(当前功能合并在正式研究脚本)
- 74
使用 RiceQuant 行情数据
- 75
计算 momentum 20 日因子
- 76
计算未来 5 日收益
- 77
去极值
- 78
标准化
- 79
输出真实数据 IC mean
- 80
输出真实数据 Rank IC mean
- 81
输出真实数据 ICIR
- 82
输出真实数据 Rank ICIR
- 83
输出 Q1—Q5 分组收益
- 84
输出 Q5−Q1 多空收益
- 85
输出 summary metrics
- 86
保存 Rank IC 图
- 87
保存 Q5−Q1 累计收益图
- 88
保存正式因子分析结果
F信号生成模块(89—107)
10 / 19 完成
+
信号生成模块(89—107)
10 / 19 完成
- 89
建立 `signal.py`
- 90
`generate_top_n_signal`
- 91
`generate_top_pct_signal`(功能包含在权重生成器中)
- 92
`generate_quantile_signal`
- 93
`generate_long_only_signal`(当前 Top 20% 权重为 long-only)
- 94
`generate_long_short_signal`
- 95
等权功能
- 96
因子值加权
- 97
生成 `weight_df`
- 98
每日调仓
- 99
5 日调仓
- 100
20 日调仓
- 101
生成第一个正式动量目标组合
- 102
单独的 `signal_df` 格式验证
- 103
`weight_df` 格式验证
- 104
调仓日权重和验证
- 105
非调仓日目标延续验证
- 106
未来数据检查与执行延迟
- 107
保存 `weight_df`
G本地 RQAlpha 回测模块(108—130)
23 / 23 完成
+
本地 RQAlpha 回测模块(108—130)
23 / 23 完成
- 108
建立 backtest package
- 109
建立正式 RQAlpha 回测流程(当前拆分为 runner + executor)
- 110
配置本地 RQAlpha
- 111
配置 bundle
- 112
确认本地运行
- 113
确认读取 A 股数据
- 114
设置 start date
- 115
设置 end date
- 116
设置 benchmark
- 117
设置 initial cash
- 118
设置 commission
- 119
设置 slippage
- 120
读取 `weight_df`
- 121
`init(context)` 初始化
- 122
`handle_bar()` 判断新目标
- 123
读取当日目标权重
- 124
执行目标组合(已升级为 smart portfolio + retry)
- 125
跑通第一个本地 RQAlpha 回测
- 126
提取 portfolio value
- 127
提取 daily return(可由 `portfolio.csv` 净值计算)
- 128
提取 positions
- 129
提取 trades
- 130
保存正式回测结果
H回测结果分析(131—148)
7 / 18 完成
+
回测结果分析(131—148)
7 / 18 完成
- 131
读取 RQAlpha daily return
- 132
读取 portfolio value / NAV
- 133
用自定义 summary metrics 分析回测日收益
- 134
用自定义 drawdown 分析 NAV
- 135
用自定义 max drawdown 分析 NAV
- 136
用自定义 Sharpe 分析 daily return
- 137
用自定义 annual return 分析 daily return
- 138
用自定义 annual volatility 分析 daily return
- 139
用自定义 win rate 分析 daily return
- 140
输出 Annual Return(RQAlpha summary)
- 141
输出 Annual Volatility(RQAlpha summary)
- 142
输出 Sharpe(RQAlpha summary)
- 143
输出 Max Drawdown(RQAlpha summary)
- 144
输出 Win Rate(RQAlpha summary)
- 145
输出 Final NAV / total value(RQAlpha summary)
- 146
保存回测摘要(当前文件名为 `summary.csv`)
- 147
保存回测净值(包含在 `portfolio.csv`)
- 148
保存回测日收益(可由 `portfolio.csv` 计算,尚未拆分独立文件)
I交易成本与换手率(149—158)
0 / 10 完成
+
交易成本与换手率(149—158)
0 / 10 完成
- 149
自定义 `calculate_turnover`
- 150
自定义 `calculate_average_turnover`
- 151
自定义 `calculate_daily_turnover`
- 152
自定义 `plot_turnover`
- 153
momentum 每日换手率(RQAlpha 已返回 avg daily turnover)
- 154
momentum 平均换手率(RQAlpha 已返回 turnover 指标)
- 155
比较 1/5/20 日调仓换手率
- 156
比较不同手续费假设
- 157
比较不同滑点假设
- 158
成本敏感性结论
J图表系统(159—172)
2 / 14 完成
+
图表系统(159—172)
2 / 14 完成
- 159
`plot_rank_ic`
- 160
`plot_long_short_cumulative_return`
- 161
`plot_drawdown`
- 162
`plot_factor_distribution`
- 163
`plot_ic_distribution`
- 164
`plot_group_mean_return`
- 165
`plot_group_cumulative_return`
- 166
`plot_turnover`
- 167
`plot_backtest_nav`(RQAlpha 默认图可用,自定义图未完成)
- 168
`plot_backtest_drawdown`(RQAlpha 默认图可用,自定义图未完成)
- 169
`plot_factor_comparison`
- 170
多因子 Rank IC 图
- 171
多因子累计收益图
- 172
所有图片自动保存到 `graphy`
KAnalyzer 总封装(173—188)
0 / 16 完成
+
Analyzer 总封装(173—188)
0 / 16 完成
- 173
建立 `analyzer.py`(文件存在,总封装未完成)
- 174
`analyze_single_factor`
- 175
自动 winsorize
- 176
自动 standardize
- 177
自动 future return
- 178
自动 IC
- 179
自动 Rank IC
- 180
自动 ICIR
- 181
自动 Rank ICIR
- 182
自动 group return
- 183
自动 long-short return
- 184
自动 summary metrics
- 185
自动画图
- 186
自动保存图
- 187
自动返回 result
- 188
自动打印 summary
L多因子扩展与比较(189—206)
0 / 18 完成
+
多因子扩展与比较(189—206)
0 / 18 完成
- 189
reversal factor
- 190
volatility factor
- 191
low-volatility factor
- 192
quality momentum factor
- 193
volume momentum factor
- 194
moving-average factor
- 195
breakout factor
- 196
`analyze_multiple_factors`
- 197
自动循环多个 factor
- 198
比较 IC mean
- 199
比较 Rank IC mean
- 200
比较 ICIR
- 201
比较 Rank ICIR
- 202
比较 Sharpe
- 203
比较 Max Drawdown
- 204
factor comparison table
- 205
多因子 Rank IC 对比图
- 206
多因子累计收益对比图
MBacktest 总封装(207—220)
2 / 14 完成
+
Backtest 总封装(207—220)
2 / 14 完成
- 207
`run_rqalpha_backtest`(当前有正式 runner,但未封装成可复用函数)
- 208
传入 `weight_df` 路径
- 209
传入 start/end date
- 210
传入 initial cash
- 211
传入 benchmark
- 212
传入 commission
- 213
传入 slippage
- 214
自动运行 RQAlpha
- 215
自动提取 NAV
- 216
自动提取 daily return
- 217
自动提取 positions
- 218
自动提取 trades
- 219
获得 RQAlpha summary
- 220
自动保存 backtest result
NReport 自动报告系统(221—230)
0 / 10 完成
+
Report 自动报告系统(221—230)
0 / 10 完成
- 221
建立 `report.py`
- 222
`generate_factor_report`
- 223
`generate_backtest_report`
- 224
保存 factor summary
- 225
保存 backtest summary
- 226
保存 factor comparison table
- 227
保存图片路径
- 228
自动输出 Markdown
- 229
自动输出 CSV
- 230
自动输出 PNG
O完整主脚本(231—247)
0 / 17 完成
+
完整主脚本(231—247)
0 / 17 完成
- 231
建立 `run_full_research.py`
- 232
初始化 RiceQuant
- 233
获取股票池
- 234
获取价格数据
- 235
获取行业数据
- 236
获取市值数据
- 237
计算 momentum factor
- 238
调用 single-factor analyzer
- 239
生成 signal
- 240
生成 weight
- 241
调用本地 RQAlpha
- 242
提取回测结果
- 243
计算回测 summary
- 244
画净值曲线
- 245
画回撤曲线
- 246
保存完整结果
- 247
生成完整报告
P最终系统能力(248—258)
7 / 11 完成
+
最终系统能力(248—258)
7 / 11 完成
- 248
支持本地 CSV 数据分析
- 249
支持 RiceQuant 数据分析
- 250
支持单因子分析
- 251
支持多因子比较
- 252
支持生成 long-only 目标信号
- 253
支持生成 `weight_df`
- 254
支持本地 RQAlpha 回测
- 255
支持手续费和滑点
- 256
支持换手率分析(RQAlpha 指标可用,自定义模块未完成)
- 257
支持自动画图(部分图可用,统一保存未完成)
- 258
支持自动输出完整报告
Q历史时点动态股票池(259—276)
15 / 18 完成
+
历史时点动态股票池(259—276)
15 / 18 完成
- 259
建立 20 年历史交易日历(4,860 日)
- 260
下载历史时点沪深 300 成分
- 261
验证每日成分数量(298—300)
- 262
整理 1,457,940 条历史成分记录
- 263
汇总 904 只历史股票
- 264
建立分批下载和断点续传
- 265
下载 19 个价格批次
- 266
保存前复权 OHLCV 和成交额
- 267
建立历史成分 `member_mask`
- 268
建立全天停牌 `suspended_mask`
- 269
建立历史 ST `st_mask`
- 270
下载并验证证券上市信息
- 271
建立上市满 60 个交易日 `listing_age_mask`
- 272
建立最终 `eligible_mask`
- 273
记录并排除 2026-08-04 未完整行情边界
- 274
把 `eligible_mask` 接入正式因子研究
- 275
生成动态股票池 `weight_df`
- 276
运行动态股票池回测并与固定股票池比较
R学习报告与展示网站(277—286)
7 / 10 完成
+
学习报告与展示网站(277—286)
7 / 10 完成
- 277
建立独立 `website/` 展示项目
- 278
展示研究流程和版本时间线
- 279
展示真实回测指标与净值图
- 280
展示动态股票池数据规模与资格规则
- 281
展示真实代码片段和目录讲解
- 282
建立中英文 `v0.2.0-dev` 更新报告
- 283
中英文 README 同步当前状态
- 284
自动把新研究结果生成网页条目
- 285
自动生成 Markdown 研究报告
- 286
评审后发布个人项目网站