【《基于MLP神经网络的AI量化模型的构建分析案例》5200字】_第1页
【《基于MLP神经网络的AI量化模型的构建分析案例》5200字】_第2页
【《基于MLP神经网络的AI量化模型的构建分析案例》5200字】_第3页
【《基于MLP神经网络的AI量化模型的构建分析案例》5200字】_第4页
【《基于MLP神经网络的AI量化模型的构建分析案例》5200字】_第5页
已阅读5页,还剩9页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于MLP神经网络的AI量化模型的构建分析案例目录TOC\o"1-3"\h\u8314基于MLP神经网络的AI量化模型的构建分析案例 1197091.1AI量化投资模型的概述 175991.2AI量化模型的构建 3203781.2.1数据准备 565931.2.2量化投资策略的构建 8306571.2.3量化模型回测和评估 101.1AI量化投资模型的概述量化投资是把投资逻辑用数学模型进行量化,并通过计算机程序买卖指令进行交易。AI量化模型就是把人工智能中各种机器学习的算法引入量化模型开发中,把传统量化模型中需要人工总结的选股规律,以机器学习算法来代替。我们把AI量化模型看作一个函数,它试图解释自变量(因子特征)和因变量(目标)之间的关系。我们以“一线穿多阳”的选股逻辑作为例子,来解释AI量化模型如何把选股逻辑转化为可量化的因子特征和目标,并通过对这些数据的机器学习总结选股规律,我们用图4-1展示这个流程:图4-1“一线穿多阳”为选股逻辑的AI量化模型的简单示意图首先,我们把“一线穿多阳”的选股逻辑拆解为目标是“未来5日收益率”、以及与影响目标的因子特征(“收盘价和5日均线比例”等的因子特征);接着把目标和因子特征数据合并起来,通过机器学习来探索目标(未来5日收益率的涨跌)与因子特征之间规律,进而构建选股的决策模型;然后在决策模型中输入新的因子特征数据,用来预测“未来5日收益率”;最后根据预测结果选择股票组合。以上是简化版的AI量化模型,我们把AI量化模型展开,它是一个包含了多个多个子流程的复杂结构,每一个子流程之间都有着密切的联系。总体而言,要开发一个AI量化模型,主要包括以下流程:前提:选择一个投资逻辑,并把这个投资逻辑拆解为可量化的目标和因子特征。第一步数据准备第二步机器学习算法模型的构建第三步量化投资策略的构建第四步量化模型的回测和评估第五步量化模型的优化根据以上的开发流程,本文基于MLP神经网络的AI量化模型的构建的技术线路如图4-2所示:图4-2MLP神经网络的AI量化模型的构建的技术线路1.2AI量化模型的构建投资逻辑:以Fama-French三因子模型为基础,我们认为上市公司的规模和价值,与它的股票收益率相关。我们把这个投资逻辑,量化为市值和市净率这两个公司指标作为因子特征、未来5日收益率作为目标标签。模型简介(原始版)模型简介(原始版)因子数量:2个是否对因子数据预处理:是标注:未来5日收益(不做离散化)是否对标注数据标准化处理:是训练集数据:2010/01/01~2019/01/01实验集数据:2019/01/01~2020/02/11选股依据:根据预测值降序排序买入持股数:5持仓天数:5机器学习算法:MLP神经网络类型:回归任务激活函数:relu权重初始值:He损失函数:MES优化算法:AdamBatch-size:1024个(每次训练1024个样本)Epoch:5轮(共训练5轮)神经网络层数:2层Dropout比率:10%表4-3模型简介(原始版)图4-4AI量化模型(原始版)1.2.1数据准备1.2.1.1数据获取数据来源:本文在Bigquant平台上开发AI量化模型,所有数据来源于BigQuant。回溯时间:量化投资模型的研发与构建需要大量的数据样本,训练数据样本其间至少要跨越一个牛熊周期,才会达到统计学意义上的显著性;但是如果回溯时间过长,意味着新数据的样本占模型比例减少,那么模型的自适应性就变差。训练数据使用2010年1月1日到2019年1月1日之间的数据。在机器学习中,训练数据和测试数据比例一般是8:2,或者7:3。测试数据使用2019年1月1日到2020年02月11日之间的数据。股票数量:为了适用于更广泛的市场环境,需要选择大量的股票。但在选择股票的时候,我们要注意要剔除一些特殊情况,以免给模型带来杂音,误导模型的学习。本文采用A股市场的股票过滤了ST、*ST、暂停上市、退市等这些特殊股票,以防止这些特殊的股票数据影响训练结果和测试结果。因为训练数据和测试数据的时间段不同,在测试时间段中有些旧股票可能退市、暂停上市、ST、ST*、也新的股票上市,因此股票的数量是不同的;所以在训练数据中,股票数量是3560个;在测试数据中,股票数量是4159个。1.2.1.2数据预处理数据通常会有杂音、不完整、冗余甚至不一致的数据,我们需要把数据进行预处理,目的是改善数据质量,让数据更加适合模型进行机器学习ADDINEN.CITE<EndNote><Cite><Author>爱丽丝·郑,阿曼达·卡萨丽</Author><Year>2019</Year><RecNum>605</RecNum><DisplayText><styleface="superscript">[1]</style></DisplayText><record><rec-number>605</rec-number><foreign-keys><keyapp="EN"db-id="fr2trwfrn555w9er5rtvwr2lwefeeerdtfpp"timestamp="1620005306">605</key></foreign-keys><ref-typename="Book">6</ref-type><contributors><authors><author><styleface="normal"font="default"charset="134"size="100%">爱丽丝</style><styleface="normal"font="default"size="100%">·</style><styleface="normal"font="default"charset="134"size="100%">郑,阿曼达</style><styleface="normal"font="default"size="100%">·</style><styleface="normal"font="default"charset="134"size="100%">卡萨丽</style></author></authors><subsidiary-authors><author><styleface="normal"font="default"charset="134"size="100%">陈光欣</style></author></subsidiary-authors></contributors><titles><title><styleface="normal"font="default"charset="134"size="100%">精通特征工程</style></title></titles><dates><year>2019</year></dates><pub-location><styleface="normal"font="default"charset="134"size="100%">北京</style></pub-location><publisher><styleface="normal"font="default"charset="134"size="100%">人民邮电出版社</style></publisher><urls></urls><language>Chinese</language></record></Cite></EndNote>[1]。我们把目标训练数据和测试数据分别做预处理:训练数据的因子特征数据和目标标签数据需要分开处理,然后进行数据合并:=1\*GB3①处理目标标签数据过滤极端情况:删除两种情况的记录,分别是删除一字涨停的记录;删除有缺失值的记录。固定比例去极值:把某列数据以降序排列,以1%和99%分位的值为界,大于99%的数据,重设为99%分位的值;小于1%的数以1%重设为1%分为的值。标准化:是将上一步填充后的因子序列减去其现在的均值、除以其标准差,得到一个新的近似服从均值为0、方差为1的序列。=2\*GB3②处理因子特征数据:中位数去极值:设某因子在某一个时间点上在所有个股上的数值为序列为Di,DM为该序列中位数,DM1为序列、|Di-DM|的中位数,则将序列Di中所有大于DM+5DM1的数重设为DM+5DM1,将序列Di中所有小于DM+5M1的数重设为DM+5DM1,将序列Di中所有小于DM-5DM1的数成设为DM-5DM1。缺失值处理:数据缺失,可能意味着重要信息的缺失,因此可能会让模型在学习中陷入混乱,从而导致输出误导性的规律。缺失值处理的方法有多种,在这里,我们使用缺失值中位数填充。所谓缺失值中位数填充,就是在完成(a)操作后,得到新的因子序列后,将因子数据缺失的地方设为该序列的中位数。标准化:把已经完成缺失值处理的数据进行标准化,方法同上。=3\*GB3③合并数据我们把训练数据中的因子特征数据和目标标签数据做了预处理后合并,训练数据总量是5232590行、10列(股票数量3560个,因子数量2个,时间2010/01/01~2019/01/01)图4-5训练数据总量(原始版)我们把测试数据中的因子特征数据做了标准化处理后,测试数据总量是1870286、共4列(股票数量4159个,因子数量2个,时间2019/01/01~2020/02/11)图4-6测试数据总量(原始版)1.2.2量化投资策略的构建策略的构建包括:投资组合、风险管理、交易成本。这三个部分都与模型的预期收益密切相关,相互影响。1.2.2.1投资组合如何分配投资组合中各个股票的比例,主要考虑期望收益、风险控制、交易成本之间的平衡。如果我们过于强调交易机会,那么就会因为忽视对风险的管理而导致损失;如果我们过于强调风险管理,那么会因为忽视交易机会而造成收益的减少;如果我们过于强调交易成本,那么我们可能会因为不愿意承担投资组合更新的交易成本,而过度延长股票的持仓时间。常见的投资组合模型有两大类:相等权重组合、非等权重组合。等权重组合,是指每一个股票的资金分配都一样。非等权重组合,是指每一个股票的资金分配与预测结果排名相关,排名越靠前,资金分配越重。这两种权重组合各有优点和缺点。对于等权重组合,如果模型预测有误,它会把损失降低;但如果模型预测准确,也会把效益降低。对于非等权重组合,如果模型预测有误,它会把损失增加;但如果模型预测准确,也会把效益增加。本文使用非等权重组合买入股票:根据模型对股票未来5个日的收益率的预测值进行降序排序,按照非等权重组合,做多排名前面五只股票。持有一定量的股票后,卖出持仓的股票:按模型预测的收益率排序进行末位淘汰,做空排名靠后的股票。简单来说,模型每天发出指令:做多排名靠前的5只股票、做空排名靠后的5只股票,构成多、空对冲的投资组合。资金在买入和卖出中循环滚动中,通过多、空对冲的价差组合盈利。1.2.2.2风险管理一般来说,风险管理可以控制模型收益的波动性,优点是降低重大损失发生的可能,缺点是会降低盈利水平。在量化投资中,资金规模控制是风险管理中的重要手段。一个量化模型,如果缺乏对资金规模的控制,它会根据算法让所有的资金投在某一次交易中。无论这个模型的盈利看起来有多么确定无疑,但是这种“把所有鸡蛋都放在同一个篮子中”的做法,显然风险太高,并不是一个好的选择。本文通过以下方式对资金规模控制来降低风险:控制总的资金规模。量化策略都要设定一个初始资金。我们开发模型中,设定初始资金是100万。控制每日资金规模。模型开始运行的时候,我们按照持仓天数(模型中的持仓天数是5天),把资金分为5等份,每天使用等量资金,并且规定每天买入最多使用等量资金的1.5倍;之后就使用剩余资金。剩余资金由每天卖出股票产生。控制每只股票的资金规模。每天按照非等权重方法买入5只股票,同时强行规定每只股票占用的最大资金比例是20%,无论算法给出的信号多么强烈。我们用资金规模控制来管理风险:牺牲来自模型正确判断的部分收益,同时也避免因为模型误判而导致重大损失的风险,通过这种折中的办法来提高模型收益的稳定性。1.2.2.3交易成本在量化投资中,所有交易都是有成本,因此,进行交易需要有足够的理由,要不就是为了增加盈利、要不就是为了降低亏损。但是,把交易成本降到最低,并不是量化模型的目的。这是因为,如果在开发模型的时候,高估了交易成本,会导致交易次数过少,错失盈利或者止损的最佳时机;低估了交易成本,会导致交易过于频繁,交易成本过高导致入不敷出。交易成本由三个部分构成,分别是手续费、滑价、市场冲击成本。本文的交易成本只考虑手续费,暂时不考虑滑价和市场冲击成本。在模型中,我们设置买入手续费为0.03%、卖出手续费为0.13%(0.13%的手续费已经包含了0.03%的佣金加上0.1%的印花税)、每笔交易最低手续费为5元。手续费和投资组合中股票持仓数量和持仓天数有关。持股数量越多、持仓时间越短,手续费越高。1.2.3量化模型回测和评估1.2.3.1量化模型回测我们在训练数据上建立模型后,然后把测试数据放进模型进行检验模型的收益情况和风险情况,这个检验的过程就是回测。回测的目的主要检验模型存在的三个问题:模型的代码运行是否正常、模型的评估是否符合预期、根据回测结果调整和优化模型。1.2.3.2基于训练数据,模型的R2检验确定了代码运行正常后,我们首先要看模型在训练数据上的表现。本文的MLP神经网络用于回归任务,我们使用R2是检验模型在训练数据上,解释被预测数据的变异程度,它的公式是R2公式中,ri,t,r^i,t分别表分别示第i只股票在时间t的实际收益率和预期收益率。R2的值在0~1之间。R2越接近1,表示模型在训练数据上的解释过去的能力越强。模型在训练数据上的表现并不是我们的目标,我们的目标是追求模型的泛化能力,也就是模型在测试数据上的表现。1.2.3.3基于预测数据,模型在收益指标和风险指标的评估追求模型泛化能力的目标最终是表现在模型能否达到高收益、低风险的预期。因此,在测试数据上,我们直接用收益指标和风险指标来对模型进行评估。总收益率总收益率是指整个回测区间的总收益率,它是评价模型盈利能力的最基本的指标,其计算方法为:rp公式中的rp表示模型的总收益;Vt表示模型最终的股票和现金的总价值;V0表示模型最初的股票和现金价值。年化收益率年化收益率是指回测区间的年平均收益率,它更加直观地看到模型的表现,其计算方法为:ra公式中,ra表示模型的年化收益;rp表示模型的总收益率;n表示模型的执行天数(每年交易天数250天)。基准收益率基准收益率是模型的标杆(benchmark),它通常与模型的总收益率进行比较。在本文,我们使用A股市场通常使用的沪深300指数作为基准收益率。阿尔法阿尔法是模型相对于基准收益的超额收益,阿尔法大于0,就是我们常说的“跑赢大盘”。rp公式中,a表示阿尔法,rp表示模型的总收益率,rB表示基准收益率。贝塔值贝塔值主要表示模型的系统风险情况,它是衡量投资组合与基准收益的相关性,它的计算公式:β=σpB表示模型收益和基准收益之间的协方差;σ夏普比率夏普比率(Sharpratio,SR),用衡量投资组合收益减去无风险收益率之差的总波动性,它的计算公式:SR=公式中,SR是夏普比率,它衡量每增加一单位风险,会增加多少超额收益率;rp、rf分别代表该时期的资产收益率和无风险收益率,σp信息比率信息比率(informationratio,IR)是资产组合相对于基准收益的超额收益和主动风险的比值。如果信息比率=0时,则说明投资组合收益率与基准收益率持平;如果信息比率<0时,则说明投资组合收益率跑输基准收益率;如果信息比率>0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论