|
|
2c69c6136a
|
fix(selector): 短债作为动态过滤阈值(修正逻辑)
修正之前的误解,正确实现用户意图:
- 短债正常参与动量排序,没有任何特殊处理
- 短债排名 <= select_num → 短债被选中,比短债弱的标的被排除
- 短债排名 > select_num → 短债被排除(有更好的选择)
- effective_threshold = min(短债排名, select_num)
验证结果:
- 场景1:短债排名3 → 选[NDX, A, 短债],排名>3排除
- 场景2:短债排名2 → 选[NDX, 短债],排名>2排除(只持2只)
- 场景3:短债排名4 → 选Top3正常,短债被排除
|
2026-05-18 22:54:09 +08:00 |
|
|
|
98597aa369
|
feat(selector): 短债作为动态现金底仓
设计理念变更:
- 短债(BOND大类)永远参与持仓,不受排名过滤影响
- 其他大类冠军需要排名 <= select_num才能入选
- 当其他标动量都不强时,仓位自动集中到短债(现金)
- 永远不会真正空仓,短债作为现金底仓始终存在
测试验证:
- 正常情况:[NDX, 399006.SZ, 931862.CSI](2动量强+1现金)
- 极端情况:[931862.CSI](仓位集中到现金)
|
2026-05-18 22:42:08 +08:00 |
|
|
|
740135e5fb
|
feat(selector): 大类冠军动量排名二次过滤
新增过滤逻辑:
- 大类冠军必须在全局排名Top select_num范围内才有效
- 假设短债排名第5,select_num=3,则短债被排除
- 避免持有动量过低(排名靠后)的防御资产
示例:
- NDX (排名1) -> 选中
- 399006.SZ (排名2) -> 选中
- N225 (排名3) -> 选中
- 931862.CSI (排名5 > 3) -> 排除
|
2026-05-18 22:35:41 +08:00 |
|
|
|
a475e1b314
|
feat(strategy): 分组选股增强-大类冠军二次过滤确保组合动量达标
核心改进:
- selectors.py: _grouped_selection增加二次过滤,大类冠军得分不足时跳过该大类
- strategy.py: min_score参数可配置,从策略配置读取
- config.yaml: min_score=0.0(过滤负动量),保留注释说明更高阈值的权衡
设计原则:
- 组合中每个标的动量得分都必须>=min_score
- 大类冠军得分不足时不强制持有,持仓数量动态调整
- min_score=0保持简单稳健,更高阈值虽能改善回撤但可能错过机会
实验验证:
- min_score=0: 累计收益14580%, 最大回撤-61.1%, 空仓131天
- min_score=0.02: 累计收益17052%, 最大回撤-61.0%, 但2000年恶化
- 决策:保持min_score=0,避免阈值选择的trick问题
|
2026-05-16 20:38:57 +08:00 |
|
|
|
acec96539b
|
fix(strategy): 添加负动量空仓机制避免持仓惯性亏损
当所有候选标的动量得分低于min_score时,策略自动清仓而非继续持有之前的负动量组合。
修复问题:
- 旧逻辑:target为空时继续持有current_held(负动量标的)
- 新逻辑:target为空时清仓(current_held='')
回测效果:
- 累计收益从11872%提升至14580%(+2708%)
- 最大回撤从-71.9%改善至-61.1%(+10.9%)
- 2000年互联网泡沫期间空仓77天(24.8%)
- 2001年空仓31天,收益从-48.7%改善至-41.1%
|
2026-05-16 11:42:36 +08:00 |
|
|
|
19131c41dd
|
fix: 数据源路由修复与因子计算改进
1. 修复期货路由逻辑:NYMEX期货(.NYM)走YFinance而非Tushare
2. 添加SSH隧道路径修复(原引擎)
3. 因子计算只使用close列(处理部分指数只有收盘价的情况)
4. 添加数据不足和缺失率剔除日志
收益对比:
- 原引擎(剔除国债): 累计1804%, 调仓459次
- 新框架: 累计772%, 调仓1276次
差异原因待查:
- 国债剔除逻辑不同
- 调仓频率差异
|
2026-05-12 00:47:43 +08:00 |
|
|
|
c5a41b71ae
|
feat(signals): 完善TopNSelector分散化选股和调仓控制
- 支持group_mapping分组映射(替代group_info列)
- 每大类选Top1,然后跨类排序选Top3
- 添加调仓周期控制(rebalance_days)
- 添加调仓阈值检查(rebalance_threshold)
- 支持最小得分过滤(min_score过滤负分)
|
2026-05-11 23:23:37 +08:00 |
|
|
|
69081297c5
|
feat(strategies): 实现定制组件(因子、信号生成器、风控)
- strategies/shared/factors/momentum.py: MomentumFactor/TrendFactor/ReversalFactor/VolatilityFactor
- strategies/shared/signals/selectors.py: TopNSelector/TrendFollower/ReversalTrader
- strategies/shared/risk/controls.py: StopLossControl/PositionLimitControl/PremiumControl
- strategies/shared/__init__.py: 统一入口导出所有定制组件
|
2026-05-11 23:09:35 +08:00 |
|