【历史文档】策略-AI量化策略开发进阶
由clearyf创建,最终由small_q 被浏览 612 用户
更新
本文内容对应旧版平台与旧版资源,其内容不再适合最新版平台,请查看新版平台的使用说明
新版量化开发IDE(AIStudio):
https://bigquant.com/wiki/doc/aistudio-aiide-NzAjgKapzW
新版模版策略:
https://bigquant.com/wiki/doc/demos-ecdRvuM1TU
新版数据平台:
https://bigquant.com/data/home
https://bigquant.com/wiki/doc/dai-PLSbc1SbZX
新版表达式算子:
https://bigquant.com/wiki/doc/dai-sql-Rceb2JQBdS
新版因子平台:
https://bigquant.com/wiki/doc/bigalpha-EOVmVtJMS5
\
导语
本文主要介绍在AI可视化模板策略上的一些尝试,加入一些更为复杂的逻辑,最终提高策略开发能力达到进阶水平。
不知道大家是否有这样的疑惑,在按照平台给出的模板开发了策略以后,不知道从哪些角度提升策略效果,只知道增删一些因子不断调试。本文以一个实际的策略案例,希望大家能够掌握以下几点:
- 修改训练集、测试集时间
- 通过表达式引擎构建衍生因子
- 修改数据标注
- 通过某因子过滤数据集
- 自定义模块
- 加入固定百分比止损
如何提升策略效果
-
修改训练集、测试集时间
金融市场不同时期具有不同的市场风格,比如15年之前,中小创涨得不错,17年以来白马股表现喜人。因此我们可以通过修改开始结束日期来确定不同的训练集和测试集。如图1所示。
-
通过表达式引擎构建衍生因子 构建衍生因子属于特征工程内容,平台的表达式引擎能够快速支持大量复杂的衍生因子。当我们评估一个人身体状况时,如果给了身高、体重数据,其实并不难很好地进行判断,但是如果我们构建一个新的特征——身高体重比(身高除以比重),此时对身体状况的判断可能有所帮助,而且这个特征对模型的贡献得分应该大于身高和体重。此外,数据也需要进行一些处理,比如销售净利率特征(fs_net_profit_margin_0),该特征能够表示公司的盈利能力,但是不同的行业周期、不同的季度变动是很大的,因此一家公司盈利能力怎么样可能还需考虑其所在的行业,因此销售净利率/所在行业平均销售盈利率这一衍生特征可能更好。更多表达式引擎的运用可以参考:bigexpr。
经行业调整过的销售净利特征率:
fs_net_profit_margin_0/group_mean(industry_sw_level1_0, fs_net_profit_margin_0)
将“经行业调整过的销售净利特征率”也加入 输入特征列表 模块
-
修改数据标注
数据标注非常重要,重要性并不亚于特征抽取,也称构建因子。如果抽取特征大多为价量特征,那么最好是通过短期的收益率来标注股票。如果抽取的特征是财务报表中的数据,比如市盈率、净资产收益率、资产负债率,因为这类因子更新很慢,一个季度才会有所调整,因此需用长期的数据,例如未来90天收益率对股票进行标注。因此数据标注和特征抽取紧密相连,具有逻辑的一致性。这里我们的标注是未来90天收益率。
shift(close, -90) / shift(open, -1)
- 通过某因子过滤数据集
平台目前提供了一个数据过滤模块,以便快速对数据集进行过滤。当我们需要根据某个特征来过滤时,首先应该在 输入特征列表 这个模块输入该特征。这里我们以过滤掉上市不足120个自然日的股票举例。
-
自定义模块
虽然在画布的左侧有不少数据和模块可供选择(平台已封装好,可直接使用),但是机器学习和量化研究会面临各种各样的需求,因此不能单单靠封装好了的模块,在此我们可以使用 自定义模块。以去除数据集里面创业板的股票举例说明。 因为创业板的股票以3开头,所以将股票代码以3开头的股票去掉即可,关于自定义模块如何使用可以参考:自定义模块创建。
-
加入固定百分比止损
虽然我们的模板策略是AI量化选股策略,但是我们依然可以将其与人工逻辑信号相结合,比如加入止盈止损、修改资金分配、加入大盘择时等等,这些都是在 Trade(交易/回测)模块里的主函数(handle_data)里实现。这里我们简单加一个固定百分比止损的例子。具体方法是将止损的代码加入Trade(交易/回测)模块主函数。如图5:
策略回测结果
策略案例
https://bigquant.com/experimentshare/c2321e5b3ed8497eba288e2ed0445988
\