用日频数据简单构建“随波逐流”因子
第一次记录量化策略复现 也是第一次自己做股票复现 欢迎各位大佬阅读和提出问题讨论欢迎提出问题目前框架还不是很完善~这个因子来源于方正证券研究所2023年发布的研报这个因子是个很小的因子甚至只是这篇研报的组成部分之一。这个因子本身原本是用分钟频的数据构建的月频因子但在个人回测的时候使用分钟频数据耗时太大且私认为日频数据计算月度因子应该是可行的故做了初步尝试。一、策略基础逻辑本策略是一个经典的横截面多头排列策略基础设定如下选股逻辑在每个月末计算截面因子值并进行全市场排名选取综合得分最高的Top 50只股票。仓位分配等权配置单只股票目标权重为 2%。调仓频率月频。月末最后一天产生信号次月首个交易日以开盘状态/收盘均价执行换仓。二、股票池市面上绝大多数的开源回测框架往往只提供一个单一的 universe 矩阵1代表在池0代表不在池。但实际上因为涨跌停和停牌的存在买入和卖出的限制是非对称的。所以这个回测做了选股池的调整。1. 选股基准池 (universe_base)构建逻辑剔除ST/停牌/新股只保留沪深两市不处理涨跌停.2. 买入限制池 (universe_buy)构建逻辑在基准池的基础上精准剔除当日涨停和停牌的股票标记为 0。3. 卖出限制池 (universe_sell)构建逻辑在基准池的基础上精准剔除当日跌停和停牌的股票标记为 0。三、信号生成延迟执行动态提取每个月的最后一个交易日作为“信号日”通过 shift(1) 将实际的动作推迟到下一个交易日执行日绝对规避盘中用到盘后数据的未来函数。权重锁定只在“执行日”当天系统使用“选股基准池”计算出前50名的目标权重。随后权重矩阵沿时间轴向后填充覆盖整个月。确保在非调仓日内股票池内的个股发生 ST 或退市系统的目标权重也固定实现非调仓日无换手和摩擦影响。资金超载保护根据“买入限制池”和“卖出限制池”动态确认可交易股票并拦截不可执行的交易同时如果在调仓日某只历史持仓股因为跌停或停牌无法卖出导致回笼资金不足此时若按照原计划买入50只新股总仓位将超过100%隐性加杠杆。此时代码将自动调整将当天所有的新股买入比例进行等比例缩减确保总仓位不超过本金。四、回测结果2025-01-01-2026-03-25本身是月频因子 所以先做了月频回测1. 月频回测结果净值曲线图基准设置为全市场等权平均 不扣除手续费并不算好哈哈哈哈2. 强行把月频因子填充到日频并尝试日频交易填充方法就是把每月最后一天的因子向后填充 直到下一个月末 和月频调仓的区别在于可能因为涨跌停或者退市影响每天的权重 实际上影响不大 其实统计下来一共就多调了3次仓分别是2025-06-042025-08-052025-09-16净值曲线图~daily调仓的效有没有佬帮忙看看~
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2457649.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!