张 星, 张德生
(西安理工大学 理学院, 陕西 西安 710054)
为了提高期货价格预测的准确性,在进行期货价格预测时总希望将影响期货价格的所有因素都作为输入变量,特别是那些作用明显的因素.但是如果考虑所有的影响因素,意味着在资料收集上要全面准确,而在实际中有些资料的收集是很困难的,而且模型输入变量过多,势必会产生模型结构复杂、学习速度下降的负面效果.从这点考虑,一般不希望选择的因素太多,尤其是对期货价格影响较小的因素尽量不予选择,而尽量选择那些对期货价格有明显影响的相关因素作为预测模型的输入变量.灰色关联分析作为一种系统分析方法,用于定量研究系统内多因素之间复杂的相互作用、相互影响,是各因素发展态势的量化比较,在变量筛选方面有广泛的应用.
王科明等[1]对期货市场进行了分析,并提出了一种基于BP神经网络的期货价格预测方法.李锬等[2]对期货市场价格时间序列数据的研究发现,沪铜期货存在着一个非周期循环,并进一步证明了期货市场价格波动的非随机性.田新民等[3]利用协整方法和因果关系分析法对沪铜和伦铜的历史数据进行了实证研究,研究结果表明:伦铜期货的价格对沪铜期货的价格具有主导作用.申畯等[4]针对非线性变化的期货价格,建立了基于主成分分析的RBF神经网络模型,经对比,该方法较一般的径向基神经网络有更好的预测结果.赵伟雄等[5]以沪铜期货为例,研究了GARCH、EGARCH、FIGARCH和FIEGARCH四种模型的波动率预测效果,并分别采用M-Z回归和损失函数进行预测效果检验,结果表明:不管残差服从高斯分布还是t-分布,不同的GARCH类模型预测效果均有显著差异,FIGARCH模型预测效果最好,其次是GARCH模型,EGARCH和FIEGARCH模型预测效果不佳,说明了我国铜期货市场具有显著的长记忆性.薄晓旭等[6]根据影响沪铜期货价格的因素,针对性地选取相应的指标,并对这些指标和期铜价格作相关性分析,从相关矩阵可看出:宏观经济形势对SHFE铜价格具有正的促进作用,SHFE铜期货价格与SHFE库存具有一定的正相关性;从主成分回归方程可以看出,影响SHFE铜期货价格的主要因素是宏观经济形势和相关市场走势情况.李丹宁等[7]将非参数模型的三种估计方法应用于沪铜期货价格与LME现价的相关关系分析,得到了精度较高的预测结果.
本文将建立基于灰色关联分析与BP神经网络模型的沪铜期货价格预测模型,并实证研究沪铜期货价格.
(1)供求关系
全球铜市场的供求与铜价的走势是息息相关的,根据供求关系,当某一商品出现供大于求时其价格下跌,反之则上扬;同时价格反过来又会影响供求,即当价格上涨时供应会增加而需求减少,反之就会出现需求上升而供给减少.因此价格和供求互为影响,体现供求关系的一个重要指标就是库存.
(2)国际间和国内的经济波动
铜是一种重要的工业原材料,其需求量与经济形势密切相关.经济增长时,铜需求增加从而带动铜价上升,经济萧条时,铜需求萎缩从而促使铜价下跌.在分析宏观经济时,有两个指标很重要,一是经济增长率,即 GDP增长率,另一个是工业生产增长率.
(3)国际期货市场
期货市场属于金融市场,市场运行不可能不受到其他市场的影响.一些可能和供求无关的因素及其市场运行状况也会影响铜价变动,尤其是其他的期铜市场.在国际期货市场中LME期铜价格与SHFE期铜价格关系最为密切,二者变动保持了几乎相同的趋势.
(4)相关商品的价格波动
铜和原油是国际性的重要工业原材料,它们需求的旺盛与否最能反映经济的好坏,正因为铜和原油都与宏观经济密切相关,因此就出现了铜价与油价一定程度上的正相关性.总的来说,宏观经济的好坏才是影响到铜未来需求的最根本因素,而油价只是影响未来经济的众多因素之一.
(5)金融货币汇率变动因素
在世界经济发展过程,各国的通货膨胀、货币汇价以及利率的上下波动,已成为经济生活中的普遍现象,这对期货市场带来了日益明显的影响.汇率对铜价有一些影响,但决定铜价走势的根本因素是铜的供求关系,汇率因素不能改变铜市场的基本格局,而只是在涨跌幅度上可能产生影响.
(6)资金因素
从最近十年的铜市场演变来看,资金因素在诸多的大行情中都起到了推波助澜的作用.持仓量是期货市场交易中反映多空双方资金争夺的重要指标,持仓量虽然不能明确指示出市场价格的运行方向,但对于预测市场价格的波动性幅度具有重要的参考意义.
选取2012年1月4日至2012年8月15日的沪铜期货日收盘价格为系统特征序列,并选取同时段的沪铜期货价格影响因素为相关因素序列,进行灰色关联分析.影响沪铜期货价格的因素大致可以分为以下四方面:供求因素、相关市场因素、汇率因素和资金因素.由于沪铜期货价格的变动会受到国际和国内的各大金融机构和相关市场的影响,所以结合实际情况和需要,供求因素选取LME库存和COMEX库存,相关市场因素选取SHFE现货价格、LME期铜价格、WTI原油价格、上证指数、沪深300指数、道琼斯指数,汇率因素选取美元指数和中美汇率,资金因素选取SHFE持仓量和LME持仓量.因此,本文初步选取上述四方面共12个影响因素为相关因素序列.
样本数据选定为2012年1月4日至2012年8月22日的日数据(仅是有交易日),共计155日.所有有效数据来自新浪财经(http://finance.sina.com.cn/),并使用Matlab2012b软件对数据进行分析处理.
灰色关联分析方法是根据灰色理论而提出的,是一种用于系统分析的方法.其基本思想是根据序列曲线几何形状的相似程度来判断其联系是否紧密,曲线越接近,相应序列之间的关联度越大,反之就越小.灰色关联分析的基本步骤如下:
①存在影响系统的m个相关因素,系统特征序列和第i(i=1,2,…,m)个相关因素序列分别定义为
X0={x0(1),x0(2),…,x0(n)}
Xi={xi(1),xi(2),…,xi(n)}
其中x0(t)和xi(t)分别表示系统特征序列和相关因素序列在不同时刻的值.
②对数列作初值化处理,将数列转化为无单位的相对数值.初值化公式为
(1)
③关联数列与参考数列在不同时刻的关联系数可利用初值化后得到的数据来计算,具体的计算公式为
η0i(t)=
(2)
④ 关联度的计算公式为
(3)
其中ri表示第i个相关因素序列Xi对系统特征序列X0的灰色关联度.特别的,关联序是关联度计算出的各相关因素序列对系统特征序列关联程度的相对次序.
由于沪铜期货价格和影响因素的数量级别存在着明显的差异,所以对数据序列首先要进行适当的预处理后,才能使用灰色关联度作进一步的分析研究.可根据初值化公式(1)进行数据预处理.通过适当计算,得到沪铜期货价格序列及其影响因素序列的预处理结果,然后根据式(2)和式(3)计算沪铜期货价格与各影响因素之间的关联度,并由此得出灰色关联序.计算关联度及其关联序时,分辨系数取值范围为0.5~0.9.选定分辨系数后,再分别计算出关联度和关联序.由于分辨系数值的改变只会改变关联度的大小,并不会改变关联序,所以选择0.5作为分辨系数.沪铜期货价格以及影响因素的灰色关联分析结果见表1.
表1 沪铜期货价格影响因素的灰色关联分析结果
根据表1可知,在供求因素中,COMEX库存量的变化趋势与沪铜期货价格变化趋势相似度较小,将其剔除.LME库存量的灰色关联度相对于其他10项影响因素的关联度而言较小,但由于供求关系是商品交易中不可或缺的一个重要因素,所以建议保留.相关市场因素中,SHFE现货价格、LME期铜价格、道琼斯指数、上证指数这四项指标的变化趋势与沪铜期货价格变化趋势相似度较大,说明与沪铜价格变化态势联系比较紧密.在汇率因素中,取灰色关联度较大的中美汇率.资金因素中,剔除灰色关联度较小的LME持仓量,保留SHFE持仓量作为与沪铜价格变化态势联系比较紧密的资金因素.结果见表2.
表2 保留的沪铜期货价格影响因素
根据上述分析,最终选取LME库存量、SHFE现货价格、LME期铜价格、道琼斯指数、上证指数、中美汇率、SHFE持仓量作为影响沪铜期货价格的指标.
本研究采用log-sigmoid函数的三层前向人工神经网络,对BP神经网络进行训练和调整,直到神经网络训练误差达到预先设定的误差最小值为止.最后通过检验组数据来检验网络训练拟合程度是否能够满足预测要求,根据最佳预测结果来确定BP神经网络的结构.
输入层、输出层节点数分别代表输入的变量数、输出的变量数.本文中,BP神经网络的输入变量分别为LME库存量、SHFE现货价格、LME期铜价格、道琼斯指数、上证指数、中美汇率、SHFE持仓量这7个影响因素.输出层为待预测年的沪铜期货价格.通过输入历史数据进行神经网络训练,用训练好的网络对未来时期的沪铜期货价格进行预测.
将所得到的数据分为训练和检验这两个数据组.将2012年1月4日至2012年8月14日沪铜期货价格的7种影响因素的数据作为输入层,2012年1月5日至2012年8月15日沪铜期货价格数据作为期望输出层.网络结构确定后,使用训练好的BP神经网络来验证所构建的网络预测模型的准确性.可将2012年8月15日至2012年8月19日的影响因素数据作为预测样本集,对2012年8月16日、17日、20日、21日、22日的沪铜期货价格进行预测.
为了满足人工神经网络节点函数的条件和提高神经网络的训练速度,需将样本进行归一化处理,将输入层数据归一化范围为[-1,1],输出层数据归一化范围为[0,1],公式为:[y,ps]=mapmin max(x,ps).
动量常数取为0.9,学习速率取为0.05.训练函数采用traingdx函数,参数设置为:show=100;lr=0.05;goal=0.001;epochs=50 000.
本文采用BP神经网络建立模型,并通过Matlab2012b软件编程实现.BP神经网络结构通过多次反复调试,最终在众多网络结构中确定出最适合预测的网络隐含层神经元个数为20个.网络输入层的神经元为7个,即7个影响因素指标;输出层的神经元为1个,即对应的下一日的沪铜期货价格,因此神经网络结构确定为7-20-1.选取第1日至第144日的7个影响因素的数据作为训练样本集,第2日至第145日的沪铜收盘价数据作为训练样本集对应的理想输出集.在网络训练完成后,以第145日至149日的7个影响因素的数据作为检验样本集,第146日至第150日的沪铜收盘价数据作为检验样本集的理想输出集.训练后的仿真拟合结果见图1和表3.
图1 BP检验集5期价格预测图
表3 沪铜期货价格的预测值和实际值元/t
可以看出,训练后的网络对于输入的数据较为敏感,能够较准确地预测未来几日的沪铜价格.由此说明建立的BP神经网络是合理的,可以进行预测分析.
通过对建立的神经网络进行训练和检验,反映出网络的仿真预测性能良好.然后以第150日至第154日的7个影响因素的数据作为网络的输入集合,输出第151日至第155日(即2012年8月16日,8月17日、8月20日、8月21日、8月22日)的沪铜价格预测数据.预测沪铜期货价格与实际价格对照见图2和表4,模型的预测误差见表5.
图2 5期价格预测图
表4 沪铜期货价格的预测值和实际值元/t
表5 模型的预测误差
最终求得未来5期沪铜期货价格的预测误差,总体误差较小.可以看出,结合BP神经网络和沪铜价格的影响因素,对期货价格建立模型进行预测是可行的.
本文基于灰色关联分析与BP神经网络模型建立了沪铜期货价格的预测模型,根据灰色关联分析,选择影响沪铜期货价格的主要因素作为BP神经网络的输入变量,并选取适当的参数对模型进行训练,得到了较好的预测效果.结果表明:基于灰色关联分析与BP神经网络的多因素预测模型合理可行,对沪铜期货价格有较高的预测精度,具有一定的实际应用价值.
[1] 王科明,杨建刚,周炜彤.利用人工神经网络技术预测期货行情[J].计算机工程与设计,2004,25(7):1 164-1 169.
[2] 李锬,齐中英,牛洪源.沪铜期货价格时间序列R/S分析[J].中国管理科学,2005,18(3):87-93.
[3] 田新民,沈小刚.SHFE与LME期铜价格因果关系分析[J].首都经济贸易大学学报,2005,7(3):34-38.
[4] 申畯,申荣华.改进的RBF神经网络对期货价格预测分析[J].现代商贸工业,2008(11):183-184.
[5] 赵伟雄,崔海蓉,何建敏.GARCH类模型波动率预测效果评价[J].西安电子科技大学学报:社会科学版,2010,20(4):27-32.
[6] 薄晓旭,丰德民.中国金属期货价格影响因素分析[J].经济研究导刊,2011(10):78-80.
[7] 李丹宁,穆铮,石军,等.基于非参数估计方法的沪铜期货价格研究[J].经济数学,2012,29(3):32-35.