基于R语言股票市场收益的预测分析_罗海玲

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图 1 BP 神经网络 1.3 支持向量机 用于解决回归和分类问题的支持向量机 (Support Vector Machine,SVM),在解决小样本、非线性及高维模式识别中表现
·74· 福 建 电 脑 2015 年 第 7 期
F福 建 电 脑 UJ IAN C O MP UTE R
出许多特有的优势,并能够推广应用到函数拟合等其他机器学 习问题中。通过支持向量机,将原始数据投射到一个新的高维 空间,在其间有机会应用线性模型,从而获得一个超平面来进 行分离。因此支持向量机在机器学习中,是与相关的学习算法 有关的监督学习模型,可以分析数据,识别模式,用于分类和回 归分析。R 语言中有多个添加包实现支持向量机,例如带有 svm ()函数的 e1071 和多功能的添加包 kernlab。
表 1 预测交易信号的分类矩阵
预测结果
买入
持有
卖出
卖出
ns,s
ns,h
ns,b
Ns,.
真实结果 持有
nh,s
nh,h
nh,b
Nh,.
买入
nb,s
nb,h
nb,b
Nb,.
买入
n.,s
n.,h
n.,b
N
2.3.2 仿真交易和交易概览图 构建模拟器后,可以指定每一笔交易的成本和交易者能够
2015 年 第 7 期 福 建 电 脑 ·75·
函数绘制股票价格的 K 线图 [7],K 线图用一个彩色框和竖 直的柱条来代表每日的报价情况。柱条代表当天的最高,最低 价格,而框代表开盘价和收盘价。框的颜色用来表示框的顶部 所代表的价格(开盘价和收盘价),即在一天中价格是下降的是 橘色,上升的是绿色。
图 2 最后三个月的实际指数和预测指标线图
其中 Ci 是常数,B(i x)是基函数。 2 预测系统模型 2.1 数据载入与处理 股票市场预测所用到的数据都和时间有关,该类数据常称 为时间序列数据。在同一个时间点观测了当日最高价、当日最 低价、当日收盘价等变量,这类型的变量称为多元时间序列。利 用 R 语言可轻松从网站上获取数据,生成一个基于时间的序 列,并且能够存储带有不规则时间标签的多元序列,还提供强 大子集索引功能。 2.2 预测任务 假设可以预测未来几天的市场变化趋势,如果这个预测在 未来被验证是正确的,那么基于该预测下达的交易指令将是获 利的。从交易方面,首先需要设置一个交易界限,若价格变动超 过 p%,就执行交易操作。从上述收集到的数据进行处理,每天的 平均价格 Pi 近似等于 1/3 的当天的收盘价、最高价和最低价:
用 Vi 代表算术收益 (未来 k 天的平均价格相对今天收盘 价格的百分比变化):
回溯精确度:
指标变量(动态变化绝对值超过目标收益 p%进行累加ຫໍສະໝຸດ Baidu:
指标变量 T[6]来找出 k 天内,价格变动超过 p%的那些日期 的算术收益之和,用描述未来价格的变化,总结未来 k 天的价 格时间序列,来产生交易触发信号。大的正 T 值意味着有几天 的日平均报价高于今天收盘价的 p%,这种情况表明有潜在的 机会发出买入指令,因为有良好的预期价格会上涨。另一方面,
图 3 交易概览图
2.4 模型的评价与选择—— —蒙特卡罗估计 在实验方法上,采用蒙特卡罗估计[6]获取模型评估指标,依 靠随机取样获取评估结果。蒙特卡罗估计的基本思想是,当所 求解的问题是某种随机事件出现的概率,或者是某个随机变量 的期望值时。可以通过实验的方法,以这种事件出现的频率估 计这一随机事件的概率,将其作为问题的解。在解决实际问题 的时候应用蒙特·卡罗方法主要有两部分工作:用蒙特·卡罗方 法模拟某一过程时,需要产生各种概率分布的随机变量。用统 计方法把模型的数字特征估计出来,从而得到实际问题的数值 解。 2.5 结果分析 对于每一个交易系统变体,测量了多个性能指标,有些性 能指标用来衡量信号预测的正确性,一些指标用来衡量应用这 些信号进行交易时的经济效果。根据对实验中得到的这些性能 指标的综合考虑,决定哪一个模型是最好的。对于交易效果而
得便捷,进行数据分析任务变得容易。而且用户无需了解函数 调度的细节,R 语言能调用默认的绘图方法。即当用户创建一 个新的类对象时,R 语言能对该类对象提供特定的绘图方法, 该绘图方法将会告诉 R 如何绘制这个新类对象,图像对于分析 数据起关键作用[2]。
利用 R 语言开源平台进行股票数据挖掘分析,本文主要对 历年来的单支股票的交易日期、当日开盘价、当日最高价、当日 最低价、当日收盘价、当日成交量以及当日调整后的收盘价等 数据信息来预测未来 K 天的总体价格趋势。本文预测不是预测 具体哪一天这支股票价格,而是一个时间段的总体趋势,在这 个时间段中,会出现价格的高低浮动。
1.2 BP(Back Propagation)神经网络 BP 神经网络(Back Propagation Neural Network, BPNN)可以 处理高度非线性问题,因此在金融预测中得到广泛应用[4]。实际 上,BP 经网络的误差反向后传 BP 学习算法是 Rumelhart,Mc- Clelland1985 年提出的,是一种按误差逆传播算法训练的多层 前馈网络,用输出后的误差估计输出层的直接前导层的误差, 再用这个误差估计更前一层的误差,如此一层一层的反传下 去,就获得所有其他各层的误差估计。 BP 网络能学习和存贮 大量的输入-输出模式映射关系,通过反向传播来不断调整网 络的权值和阈值,使网络的误差平方和最小。此网络既可以用 于分类问题,也可以用于回归问题,因此适用于预测任务。图 1 是 BP 神经网络图。
F福 建 电 脑 UJ IAN C O MP UTE R
提供的初始资本。模拟器会在每天收盘时调用用户提供的交易 策略函数,而用户交易策略函数应该返回它需要模拟器执行的 交易指令,返回的交易策略指令也是由模拟器来执行。每一个 股票交易日 d 收盘之后,模拟器用四个主要参数以及用户提供 的任何其他参数来调用交易策略函数。这四个参数是:1)含有 直到 d 天的预测信号的一个向量;2)市场报价;3)当前持仓情 况;4)交易者当前可使用资金。图 3 即为一种自定义的交易策 略,较小的数据集,支持向量机模型,默认的交易成本、默认的 初始成本而制作的一个交易概览图[7]:
对于分类任务,使用 R 语言中的 e1071 包,调用其中函数 进行分析数据。首先可以使用 tune.svm()函数,来寻找 svm()函数 的最优参数。传递给函数 svm () 的关键参数是 kernel、cost 和 gamma。Kernel 的是支持向量机的类型,它可能是线性 SVM、多 项式 SVM、径向 SVM 或 Sigmoid SVM。传 Cost 是违反约束时的 成本函数,gamma 是除线性 SVM 外其余所有 SVM 都使用的一 个参数,其他的大部分参数都选择使用默认值。
然而对于回归任务,使用 kernlab 的 ksvm(),其中的参数 C 用来指定违反约束的不同损失,该参数的默认值为 1。除此之 外,其他参数使用默认值。
1.4 多元自适应回归样条 多元自适应回归样条[5]是自适应回归模型的一个例子,一 个多元自适应回归样条模型具有以下一般形式:
大的负 T 值标明价格可能下降,可能进行卖出行动。如果 T 值 接近零,则可能是由于价格平稳波动或价格涨跌互现,正的变 化和负的变化互相抵消。图 2 是最后三个月的实际指数和预测 指标线图。
2.3 建立模型 2.3.1 定义模型评价准则 预测有两种途径,第一种是使用算术收益值作为目标变 量,然后尝试获取模型,此类称为回归任务。第二种是直接预测 交易信号,这意味要找一个正确信号作为目标变量,此类称为 分类任务。预测任务获得的模型可以给出未来市场方向的预测 值。但是在金融市场中,大的价格波动比较少,所以“持有”这一 结果出现的次数大大超过另外两个结果,引用了罕见时间驱 动。 基于事件的预测任务通常由于决策精度指标和回溯精度 指标[6]来衡量,这两个指标可以集中于所关注事件的评估而不 是常见事件的评估。决策精确度衡量模型给出的事件信号的正 确百分比;而回溯精确度则是指模型给出的事件信号占事实存 在的百分比,通过分类矩阵可以计算出两个指标。表 1 是预测 交易信号的分类矩阵。决策精确度为:
言,交易系统的回报很重要,买入并持有得到回报也很重要。盈 利所占的百分比也很重要,显然应该在 50%以上,在衡量风险 分析方面,需要考虑夏普比率值和最大回测值。
3 结论 本文主要研究了基于 R 语言的股票市场收益预测分析系 统,把模型预测结果转化为现实应用中的决策和行动。从分类 与回归两方面验证预测系统精确度,同时通过决策精确度和回 溯精确度两个指标,作为衡量模型优良的基本特征。通过几个 模型的检测,在 R 中使用性能分析,虽然实验结果与实际的结 果相差很大,交易系统还不能用来管理投资,但是能从中明白 如何利用 R 语言实现交易系统,对股票预测做了初步的尝试。 在研究过程中用数据挖掘方法对在每日股票收盘后对接 下来的股票走势进行预测,从而产生股票操作信号,以此判断 股票操作手段。在如今计算机广泛应用于多个领域的时代,在 大数据为潮流的信息时代下,系统能够为普通股民提供一个交 易参考,对其减少其操作交易风险并且使股票收益最大化具有 重要的意义。随着计算机技术的进步和发展,数据挖掘技术将 会日趋成熟,为更多不同的社会领域提供便利。
F福 建 电 脑 UJ IAN C O MP UTE R
基于 R 语言股票市场收益的预测分析
罗海玲,郑 根
( 福州大学数学与计算机科学学院 福建 福州 350108)
【 摘 要】 当今互联网的信息社会,股票以及股票市场与人们日常经济生活不可分割,因此利用信息技术对股票市场 收益的预测分析也成为研究热点。 本文将基于开源 R 语言开发环境,根据每日交易数据,通过预测模型初步建立股票预 测以及交易系统,具体包括时间序列处理、BP 神经网络建模、支持向量机以及蒙特卡罗估计等数据挖掘技术在单支股票 市场收益的综合分析应用。 结合给定的交易策略,预测模型数据分析实验给出了股票买卖信号,为投资者提供了一些有 意义的统计指标。
【 关键词】 R 语言;时间序列;支持向量机;多元自适应回归样条;蒙特卡罗估计
0 引言 近来,大数据、云计算以及数据挖掘等名词已变得耳熟能 详。十几年来,信息数据增长之巨大已到了令人咂舌地步,大型 数据库、数据仓库被用于商业管理、政府办公、科学研究和工程 开发等。然而面对海量数据,如何从中及时发现有用的信息,提 高信息利用率是当今面临的又一大难题。要想使数据真正成为 有用的资源,只有充分利用它为业务决策和战略发展服务才 行,否则大量的数据只能成为包袱。 90 年代以来,股票作为一种新型投资理财方式传入中国市 场,掀起了一场“全民炒股”的热潮。买股票与银行储蓄存款及 购买债券相比较,是一种高风险行为,但同时它也能给人们带 来更大的收益。购买股票,每年可得到上市公司的红利和红股 回报,也能够在股票市场上交易,获取买卖价差收益。并且股票 投资金额具弹性,相对于房地产与期货,投资股票并不需要太 多资金。由于股票价位多样化,不同层次投资人都可参与,选择 自己财力足可负担的股票介入。因此即使股票投资有风险,但 是股票投资在中国依然很受大众的欢迎。中国股票市场经过 2005 年至 2007 年的持续迅速上涨之后,受到 2008 年全球金融 危机的影响开始暴跌,但是在 2012 年下半年底至今,结束其持 续下跌阶段,开始进入稳步上升阶段。股票市场,变幻莫测,有 的人“一夜暴富”,有的人“倾家荡产”,由此可见,股票市场收益 的预测对广大股民而言具有一定辅助作用。 数据挖掘(Data Mining,DM)指从数据中发现有用的、有效 的、未知的并且可以理解的信息的一项技术。从数据本身考虑, 通常数据挖掘需要有信息收集、数据集成、数据规约、数据清 理、数据变换、数据挖掘实施过程、模式评估和知识表示这 8 个 步骤,数据挖掘的重点之一在于数据的预处理,只有相对正确 有用的数据进行分析才能得到预期目标。对数据挖掘而言股票 市场交易是个巨大潜力的应用领域。事实上,由于大量历史数 据的存在,人工对这些数据进行检测是很困难的,而数据挖掘 技术对大数据有先天的优势。在软件方面,R 是一门用于统计 计算和绘图的函数语言,利用 R 语言的开源优点以及 R 高度灵 活的数据库接口,可以对大型问题进行数据有效地挖掘。 1 相关技术概述 1.1R 语言 R 语言是用于统计计算和绘图的函数,不仅有强大的命令 行交互方式,还可利用 R 语言的开源优点增加修改 R 添加包的 功能。在 R 语言中,数据都是以对象的形式存储,使数据操作变
相关文档
最新文档