基于特征K线和合作协同演化算法的金融时间序列预测方法与流程

文档序号:15350099发布日期:2018-09-04 23:13阅读:250来源:国知局

本发明涉及金融风险管理领域,具体涉及一种基于特征k线和合作协同演化算法的金融时间序列预测方法。



背景技术:

金融衍生品市场受到政治,经济,参与者情绪等多方面的影响,系统呈现高度非线性,具有局部随机性与全局趋势性相统一的特征。因此跟踪市场变动趋势,并在此基础上建立恰当的预测模型,以有效降低投资风险,提高投资报酬具有十分重要的现实意义。随着金融市场的不断发展和健全,对投资者的要求越来越高,早期投资者凭借自己的主观经验及判断进行决策选择的投机行为在现有的市场条件下已经很难获得较高的预测准确率。同时随着计算机和机器学习为代表的人工智能技术的飞速发展,基于金融数据的市场预测研究成为近年来的热点。但由于金融市场价格波动具有高度的非线性,用传统方法建立的数学模型具有一定的局限性,影响其预测的准确率,因此,急需一种具有高预测准确率的数学模型以减少投资风险。

k线是以每个分析周期的开盘价、最高价、最低价和收盘价绘制而成。以绘制日k线为例,首先确定开盘和收盘的价格,它们之间的部分画成矩形实体。如果收盘价格高于开盘价格,则k线被称为阳线,用空心的实体表示。反之称为阴线用黑色实体或白色实体表示。特征k线是指在具有相同特征的单根、两根或多根k线的组合形态,其出现往往会反应后续金融价格走势的某种特定规律。金融衍生品市场受到各类因素影响,使得金融数据,特别是金融时间序列数据中存在大量噪音,造成时间序列非稳定性等特征,并且极大影响了对其的分析和处理。鉴于上述情况,针对金融时间序列的去噪工作则尤为重要。但是金融时间序列本身具有非平稳性,非线性和信噪比高的特点,采用传统的去噪方式往往存在诸多缺陷,而利用特征k线对金融时间序列进行去噪处理,有利于降低金融数据的随机性,简化模型建立的复杂度。

传统演化算法在解决低维问题上取得了很好的效果,当变量个数不多的时候,能够很快找到最优解;但当问题规模增大时,其求解难度也急剧增加,许多经典演化算法都失去了其在低维中的性能和表现。这就是所谓的维数灾难。传统的经典算法在求解高维问题领域具有局限性。实际工程应用中的很多优化问题都是大规模的,并且变量之间还可能存在复杂的相关性,迫切需要有效和高效的大规模优化算法。合作协同是提高演化算法求解高维问题能力最有效的策略之一,能够充分利用群体中部分个体的演化导向作用,降低计算量,使收敛的速度加快,并且减少陷入局部最优值的情况。



技术实现要素:

为了解决现有技术的不足,本发明提供了一种基于特征k线和合作协同演化算法的金融时间序列预测方法,该方法通过特征k线技术对金融数据进行去噪处理,利用合作协同演化算法(cooperativecoevolutionalgorithms,ccea)与支持向量机(supportvectormachine,svm)结合的方式来获取分类预测准确率。经过特征k线的去噪处理,抽取金融时间序列的核心特征,降低了金融数据的随机性,简化了模型建立的复杂度。合作协同演化算法与svm结合的方式提升了参数优化性能,从而获得更高的分类预测准确率,适应复杂模型问题的求解。

为了实现上述目的,本发明的技术方案如下:

一种基于特征k线和合作协同演化算法的金融时间序列预测方法,包括以下步骤:

1)获取金融时间序列数据,采用特征k线技术对金融时间序列数据进行去噪处理;

2)将去噪处理后的数据输入svm,并采用合作协同演化算法来获取分类预测准确率。

进一步的,所述步骤1)中,在金融时间序列数据的k线化基础上,筛选获取具有单根、双根和多根的多种特定形态的特征k线集合,生成数据集。

进一步的,所述步骤2)中,采用基于合作协同演化算法构建的优化框架,构建金融时间序列预测模型,从而获取分类预测准确率。

进一步的,所述优化框架包括三个部件,所述部件1为特征子集的选择,所述部件2为天数窗口设定,所述部件3为优化算法的选择。

进一步的,所述特征子集的选择,包括从dif、dea、macd、dma、ama、psy、close、d、rsi、high、open、ma5、ma10、volume、k、low、upperline、middleline、lowline、cci和j的21个特征中随机选出1个或多个特征,构建特征子集。

进一步的,所述天数窗口设定即为滑动窗口天数大小的设定,其天数大小为5到30之间的随机值。

进一步的,所述优化算法的选择,包括随机选择1到3之间的数值,其中数值1代表网格搜索,数值2代表ga算法,数值3代表粒子群算法。

进一步的,假设循环次数是c,参与循环的个体数量是n,三个待确定部件包括部件1天数窗口设定、部件2特征子集的选择和部件3优化算法的选择,则所述合作协同演化算法包括:

2-1)对n个个体分别进行初始化,得到每个个体的天数窗口、特征子集、优化算法和分类准确率;

2-2)取出分类准确率最高的个体为emperor,如果当前的循环次数c/3,余数是1,则除emperor之外,其余个体的部件1将根据交叉率pc复制成emperor的部件1,复制完成之后,再根据变异率pm进行自身部件1的变异,再计算每个个体的分类准确率,取出分类准确率最高的个体为emperor;

2-3)如果当前的循环次数c/3,余数是2,则除emperor之外,其余个体的部件2将根据交叉率pc复制成emperor的部件2,复制完成之后,再根据变异率pm进行自身变异,再计算每个个体的分类准确率,取出分类准确率最高的个体为emperor;

2-4)如果当前的循环次数c/3,余数是0,则除emperor之外,其余个体的部件3将根据交叉率pc复制成emperor的部件3,复制完成之后,再根据变异率pm进行自身变异,再计算每个个体的分类准确率,取出分类准确率最高的个体为emperor;

2-5)循环(2-2)-(2-4),直到达到循环次数c,得到最优分类准确率的个体所记录下的三个部件,即为求得的最优特征子集,天数窗口和优化算法,此时emperor的分类预测准确率就是最终所求的分类预测准确率。

进一步的,所述第k个个体的初始化包括,随机选取天数窗口、特征子集和优化算法,采用基于蜡烛图的svm,根据第k个个体的以上三个部件,结合特征k线去噪、合作协同演化算法与svm共同运算得到第k个个体的分类准确率,其中k为个体编号,k=1,2,3……n。

进一步的,所述天数窗口、特征子集、优化算法和分类准确率获取公式为:

pkk=1,2,3...n

pk.day=rand(5-30)

pk.fea=arandomsubsetoffeatureset

pk.opt=rand(1-3)

pk.acc=ccea-svm(pk)

其中pk为输入svm的数据所产生的随机种群,k为该种群中的第k个个体,pk·day为第k个个体天数窗口的设定,pk·fea为第k个个体特征子集的随机选取,pk·opt为第k个个体优化算法的随机选取,pk·acc为第k个个体分类准确率。

与现有技术相比,本发明的有益效果是:

本发明通过特征k线技术对金融时间序列数据进行去噪处理,利用合作协同演化算法与svm结合的方式来获取分类预测准确率。经过特征k线的去噪处理,抽取金融时间序列的核心特征,降低了金融时间序列数据的随机性,简化了模型建立的复杂度;合作协同算法与svm结合的方式提升了参数优化性能,可获得更高的分类预测准确率,能适应复杂模型问题的求解。

附图说明

构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。

图1为本发明基于特征k线与合作协同演化的分类预测模型图;

图2为合作协同演化算法示例图;

图3为分类准确率随特征子集变化图;

图4为分类预测准确率随天数窗口大小变化图;

图5为三种优化算法选择对分类准确率的影响;

图6为svm、candel+svm和candel+cc-svm三种分类模型在30种特征k线下的分类精度。

具体实施方式

下面结合附图与具体实施例对本发明做进一步的说明。

应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

在本发明中,术语如“上”、“下”、“左”、“右”、“前”、“后”、“竖直”、“水平”、“侧”、“底”等指示的方位或位置关系为基于附图所示的方位或位置关系,只是为了便于叙述本发明各部件或元件结构关系而确定的关系词,并非特指本发明中任一部件或元件,不能理解为对本发明的限制。

本发明中,术语如“固接”、“相连”、“连接”等应做广义理解,表示可以是固定连接,也可以是一体地连接或可拆卸连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的相关科研或技术人员,可以根据具体情况确定上述术语在本发明中的具体含义,不能理解为对本发明的限制。

正如背景技术所介绍的,现有技术中存在金融市场价格波动具有高度的非线性,用传统方法建立的数学模型具有一定的局限性,影响其预测的准确率的问题,为了解决如上的技术问题,本申请提供了一种基于特征k线和合作协同演化算法的金融时间序列预测方法,该方法通过特征k线技术对金融数据进行去噪处理,利用ccea与svm结合的方式来获取分类预测准确率,有利于降低金融数据的随机性,提高的分类预测准确率,适应复杂模型问题的求解。

如图1所示,一种基于特征k线和合作协同演化算法的金融时间序列预测方法,包括以下步骤:

1)获取金融时间序列数据,采用特征k线技术对金融时间序列数据进行去噪处理;

2)将去噪处理后的数据输入svm,并采用合作协同演化算法来获取分类预测准确率。

所述步骤1)中,在金融时间序列数据的k线化基础上,筛选获取具有单根、双根和多根的多种特定形态的特征k线集合,生成数据集。

技术分析是指以金融衍生品价格涨跌的直观行为表现作为主要研究对象,以预测股价波动形态和趋势为主要目的,从股价变化的k线图表及技术指标入手,对股票市场波动规律进行分析的方法总和。技术分析技术预测金融时间序列时,常常以某一种特征k线的出现作为判断市场趋势的依据,比如在下跌趋势中出现倒垂线形态,则预示着下跌趋势的结束,在上涨趋势中出现上吊线形态,则预示着上涨趋势的结束,所以,如图1的特征k线去噪部分,取出多只在相同趋势中的相同特征k线作为分类器的训练数据,这种特征k线去噪的方式源于传统的技术指标分析。

传统去噪方法,将奇异值视为噪声。而在金融时间序列中,奇异值的出现通常是由突发事件引起的,往往预示着趋势的结束或者趋势的加强。因此,奇异值非但不是噪声,而且是研究的重点,特征k线则充分体现了奇异值的价值。由于金融时间序列预测的特殊性,传统的去噪方式并不适用。与传统的去噪方式相比,特征k线去噪的方式不仅减少了数据量,降低了分类预测的复杂度,而且在很大程度上提高了分类准确率,这将在后面的实验部分得以验证。

所述步骤2)中,采用基于合作协同演化算法构建的优化框架,构建金融时间序列预测模型,从而获取分类预测准确率。

所述优化框架包括三个部件,所述部件1为特征子集的选择,所述部件2为天数窗口设定,所述部件3为优化算法的选择。

所述特征子集的选择,包括从dif、dea、macd、dma、ama、psy、close、d、rsi、high、open、ma5、ma10、volume、k、low、upperline、middleline、lowline、cci和j的21个特征中随机选出1个或多个特征,构建特征子集。

所述天数窗口设定即为滑动窗口天数大小的设定,其天数大小为5到30之间的随机值。

所述优化算法的选择,包括随机选择1到3之间的数值,其中数值1代表网格搜索,数值2代表ga算法,数值3代表粒子群算法。

特征选择和天数窗口共同决定了数据集,数据集又会对svm的优化参数和选择优化算法产生影响。

假设循环次数是c,参与循环的个体数量是n,三个待确定部件包括部件1天数窗口设定、部件2特征子集的选择和部件3优化算法的选择,则所述合作协同演化算法包括:

2-1)对n个个体分别进行初始化,得到每个个体的天数窗口、特征子集、优化算法和分类准确率;

2-2)取出分类准确率最高的个体为emperor,如果当前的循环次数c/3,余数是1,则除emperor之外,其余个体的部件1将根据交叉率pc复制成emperor的部件1,复制完成之后,再根据变异率pm进行自身部件1的变异,再计算每个个体的分类准确率,取出分类准确率最高的个体为emperor;

2-3)如果当前的循环次数c/3,余数是2,则除emperor之外,其余个体的部件2将根据交叉率pc复制成emperor的部件2,复制完成之后,再根据变异率pm进行自身变异,再计算每个个体的分类准确率,取出分类准确率最高的个体为emperor;

2-4)如果当前的循环次数c/3,余数是0,则除emperor之外,其余个体的部件3将根据交叉率pc复制成emperor的部件3,复制完成之后,再根据变异率pm进行自身变异,再计算每个个体的分类准确率,取出分类准确率最高的个体为emperor;

2-5)循环(2-2)-(2-4),直到达到循环次数c,得到最优分类准确率的个体所记录下的三个部件,即为求得的最优特征子集,天数窗口和优化算法,此时emperor的分类预测准确率就是最终所求的分类预测准确率。

所述第k个个体的初始化包括,随机选取天数窗口、特征子集和优化算法,采用基于蜡烛图的svm,根据第k个个体的以上三个部件,结合特征k线去噪、合作协同演化算法与svm共同运算得到第k个个体的分类准确率,其中k为个体编号,k=1,2,3……n。

所述天数窗口、特征子集、优化算法和分类准确率获取公式为:

pkk=1,2,3...n

pk.day=rand(5-30)

pk.fea=arandomsubsetoffeatureset

pk.opt=rand(1-3)

pk.acc=ccea-svm(pk)

其中pk为输入svm的数据所产生的随机种群,k为该种群中的第k个个体,pk·day为第k个个体天数窗口的设定,pk·fea为第k个个体特征子集的随机选取,pk·opt为第k个个体优化算法的随机选取,pk·acc为第k个个体分类准确率。

合作协同演化运用生物协同演化的思想。通过构造多个种群,建立它们之间合作的关系,多个种群互相提高各自性能,以达到种群优化的目的。如下图,图2中a-p的个体,都对最终结果z有作用,而且互相之间有作用。这种情况下,只是a-p逐个寻找各自的最优解,显然不能得到z的最优解。因此,提出了合作协同演化的方法,合作协同演化是这样定义的:通过构造多个种群,建立它们之间的合作关系,多个种群通过相互作用来提高各自性能,适应复杂系统的动态演化环境,以达到种群优化的目的。如图2所示,建立a-p所有个体之间合作的关系,适应复杂的动态演化环境,获得z的较优解。

针对部件1、部件2和部件3,若只是单独优化一个部件,而不考虑它们之间的相互作用,显然是不足够的,但三个部件的优劣,都以最终分类预测准确率作为唯一评判标准。正是因为这三者关系紧密,前后关联,在具体实施中,本发明使用基于遗传算法的合作协演化方法(ccga)对上述三个部件做优化处理,并利用真实股票数据对所提出算法进行有效性验证。

基于遗传算法的合作协同演化算法(ccga)包括:

(1)初始化:遗传代数gen=0,对三个部件随机取值产生50个个体组成种群。例如,特征集随机选择了high,low,open,close,天数随机选择了5,优化算法随机选择ga遗传算法,经过svm的训练,得到了这个个体的分类准确率,其他个体随机得到三个部件,取得准确率;

(2)50个个体得到各自的svm分类准确率,选出分类准确率最高的个体emperor,并令gen=gen+1,如果gen\3的余数是1,那么其他个体以概率pc复制emperor的部件1,以概率pm对本身部件1变异;

(3)50个个体得到各自的svm分类准确率,选出分类准确率最高的个体emperor,并令gen=gen+1,如果gen\3的余数是2,那么其他个体以概率pc复制emperor的部件2,以概率pm对本身部件2变异;

(4)50个个体得到各自的svm分类准确率,选出分类准确率最高的个体emperor,并令gen=gen+1,如果gen\3的余数是0,那么其他个体以概率pc复制emperor的部件3,以概率pm对本身部件3变异;

(5)循环(2)-(4),直到达到循环次数,得到最优分类准确率的个体所记录下的三个部件,即是本发明所求得的最优特征子集,天数窗口,优化算法,emperor的分类预测准确率就是最终所求的分类预测准确率。

为了在金融市场中验证本发明所提出的方法,从3612只不同的股票数据中提取数据,这些金融数据取自wind和其他公共渠道。为了建立交易模型,采用从数据中选出特征k线的方式对金融时间序列进行去噪处理,并取出时间序列中所有相同形态的k线以及其相关的数据,比如,选出所有在下跌趋势中的倒垂线形态。取出出现此形态当天以及前n天的数据作为输入数据,数据的相关指标从以下指标中选出m个:dif、dea、macd、dma、ama、psy、close、d、rsi、high、open、ma5、ma10、volume、k、low、upperline、middleline、lowline、cci和j,在具体实施中,m和n都需要结合合作协同演化算法,在svm训练测试的过程中选出。相比于不进行去噪的数据,进行过特征k线去噪的数据量更小,获得的预测分类准确率更高。为了做对比试验,我们将从股票数据中随机取出与特征k线去噪后的数据大体相当数量的数据,形成数据集。

数据集将被分成两部分,训练集和测试集,其中所述数据集的前200组数据作为训练集,后1000组作为测试集。

验证结果一、svm与candel+svm逐步获取最高分类预测准确率的对比试验:

所述candel+svm为利用特征k线化的金融时间序列数据,获得满足特定特征k线的所有数据作为样本点构建的模型,所述candel+svm表示采用基于蜡烛图的svm;

1、特征子集选择对比:从21个特征集合中选出较优特征子集.依次对前1个,2个……21个特征子集求预测分类准确率。下面实验中,candel+svm中使用的特征k线是倒垂线。如图3所示,candel+svm获得更高的预测分类准确率,最高准确率是特征子集取原特征集的前7个的时候,为53.8740%。svm,特征子集取特征集前14个,取得最高预测分类准确率为52.5090%。特征k线去噪有益于获得更高的预测分类准确率。特征集包dif、dea、macd、dma、ama、psy、close、d、rsi、high、open、ma5、ma10、volume、k、low、upperline、middleline、lowline、cci和j,依次对以上特征排序为1-21,若取出的特征子集是dif、dea、macd和dma,则在表中表示为1.2.3.4。两种方式取特征子集如下表1所示。此时的天数窗口为1,优化算法选择libsvm中自带的网格搜索算法。

表1最佳分类准确率所对应的特征子集

2、天口窗数设定对比:如图4所示,candel+svm方法在n=16处取得最大分类准确率55.1537%;svm方法在n=12时取得最大分类准确率53.7634%,此时特征子集如上表1所示,优化算法是libsvm自带的网格搜索。

3、优化算法选择对比:如图5所示,candel+svm方法在n=2,选择ga的时候取得最高预测分类准确率55.6842%,svm方法在n=1,选择网格搜索的时候取得最高预测分类准确率=53.7634%,此时特征子集如表1所示,svm的天数窗口大小取自从2中获得的12,candel+svm的窗口大小取自从2中获取的16。

表2是svm与candel+svm在30中不同的特征k线中,三种优化算法的预测分类准确率。前15种是下跌趋势中看涨的形态,后15种是上涨趋势中看跌的形态。

表2

验证结果二、candel+svm与candel+cc-svm在多种特征k线中的比较:

candel+cc-svm为经过k线化金融时间序列,再将svm与ccea相结合,协调优化特征子集的选择、天数窗口大小的设定和优化算法的选择这三个部件,建立的模型,与candel+svm采用相同训练和测试数据集,cc为ccea的简写;

表3是预测30种形态时选取的特征子集,天数窗口,优化算法。形态中,加粗斜体加斜线的是上涨趋势中看跌的形态,其余的是下跌趋势中看涨的形态。特征集包dif、dea、macd、dma、ama、psy、close、d、rsi、high、open、ma5、ma10、volume、k、low、upperline、middleline、lowline、cci和j,依次对以上特征排序为1-21,若取出的特征子集是dif、dea、macd和dma,则在表中表示为1.2.3.4或者1-4。

表3

在candel+cc-svm中,随着遗传代数的增加,30种特征k线分类预测准确率变化表如表4所示。

在下跌趋势中看涨的倒锤子线形态、锤子线执带线、吞没形态、孕线形态、刺透线、十字星线、信鸽形态、白色一兵线、三内升、三外升、线挤压报警形态、三次向下跳空形态、向上跳空并列阴阳线、战后修整形态,分别用1+、2+、3+……15+表示。随着循环代数g的增加准确率的变化如下表4。在上涨趋势中看跌的上吊线、执带线、吞没形态、孕线形态、十字孕线、流星线、乌云盖顶形态、十字星线、俯冲之鹰形态、一只黑乌鸦、三内降、三外降、挤压报警形态、插入线、向下跳空并列阴阳线,分别用1-、2-、3-……15-表示。随着循环代数g的增加准确率的变化如表5所示。

表4

表5

图6为svmcandel+svmcandel+cc-svm三种分类模型在30种特征k线下的分类精度。

一种新的金融时间序列预测模型,基于特征k线与合作协同演化的分类预测(svm)模型。特征k线化金融时间序列减小了数据量,提高了预测分类准确率。合作协同演化算法协调svm训练过程中的三个部件,特征子集的选择,天数窗口大小的设定和优化算法的选择。合作协同演化算法与svm结合的方式充分考虑了三个部件之间的关系,使得三个部件协调合作工作,取得更高的预测分类准确率。

实验部分,数据来自3000多只股票数据,时间涵盖1999年到2016年。首先利用特征k线化的金融时间序列数据,获得满足特定特征k线的所有数据作为样本点构建svm+candel模型。作为对比,采用传统svm的预测方法,从相同3000多只股票中随机选出与candel+svm模型相同数量的样本。通过训练、预测流程,获取各自的分类预测准确率。选取30种不同的特征k线,candel+svm模型的分类准确率普遍要高于单纯svm模型的分类预测准确率。上述对比实验,验证了特征k线化金融时间序列对其走势预测的有效性。进一步,经过k线化金融时间序列,再将svm与ccea相结合,协调优化特征子集的选择、天数窗口大小的设定和优化算法的选择这三个部件,建立candel+cc-svm模型,采用相同训练和测试数据集,获取此模型的分类预测准确率,在30种不同的特征k线下,candel+cc-svm模型的分类准确率普遍要高于candel+svm模型的分类预测准确率。上述实验证明了本研究提出candel+cc-svm预测模型相比传统方法能够有效提升金融时间序列的预测准确率。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1