遗传算法是一种基础的人工智能算法,它主要用于优化问题的求解。该算法通过不断的演化、变异和选择来找到最优解,一种基于遗传算法的股票选择模型由此产生。
算法以上市公司的财务指标为样本特征,为克服 K-means 算法的不稳定性,采用基于遗传算法的 K-means 算法对同一板块股票进行聚类分析,剔除财务指标较差的一类中的股票。对筛选条件编码,为解决传统遗传算法处理复杂问题时存在的过早收敛现象,提出改进的遗传算子,利用改进的遗传算法寻找使股票市场投资收益最大化的选股模型参数。实验结果表明,该算法在股票选择上具有较好的效果,可供市场投资者借鉴。
在前面的文章中 七天打造一套量化交易系统:Day1-数据分类、获取、清洗与存储,我们通过聚宽的接口获取到了A股所有上市公司的财务指标数据,这些数据将是我们接下来训练选股模型的基础。
步骤一:数据获取
步骤二:对股票样本进行初步处理
利用改进的Kmeans算法对一个板块内的股票进行聚类,根据财务指标将不利于投资的垃圾股类排除,减小基于基本面选股的噪声,提高股票组合选择的准确率和效率。
步骤三:遗传算法选股
利用遗传算法寻找最佳选股模型从而找到最佳的股票投资组合。
遗传算 kmeans 类的主要代码
这里我们主要使用了 sklearn 库,感兴趣的可以看一下该库的使用文档。
步骤四:回测结果
利用上市公司一个季度的财务指标数据,通关遗传算法选出投资组合,对该投资组合在后面的行情中进行回测。
除了通过 sklearn 库的遗传算法进行选股模型训练外,在股票中多因子选股模型运行也比较广泛,我们可以使用gplearn 库,在 functions.py 中扩充我们的因子函数:
后面我们在继续分享多因子选股模型的训练方法。