336bceef92
docs: 基于动量因子的跨市场ETF轮动策略系统性文献综述
...
文献综述内容:
- 学术定位:资产定价、资产配置、量化投资、行为金融学、组合管理五大交叉领域
- 理论基础:Jegadeesh-Titman(1993)动量效应发现 + Barberis等(1998)行为金融解释
- 经典文献:截面动量、时间序列动量(Moskowitz 2012)、跨资产动量普遍性(Asness 2013)
- 实证证据:动量效应在股票/债券/商品/外汇等所有资产类别中显著
- 分散化依据:Markowitz(1952) MPT理论,跨大类资产低相关性降低组合波动
- 崩盘风险:Barroso-Santa-Clara(2015)动量崩盘现象与风险管理方法
- 待解决问题:动量起源之谜、因子标准化、动态窗口机制、因子衰减
- 中国A股:短期动量(1-3月)有效、行业轮动频繁、残差动量2024年表现优越
参考文献:
- 10篇经典学术论文(Jegadeesh-Titman, Moskowitz, Asness, Barberis等)
- 业界策略报告(AQR, QuantPedia, Robeco)
- 券商金工研报(华泰、东方、招商)
附录:动量因子公式对比 + 本策略V2配置摘要
2026-04-30 14:27:23 +08:00
48ff15d92a
docs: 新增轮动策略核心逻辑V2文档
...
V2相对于V1的核心升级:
- 候选池: 22只(以A股行业为主) → 11只(全球7大类精选)
- 因子类型: slope_r2(等权回归) → weighted_momentum(加权回归,近期权重2.0)
- 选股模式: 纯Top5 → 跨大类分散化(每大类Top1→全局Top3,等权33%)
- 崩盘过滤: 无 → 有(连续3天跌>5%得分清零)
- 商品信号源: 指数价格 → 期货价格(AU.SHF/CL.NYM/CU.SHF)
- 加密货币: 保留 → 移除(全部使用A股场内ETF交易)
V2实证数据(2019-02~2026-04):
累计收益1473%, CAGR 46.42%, Sharpe 2.22, MaxDD -17.33%, Calmar 2.68
diversified=true全面优于false(2022年差异+17.63%)
文档包含完整配置清单、因子计算公式、分散化选股机制、
调仓控制逻辑、溢价率控制、跨市场数据对齐方案、V1 vs V2对比表
2026-04-30 13:49:42 +08:00
5cf5bfc7d6
chore: 清理根目录已迁移到docs/的旧md文件
2026-04-30 13:41:13 +08:00
d0a9d66a11
feat(config): 添加CU.SHF有色金属期货信号源,移除冗余上证红利
...
讨论背景:
- 159980.SZ(有色ETF)是商品型基金,跟踪上期所有色金属期货价格指数
- 应使用期货价格(CU.SHF沪铜)作为信号源,与黄金(AU.SHF)/原油(CL.NYM)保持一致
- 上证红利(000015.SH)与中证红利低波(H30269.CSI)高度相关,同属A股大类
在diversified模式下只能选1个,保留两个无实际意义
配置变更:
- rotation.yaml: 新增CU.SHF→159980.SZ映射(market=COMMODITY)
- rotation.yaml: 移除000015.SH上证红利(与红利低波冗余)
- hybrid_source.py: FUTURES_CODE_MAP新增CU.SHF铜期货
- ab_test_iterations.py: 同步更新有色market为COMMODITY
实证结果 - CU.SHF加入前后对比(11只池,2019-2026):
无CU(11只): CAGR=47.37%, Sharpe=2.25, MaxDD=-17.86%, Calmar=2.65
含CU(12只): CAGR=46.16%, Sharpe=2.21, MaxDD=-17.86%, Calmar=2.58
影响: CAGR-1.2%, 商品大类内部竞争加剧(黄金/原油/有色三选一)
2020/2022铜价暴涨时有色贡献额外收益,整体影响很小
实证结果 - 移除上证红利后(11只,2019-2026):
含上证红利: CAGR=46.16%, Sharpe=2.21, MaxDD=-17.86%, Calmar=2.58
移除后: CAGR=46.42%, Sharpe=2.22, MaxDD=-17.33%, Calmar=2.68
所有指标均改善,消除冗余标的提升选择效率
实证结果 - diversified=true vs false(11只,select_num=3):
true(跨类分散): CAGR=46.45%, Sharpe=2.22, MaxDD=-17.33%, Calmar=2.68
false(纯Top3): CAGR=44.19%, Sharpe=2.13, MaxDD=-18.12%, Calmar=2.44
关键差异在2022年(+17.63%): false模式选3只商品同时回调
结论: diversified=true全面优于false,保持当前配置
最终候选池(11只,7大类):
A股: 创业板(399006.SZ), 红利低波(H30269.CSI)
美股: 纳指100(NDX) | 日本: 日经225(N225) | 欧洲: 德国DAX(GDAXI)
港股: 恒生指数(HSI), 恒生科技(HSTECH.HK)
商品: 黄金(AU.SHF), 原油(CL.NYM), 有色金属(CU.SHF)
固收: 30年国债(931862.CSI)
2026-04-30 13:37:46 +08:00
4df3ac4e31
chore(docs): reorganize documentation files into docs/ folder
...
Moved markdown documentation from root to docs/ directory to improve project structure.
2026-04-30 01:06:25 +08:00
c1fbd2c7db
feat(strategy): finalize global rotation system with advanced risk controls
...
Summary of updates:
1. Core Logic (engine.py): Added 'score > 0' filtering to support automatic cash positions during market downturns.
2. Experimental Analysis: Added scripts/analyze_negative_scores.py, scripts/test_select_num.py, and scripts/ab_test_iterations.py.
3. Documentation: Created docs/strategy_evolution_report.md detailing the evolution from benchmark to the final 47% CAGR version.
4. Configuration: Finalized rotation.yaml with 11 core assets and optimal risk parameters.
2026-04-30 00:56:20 +08:00
e946dbe804
docs(experiment): add experimental backtest script and pool analysis
...
实验与分析文档补充:
1. 脚本: scripts/full_pool_top3_backtest.py
- 用于快速测试不同标的池组合的脚本。
- 支持跨大类 Top 1 逻辑的独立验证。
2. 文档: data_logic_analysis.md
- 记录了从 43 只全市场池精简到 11 只核心池的逻辑推演。
- 详细对比了“相关性管理”对回撤的影响数据。
2026-04-30 00:15:21 +08:00
63a100cef0
feat(config): finalize 11-asset global pool with cross-market diversification
...
标的池优化与分散化配置更新:
1. 最终标的池确立 (11 只):
- 精选 9 只原始核心标的 + 恒生科技 + 恒生指数。
- 相比全市场 43 只池子,精简后的池子大幅减少了 A 股细分行业的噪声干扰。
2. 关键参数调整:
- 开启 'diversified: true':强制跨大类(美股、港股、A股、商品、固收)选择 Top 1 标的。
- 启用 'weighted_momentum' 因子与 'auto_day' 动态周期。
- 放宽溢价率阈值至 10%,以适应跨境资产的高溢价常态。
回测影响分析:
- 引入恒生双指后,2022年回撤得到显著对冲(22.6% 正收益)。
- 跨大类分散化逻辑将最大回撤从 43 只池子时的 -33% 压缩至 -14.5%。
- 该配置在保持 20%+ 稳健年化的同时,提供了 1.5 以上的顶级夏普比率。
2026-04-30 00:14:55 +08:00
48cd6dd524
docs(analysis): ETF轮动策略深度分析报告
...
包含:
- 收益归因分析: 高收益来源拆解、持仓分布、事件日历
- 选池偏差实验: 原始4只 vs 扩展9只 vs 反面池对比
- 后视镜偏差量化: 选池偏差仅贡献5-7% CAGR
- A股可交易全球资产完整候选池: 44个方向/5大类
- 关键结论: ETF价格优先于指数、未来预期CAGR区间
2026-04-29 22:51:15 +08:00
eb6a07548c
feat(全球市场): 迁移聚宽策略为Tushare独立回测版本
...
从聚宽平台迁移全球市场ETF轮动策略,复用动量.py核心模块。ETF池: 纳指100/日经225/德国DAX/黄金/有色金属/南方原油/30年国债/红利低波/创业板。回测(2019~2026): CAGR=44.29%, Sharpe=1.50, MaxDD=-16.93%, Calmar=2.62, 盈利年份8/8, 跑赢基准7/8
2026-04-29 22:20:13 +08:00
2829f80427
feat(backtest): 消除前视偏差,实现动态ETF池重建
...
消除回测前视偏差(Look-Ahead Bias):
- 新增 ETFDataCache 本地缓存系统,预下载全量ETF(含已退市)基础信息和日线数据
- 改造 ETFUniverseBuilder 支持纯历史模式,每个时间点只使用当时可获得的数据
- 动量.py 新增 dynamic 模式,回测中每60交易日动态重建ETF候选池
- momentum_experiment.py 同步支持动态重建
- 新增 ETF筛选引擎文档和动态池方案文档
无前视偏差实验结果(6组对比,2015-2026):
A: 全仓1只 CAGR=3.32%, MaxDD=-63.19%, Sharpe=0.26
B: 等权3只 CAGR=3.40%, MaxDD=-49.72%, Sharpe=0.30 ← 最优
C: 反波动率3只 CAGR=1.73%, MaxDD=-38.59%, Sharpe=0.21
D: 等权5只 CAGR=2.77%, MaxDD=-42.39%, Sharpe=0.29
E: 反波动率5只 CAGR=-0.37%, MaxDD=-19.56%, Sharpe=-0.03
F: 动量>0全选等权 CAGR=2.02%, MaxDD=-43.27%, Sharpe=0.24
最优方案: B(等权3只)夏普、Calmar、CAGR三项均最高
2026-04-29 22:15:01 +08:00
e301a08724
注释加密货币(BTC/ETH)并新增回测数据导出脚本
...
变更内容:
- rotation.yaml: 注释掉BTC和ETH加密货币配置,候选池从22只缩减为20只
- 新增 scripts/export_rotation_data.py: 导出回测原始数据到本地文件夹
回测结果 (2020-02-14 ~ 2026-04-28, 20只标的, 无加密货币):
- 累计收益: 171.36% (基准沪深300: 20.16%)
- CAGR(年化): 17.48% (基准: 2.89%)
- 年化夏普比率: 0.90 (基准: 0.26)
- 最大回撤: -30.85% (基准: -45.60%)
- Calmar比率: 0.57
- 日胜率: 52.49%
- 调仓次数: 478次 (年均80次, 平均持仓3.1天)
2026-04-28 20:28:35 +08:00
4a500ca5bf
feat(notify): 支持钉钉多群推送 & 添加轮动策略核心逻辑文档
...
- settings.py: 新增 get_all_dingtalk_configs() 自动扫描所有钉钉群配置
- notify.py: 新增 send_to_all_groups() 多群推送函数
- daily_scheduler.py: 报告和错误通知改用多群推送
- .env: 添加第二个钉钉群配置 (DINGTALK_WEBHOOK_2/SECRET_2)
- 轮动策略核心逻辑.md: 策略核心逻辑总结文档
2026-04-23 22:58:16 +08:00
3cca4d79c4
chore: 忽略知乎文章下载目录 zhihu-articles/
2026-04-09 11:45:40 +08:00
3530e05875
docs: 新增动量时间窗口选择调研报告
...
- 综合 arXiv 学术论文与 A 股实证研究,分析最优动量窗口
- 核心发现:25日窗口偏短,最优区间为60-240日
- 动态窗口选择(DMS)可提升Sharpe 52%,回撤减半
- 提供三阶段优化方案:多窗口等权 → 动态选择 → 经济周期自适应
2026-04-09 11:27:24 +08:00
9096d933a3
refactor(config): 更新创业板指中的红利ETF配置
...
- 将中证红利(000922.CSI)替换为上证红利(000015.SH)
- 更新对应的ETF代码为510880.SH,注释同步调整
- 保持市场标识为"A"不变
2026-03-27 22:46:01 +08:00
e7dca3fec8
fix(core): 修正中国A股指数判断逻辑及更新指数配置
...
- 在中国A股指数判断中增加对中证指数(.CSI)的支持
- 替换创业板指配置中的红利指数代码和对应ETF信息
- 更新中证银行ETF代码为最新的华宝银行ETF编码
2026-03-27 22:37:41 +08:00
70bb69fd98
fix(core): 修复计算与数据对齐等多处逻辑问题
...
- 修正CAGR计算,去除NaN并检查起始值有效性以避免异常结果
- 优化混合数据源的数据对齐逻辑,使用配置结束日期与A股最新数据日期的较早者
- 计算因子时对齐A股交易日历,重新基于对齐价格计算日收益率,改进因子对齐准确度
- 轮动策略中跳过空信号,避免空信号影响持仓和调仓逻辑
- 调整信号处理,过滤空字符串和NaN,保证轮动信号数据有效性
- 多品种轮动持仓中加入空信号判断,避免无效信号导致错误
- 调整调仓明细和品种汇总保存逻辑,增加空文件创建以保证输出路径文件稳定生成
- 完善多处打印信息和注释,增强代码可读性与调试便利性
2026-03-26 22:21:38 +08:00
2faea1517f
chore(deps): 更新HTTP请求相关依赖
...
- 在requests依赖中添加对socks的支持
- 新增pysocks依赖以支持socks代理
- 保持了requests和urllib3的最低版本要求不变
2026-03-26 22:21:15 +08:00
57939ce677
fix(rotation): 修正报告图表操作列的索引错误
...
- 将操作列索引从第8列调整为第11列(索引10)
- 保持不同操作对应的行背景色不变
- 修复因操作列索引错误导致的行着色问题
2026-03-26 21:23:55 +08:00
4b8e1dbec6
fix(build): 修复基础镜像存在性检查及构建逻辑
...
- 使用docker images --format精确匹配镜像名称和标签
- 修正基础镜像检查条件,确保检测index-base:latest
- 添加未找到Dockerfile_base时的脚本退出逻辑
- 优化基础镜像构建流程提示信息
2026-03-26 21:23:21 +08:00
091ee05e58
chore(docker): 优化Dockerfile_base镜像构建配置
...
- 更换阿里云镜像源提升apt-get安装速度
- 新增openssh-client和autossh系统依赖
- 所有apt-get操作后统一清理缓存
- Playwright依赖安装使用阿里云源镜像
- 安装中文字体时允许失败不影响构建
- 保持时区配置为Asia/Shanghai
- 安装Playwright chromium浏览器版本一致
2026-03-26 21:21:59 +08:00
49acca7414
chore(deps): 添加ccxt依赖
...
- 在requirements.txt中增加ccxt库,版本不低于4.0.0
- 保持其它依赖项版本不变
- 支持后续集成加密货币交易相关功能
2026-03-26 19:01:58 +08:00
b7bf8c1eb4
fix(report): 修正溢价率计算逻辑为使用ETF收盘价替代净值
...
- 修改生成性能报告时溢价率计算逻辑,改用信号日期的ETF收盘价
- 溢价率仅在当天净值数据存在时计算,避免使用前一日数据
- 更新打印最新调仓信号函数,支持显示ETF收盘价而非净值
- 修改报告图表部分,显示ETF收盘价和对应溢价率
- 优化时间基准日期计算,使用信号日期或前一交易日作为数据基准
- 保持对跨市场ETF映射的兼容性和显示一致性
2026-03-26 01:27:04 +08:00
5f4470d53e
fix(datasource): 修正数据日期对齐与复权问题
...
- 修改yfinance获取历史数据时end_date加一天,auto_adjust设置为False,以获取不复权价格
- 调整ETF净值数据获取时end_date加一天,解决净值数据滞后问题
- 数据对齐策略改为以A股最新数据日期为基准,调整交易日历范围
- 移除对非A股数据的前向/后向填充,保持原始价格数据不填充
- ETF净值数据重新索引到A股交易日但不做缺失值填充,保持NaN以表示无数据
- 增加打印输出辅助调试数据日期及交易日信息
2026-03-26 01:26:43 +08:00
ec9c808e6c
refactor(momentum): 优化因子计算流程并对齐A股交易日历
...
- 添加辅助函数判断是否为A股指数
- 调整compute_factors函数结构,分别计算每个标的技术指标
- 严格实现T+1规则,确保信号只用T日及以前数据
- 对齐所有数据到A股交易日历,使用前向填充避免未来数据泄漏
- 增加有效代码有效性检查,剔除数据不足或缺失率过高的标的
- 完善函数注释,明确输入输出及核心逻辑说明
- 优化打印信息,清晰展示因子类型、窗口、有效标的及时间范围
2026-03-26 01:26:14 +08:00
e4f87b7212
feat(tests): 添加多个数据获取脚本测试示例
...
- 新增获取3033.HK复权与不复权价格对比脚本,支持代理配置
- 新增使用Tushare获取AU9999黄金现货数据脚本,支持日期范围查询和CSV保存
- 新增从OKX通过CCXT库获取BTC/USDT日线数据脚本,支持HTTP代理和时间范围过滤
- 所有脚本均包含打印数据显示的格式化输出
- 各脚本提供主函数入口,易于独立运行和调试
2026-03-26 00:08:01 +08:00
e4a5845916
feat(datasource): 添加期货数据支持及优化数据对齐逻辑
...
- 新增期货代码映射及判断函数,支持上海期货交易所黄金主力合约
- 实现通过Tushare接口获取期货日线数据,包含夜盘数据处理
- fetch_single方法新增期货数据的调用逻辑
- 细化标的分类,将期货单独列出用于数据处理和日志输出
- 强制从Tushare获取A股交易日历,确保数据对齐的准确性
- 优化各类标的对齐逻辑,区别处理港股美股、加密货币与期货的前后向填充
- 统一ETF和基准数据对齐到A股交易日,改进数据一致性和完整性
2026-03-26 00:06:26 +08:00
2dde3c89c5
fix(config): 修正市场代码及市场类型定义
...
- 将恒生科技市场代码从"HSTECH"改为"HSTECH.HK"
- 更正黄金市场代码从"GC=F"为"AU.SHF"
- 调整黄金市场类型标签,由"COMMODITY"改为"FUTURES"
- 期货合约的交易时间包含夜盘,数据逻辑调整为类似加密货币处理
2026-03-26 00:06:09 +08:00
b7478bf2ef
fix(datasource): 修正非A股指数前向填充逻辑
...
- 将前向填充范围扩大至所有非A股指数
- 说明所有市场(港股、美股、黄金、加密货币)在T+1日09:00前已收盘
- 保障数据针对多市场的时效性和完整性
2026-03-25 22:25:48 +08:00
c196e33648
fix(report): 修复调仓信号报告中ETF代码显示与表格布局
...
- 在调仓信号表格中添加ETF代码列,完善持仓数据展示
- 处理ETF代码缺失情况,显示为“直接交易”
- 调整表格列宽,优化整体排版宽度
- 完善调入和调出持仓部分的ETF信息获取逻辑
2026-03-25 22:16:04 +08:00
e6ddea518c
feat(report): 支持ETF净值和溢价率的绩效报告展示
...
- 在生成绩效报告接口中新增code_config、index_data、etf_price_data和etf_nav_data_raw参数
- 计算溢价率并基于信号前一日数据进行校验和计算
- 打印最新调仓信号时增加ETF代码、ETF净值、溢价率及高溢价警告显示
- 调整信号数据基准日期展示,更准确反映信号计算依据
- 报告图表支持显示ETF净值和溢价率列,完善调仓信息视觉效果
- 统一处理跨市场ETF映射和特殊市场(如加密货币)情况,避免溢价率误报
- 完善打印表格和图表的列宽和格式,增强可读性
2026-03-25 22:02:05 +08:00
ec749314bc
feat(data-source): 支持指数-ETF双轨数据获取及因子计算
...
- 新增使用Tushare获取A股ETF价格及净值数据的私有方法
- fetch_all方法支持接收完整代码配置,区分指数与ETF及市场类别
- 指数数据和ETF数据分别下载,ETF净值数据用于溢价率计算
- 采用A股交易日为主交易日历,非A股数据前向填充对齐
- 调整因子计算,支持指数价格计算因子,ETF价格计算收益率
- run_rotation脚本和RotationStrategy引擎适配指数-ETF配置格式
- 代码结构优化,增强多市场及加密货币处理能力
2026-03-25 22:01:44 +08:00
e6898a851c
feat(config): 优化ETF轮动策略配置
...
- 将候选池指数列表升级为包含名称、对应ETF代码及市场的详细映射结构
- 支持多市场ETF映射,包括A股、港股、美股、商品及加密货币市场
- 新增主市场配置及跨境ETF溢价控制机制,防止高溢价买入
- 溢价控制支持启用开关、不同市场阈值及降权模式
- 明确交易成本、缓存使用及交易日历设置,增强策略灵活性和稳定性
2026-03-25 22:01:22 +08:00
61362b274b
feat(rotation): 实现跨市场ETF映射与溢价控制方案
...
- 重新设计配置文件结构,支持指数到ETF的映射关系及市场类型区分
- 新增ETF数据获取模块,从Tushare获取A股ETF行情及净值
- 修改因子计算逻辑,基于指数数据计算因子,使用ETF数据计算收益率
- 重构轮动引擎,支持同时处理指数与ETF数据,动态检查ETF可用性
- 增加跨境ETF溢价控制机制,基于实时及历史溢价率过滤或降权持仓标的
- 持仓和报告模块显示ETF代码及跨境溢价率信息,提升实际操作参考价值
- 更新配置解析,构建代码-名称、代码-ETF和代码-市场映射关系
- 采用A股交易日历对齐多市场数据,确保因子计算和信号生成时序准确
- 详细设计溢价率计算与信号调整策略,解决跨境市场时差及数据可用性问题
- 明确加密货币数据处理方案及休市期间数据填充策略,保证逻辑一致性与安全性
2026-03-25 22:01:07 +08:00
6454e6823f
fix(datasource): 修正混合数据源导入路径错误
...
- 修正 strategies.rotation.engine 中 hybrid_source 模块导入路径错误
- 新增 core.datasource 目录下多个数据源实现模块
- 增加 Akshare 数据源支持 A股指数数据拉取
- 实现数据缓存管理机制,支持本地数据缓存读写
- 新增 YFinance 数据源,支持通过 SSH 隧道访问美股和港股数据
- 实现混合数据源支持 A股/Tushare、港美股/YFinance、加密货币/CCXT 的统一访问
- 集成 SSH 隧道管理,支持 SOCKS5 转 HTTP 代理转发
- 新增 socks2http.py 代理转发工具,解决 CCXT 仅支持 HTTP 代理问题
- 修改 rotation.yaml 加密货币注释,明确使用 OKX 现货和 SSH->HTTP 代理访问
- 删除.gitignore中无用的 data/ 忽略规则,保留 test/ 文件夹忽略规则
2026-03-25 01:32:33 +08:00
c104fca693
refactor(docker): 移除Dockerfile中中文字体安装步骤
...
- 删除了fonts-wqy-zenhei字体的安装命令
- 精简了Dockerfile,减少了镜像体积
- 移除了无用的缓存清理命令相关代码
- 保持工作目录和依赖复制指令不变
2026-03-24 23:15:08 +08:00
89b7aa1f2c
chore(config): 添加黄金期货数据配置
...
- 在rotation策略配置中新增COMEX黄金期货代码"GC=F"
- 为黄金期货配置了对应的中文名称和注释
- 保持其他市场指数的结构和注释一致
2026-03-24 00:41:13 +08:00
e26db9767f
fix(docker): 优化中文字体安装及清理缓存
...
- 将中文字体从 wqy-microhei 改为 wqy-zenhei,提高字体兼容性
- 清理 matplotlib 缓存文件,减少镜像体积
- 更新报告图表中文字体设置,兼容 macOS 和 Linux
- 简化字体配置,避免多余字体加载
2026-03-24 00:41:03 +08:00
f6bead3c0f
chore(config): 添加项目环境变量配置文件
...
- 新增 .env 文件,包含 Tushare API、钉钉机器人、数据库和阿里云 OSS 的配置
- 修改 .gitignore,取消对 .env 文件的忽略,确保环境变量文件纳入版本管理
- 更新 .gitignore 注释,使文件规则更明确和易读
2026-03-20 19:01:44 +08:00
029b5e7f60
style(rotation): 优化报告图表字体设置
...
- 英文字体改为 DejaVu Sans,中文字体设置为文泉驿微米黑和文泉驿正黑
- 取消原有的 Times New Roman 字体设置,避免中文显示问题
- 保持负号正常显示,优化图表整体字体效果
2026-03-20 19:00:35 +08:00
ac00d29b69
docs(readme): 添加ETF轮动策略系统详细说明文档
...
- 增加系统整体架构设计图示,涵盖应用层、策略层、核心层及基础设施层
- 详细描述多市场数据支持,涵盖A股、港股、美股及加密货币数据源
- 介绍混合数据源配置示例,支持SSH隧道代理功能
- 说明定时调度系统的本地及Docker运行方法
- 详细描述自动报告通知功能,包括图表、信号及钉钉推送支持
- 列出项目结构目录及核心文件说明
- 提供快速开始指南,包括环境配置、本地运行及Docker部署步骤
- 附加策略配置rotation.yaml示例及技术栈说明
2026-03-19 23:13:38 +08:00
7cb89fa0e1
refactor(report): 优化报告中的字体和表头文本
...
- 将报告中表头 “品种名称” 修改为更精准的 “标的名称”
- 将报告图表的中文字体设置改为使用 Times New Roman 以统一字体样式
- 更新表格列标签中的对应文本,保持一致性
- 清理旧的字体配置,简化字体设置逻辑
2026-03-19 23:05:49 +08:00
d500090305
fix(scripts): 修正日报发送标题及文本内容
...
- 将发送图文消息的标题由“ETF轮动策略日报”改为“ETF轮动策略调仓日报”
- 调整发送图文消息中文本内容,去除默认提示
- 发送报告时不再传递固定摘要文本,改为传空字符串
- 修复了每日任务中报告发送的文本逻辑问题
2026-03-19 22:59:38 +08:00
144d66f9a3
fix(config): 修正加密货币名称为中文
...
- 将BTC对应名称由"BTC"修改为"比特币"
- 将ETH对应名称由"ETH"修改为"以太坊"
- 保持其他市场指数配置不变
2026-03-19 22:55:44 +08:00
fb2f814111
feat(docker): 优化镜像支持中文字体及调度运行模式
...
- 基础镜像中添加多款中文字体,支持中文显示
- 主镜像安装中文字体并设置上海时区环境变量
- Dockerfile中创建日志目录并修改默认启动命令为定时调用调度器脚本
- 构建脚本支持动态镜像名,自动构建基础镜像,完善运行容器示例
- docker-compose修改为仅启动调度器服务,挂载相关配置、密钥、数据和日志目录
- 依赖更新,丰富金融数据、技术分析、绘图、机器学习及环境变量支持库
- 调度脚本参数调整,支持立即运行并退出及非后台模式运行切换
- 报告绘图中优先使用基础镜像预装的中文字体配置,提高字体兼容性和显示效果
2026-03-19 22:53:06 +08:00
1b8eba8aff
chore(docker): 允许将 .env 文件打包进镜像
...
- 将 .env 文件从忽略列表中移除
- 注释说明容器化部署需要包含 .env 文件
- 保持 .env.local 及相关文件依旧被忽略
2026-03-19 22:52:21 +08:00
76feec6824
fix(scheduler): 修复格式和代码风格问题,调整默认执行时间
...
- 规范了代码中的字符串引号统一使用双引号
- 调整了部分代码的参数换行和缩进格式
- 在load_dotenv调用中添加了缺失的空行
- 优化了日志打印字符串内引号使用一致性
- 修改主函数默认执行时间由15:30调整为09:00
- 修正字典取值和列表拼接中的引号使用,避免潜在错误
- 规范函数定义参数列表的格式,提高代码可读性
2026-03-19 21:57:24 +08:00
8d24fb91eb
refactor(scheduler): 重构每日任务调度逻辑并优化配置路径
...
- 将等待目标时间逻辑改为基于schedule库的定时任务调度
- 支持后台守护进程模式持续执行定时任务
- 优化命令行参数说明,默认执行时间改为15:30
- 简化立即执行和循环运行的逻辑
- 修改SSH私钥路径为相对于项目根目录
- 更新rotation.yaml配置中指数及加密货币标签说明
- 回测开始日期由2022-01-01调整为2020-01-01
refactor(report): 优化轮动策略绩效报告图表与指标展示
- 新增策略与基准绩效指标对比表格,展示累计收益、年化收益等关键指标
- 调整绩效表布局,增加绩效指标面板高度,保持与信号表格一致视觉
- 丰富绘图函数参数,支持传入绩效指标字典避免重复计算
- 规范调仓信号表操作列索引及样式,保持统一字体大小和行高
- 净值曲线、回撤及持仓分布面板分离,调整图表索引和标题名称
- 优化持仓分布图显示,提升整体报告信息完整性与易读性
2026-03-19 21:56:17 +08:00
32831d7d6d
chore(env): 删除示例环境变量配置文件
...
- 移除了 .env.example 文件及其所有配置内容
- 删除了 Tushare API 的示例令牌配置
- 移除了钉钉机器人的示例 webhook 和 secret 配置
- 删除了 PostgreSQL 数据库的示例连接信息
- 简化项目环境变量管理,避免泄露敏感信息
2026-03-19 21:22:03 +08:00