该策略未使用未来函数,其优点是规则清晰、注重风险控制且贴合小市值因子逻辑,不过也存在过度依赖历史数据、市值因子有效性存疑等不足,以下是具体分析:
一、是否使用未来函数
未使用未来函数。
策略核心逻辑基于历史分红数据(过去一年)和当前市值、股价筛选股票,数据均为滞后于市场的已发生数据,无超前引用或预测成分。
代码中get_fundamentals和history函数均用于获取历史数据,参数中未包含未来时间点,符合实盘数据逻辑。
二、策略优点
规则清晰,易执行
以 “低价 + 高股息 + 小市值” 为核心指标,参数明确(如股价<9 元、股息率前 25%、市值最小),适合量化新手复现。
调仓频率低(每月一次),减少交易成本和情绪干扰,符合 “执行力” 主题。
风险控制机制完善
多维度过滤:排除 ST、停牌、涨停 / 跌停股,规避流动性风险和退市风险。
动态止盈:持仓中若股票涨停打开(非一字板)则卖出,锁定部分收益。
分散持仓:默认持有 5 只股票(原版为 10 只),降低单一股票波动影响。
贴合小市值因子逻辑
策略通过市值排序选取小盘股,契合聚宽社区讨论的 “小市值超额收益” 逻辑(如 Fama-French 三因子模型、利基市场理论)。
结合股息率筛选,在低价基础上增加 “安全垫”,符合 “弱者思维”(下跌有股息支撑)。
三、策略不足
过度依赖历史数据拟合
策略参数(如股息率前 25%、股价<9 元)基于历史回测优化,可能存在幸存者偏差。若市场风格切换(如大盘股占优),小市值因子失效时,策略可能长期回撤。
代码中set_slippage(0.000)和零税费设置过于理想化,实盘需考虑滑点(如冲击成本)和真实交易费用,可能导致收益缩水。
市值因子有效性存疑
聚宽社区讨论提到,小市值策略在特定年份(如 2011、2017 年)亏损严重,且注册制后市场有效性提升,小盘股炒作空间可能压缩。策略未明确说明如何应对因子失效期。
代码中过滤科创板、北交所股票(filter_kcbj_stock),可能错过部分高成长小盘股,也可能因市场分割导致因子效果不稳定。
逻辑局限性
股息率与股价的矛盾:高股息可能源于股价下跌(如周期股低谷期),单纯筛选高股息股可能选中 “价值陷阱”。
低价股流动性风险:股价<9 元的股票多为小盘股,成交量低,大额资金进出可能影响成交价,导致实盘与回测偏差。
代码可优化点
分红数据处理:get_dividend_ratio_filter_list函数中,按年度累计分红计算股息率,但部分股票可能年内多次分红,直接求和可能高估实际股息收益(需区分现金分红与股票分红)。
调仓逻辑单一:仅按市值排序选股,未结合行业分散、财务健康度(如负债率、营收增长)等指标,策略鲁棒性不足。
四、改进建议
加入因子有效性判断
参考社区讨论,增加市场风格监控指标(如大盘 / 小盘股相对强弱指数),当小市值因子持续回撤时自动切换策略或降低仓位。
优化参数与逻辑
动态调整股价上限(如设置为行业中位数而非固定 9 元),避免一刀切;
区分现金分红与股票分红,仅用现金分红计算股息率,剔除 “高送转” 干扰。
增强风险对冲
搭配大盘股指数基金(如沪深 300)进行组合配置,降低单一因子暴露风险。
实盘模拟验证
先通过聚宽模拟盘测试 3-6 个月,观察滑点、流动性对收益的影响,再逐步投入真金白银。
总结
2025-05-19