股票事件驱动策略
由crisvalentine创建,最终由crisvalentine 被浏览 297 用户
事件驱动策略的交易规则
由于财务公告通常在晚上发布,在财务报表公告的第二日开盘买入归属母公司股东的净利润同比增长率百分比大于30%的且降序排名靠前股票(总持仓量不超过50只); 买入并持有40个交易日后,以第二日开盘价卖出;
策略构建步骤
-
确定股票池和回测时间
通过证券代码列表输入要回测的单只/多只股票,以及回测的起止日期
-
确定买卖条件信号
通过自定义Python模块m4获取对应股票起止时间范围内的财务数据,通过自定义Python模块m9获取对应股票起止时间范围内的财报发布日期并将其前移1天来模拟前晚发布。 通过自定义Python模块m7整合各股票的财务数据和财报发布日期。 通过数据过滤模块实现财务数据归属母公司股东的净利润同比增长率的条件过滤,通过排序模块实现净利润同比增长率的逐日降序排名。 通过缺失数据处理模块删去有缺失值的数据。
-
确定买卖原则
根据持仓股票买入时的日期戳计算已有持仓中满足持有天数达到40天的股票,需执行卖出操作,更新持仓股票总数和可用现金; 满足买入条件的股票如果当前持仓总数不足50只,则执行买入操作; 本策略根据需要买入的股票总数量,通过可用现金等资金比例仓位买入,并记录买入各股票时的日期戳。
-
模拟回测
通过 trade 模块中的初始化函数定义交易手续费和滑点,设置持仓天数 context.hold_periods,设置最大持仓股票数量 context.stock_max_num ,初始化记录已有持仓股票开仓日期戳的字典 context.hold_days; 通过 trade 模块中的准备函数定义 context.daily_stock_buy 变量来获取并存放每日满足买入条件的股票; 通过 trade 模块中的主函数(handle函数)查看每日满足买入条件的股票,按照买卖原则执行相应的卖出/买入操作。
https://bigquant.com/experimentshare/af2e3c6fd8c64d60b79f89803466d894
\