回顾一下Hello~各位兄弟们。之前提到过本地化策略框架的一些使用,包括一些因子表达式的写法和用法,可以参考之前的文章:链接 代码放到本地以后,可以随心所欲的撸策略啦! 这次使用的是同花顺概念板块的一些因子过滤条件来做的一个策略,效果还不错。和大家分享一波,也来听听大家的建议和意见,来帮助我们本地化框架的更好的成长!
策略详情股票范围(A股)深证、上证、创业板
训练预测时间训练时间:2015-01-01~2023-06-30
数据量:20618
预测时间:2023-07-01~2024-04-04
数据量:1175
板块全板块
过滤ST只选取正常股票,过滤ST、*ST、停牌
股票标注未来两天收益(不做离散化,去除0.01的极值,过滤一字板)
- shift(close_0,-2)/shift(open_0, -1)
复制代码
基础过滤同花顺概念板块的收盘价/最近20天收盘价的最低价的最高值 - where(group_rank_int(date,ts_min(ths_low_0,20)/ths_close_0,True)<=1,1,0)
复制代码
其他过滤相对板块收益最高的前10%
AI模型CNN卷积神经网络(经典模型:两次一维卷积、池化后+全连接层)
使用因子#共计34个因子,下面只列出部分
- 'jq_BIAS5=(close_0-ta_ma(close_0,5))/ta_ma(close_0,5)*100'
- 'alpha3=(((high_0*low_0)**0.5)-((high_0+low_0+open_0+close_0)*0.25))'
- 'n_g3155=rank(ta_willr_14_0/shift(ta_willr_14_0,5))'
- 'n_g3136=rank(ta_cci_14_0/shift(ta_cci_14_0,7))'
- 'g3035=ta_rsi_14_0'
- 'n_alpha14=rank((0-(1*((2*scale(rank((((close_0-low_0)-(high_0-close_0))/(high_0-low_0)*volume_0))))-scale(rank(ts_argmax(close_0,10)))))))'
- 'n_dzq94=rank(((((sum(close_0,7)/7)-close_0))+((correlation((high_0+low_0+close_0+open_0)/4,delay(close_0,5),230)))))'
- 'a3004=return_4'
- 'dzq43=close_0-delay(close_0,5)'
复制代码
回测详情回测收益(单票收益,选取预测评分最高的单支票)

回测收益(五票收益,选取预测评分最高的五支票)

训练IC(月统计)

训练IC(年统计) date_year mean_ic_2 data_count 0 2015 0.072949 1932 1 2016 0.122032 1712 2 2017 0.074271 1661 3 2018 0.088265 2651 4 2019 0.065310 2810 5 2020 0.002174 2052 6 2021 0.069670 3531 7 2022 0.080005 2817 8 2023 -0.021931 1452 23年确实有点拉跨了。。。
预测IC(月统计)

预测的整体IC在0.05~0.06之间,只能说效果一般。 2023年7月开始行情确实是一波下跌,5票的收益就不是很理想了,所以单票会有一定过拟合风险。正如大佬们所说,好的策略收益来自于风控和选股,大盘很弱的时候最好就是空仓哈~不亏就是赢。
当然此策略也是本地开发的第一个试手策略,也算小试牛刀,把所有本地模块都能跑通也算不错了。
感谢各位大佬对我们本地化框架提出的宝贵意见和建议,目前发布了修改完bug后的新版本,欢迎各位大佬试用!
|