基于深度学习和进化计算的外汇预测与投资组合优化

2019-01-30 00:39李章晓
郑州大学学报(工学版) 2019年1期
关键词:外汇汇率收益率

李章晓, 宋 微, 田 野

(1.徽商职业学院 会计系,安徽 合肥 230022; 2.安徽大学 计算机科学与技术学院,安徽 合肥 230601)

0 引言

外汇交易市场是世界上最大的金融市场之一.对汇率的预测可以为投资者提供有效的决策参考,从而能够增加收益并减小风险[1].然而,汇率时刻受到经济、政治、社会、国际局势等多种因素的综合影响,因此外汇预测与投资组合优化是一个非常重要且极具挑战性的研究课题[2].

随着计算机与人工智能技术的发展,许多机器学习模型被用于外汇预测任务中.例如,Galeshchuk[3]利用前馈神经网络预测了3个外汇产品的每日及每月汇率;Liu等[4]采用支持向量机预测了4个外汇产品的每日汇率;而Kuan等[5]比较了前馈神经网络与循环神经网络在汇率预测上的性能.为了增强学习模型在外汇预测任务中的精度,一些进化算法被用于提升学习模型的性能.例如,马骊等[6]利用人工鱼群算法来优化支持向量机的超参数以预测人民币对九种货币的汇率;Inthachot等[7]采用遗传算法来选取最佳的金融指标作为神经网络的输入;而Dinh等[8]利用多目标进化算法建立了一个集成模型来预测4个外汇产品的汇率.

另一方面,进化算法在投资组合优化中也表现出了较好的应用潜力.例如,Skolpadungket等[9]利用多目标遗传算法来进行投资组合优化,Branke等[10]利用一种新型的多目标进化算法来优化一个具有许多约束的投资组合模型.李章晓等[11]将带决策者偏好的多目标遗传算法用于投资组合优化中,并获得了指定区域的最优投资组合.

尽管机器学习和进化计算技术已被成功地用于外汇预测和投资组合优化中,但大部分现有工作只采用了较早的机器学习模型与进化算法.为了提升外汇预测的精度与投资组合优化的效果,笔者采用近些年来提出的深度学习模型和新型进化算法分别用于外汇预测和投资组合优化.另外,为了更接近真实的外汇交易市场,笔者建立了一个双目标的投资组合模型,其中允许买空与卖空,并考虑了点差对收益的影响.

图1 本文方法的流程Fig.2 Procedure of the proposed approach

本文方法的流程如图1所示.首先,利用循环神经网络GRU[12]对每个外汇产品建立汇率预测模型,并预测外汇产品的价格和计算相应的期望收益率.接着,基于多个外汇产品的期望收益率与投资组合模型,利用多目标进化算法ARMOEA[13]来搜索出最优的投资组合.为了证实本文方法的性能,在4个外汇产品EUR/CHF、EUR/GBP、GBP/USD和USD/CAD的真实历史数据上进行回测.实验结果表明,本文方法能够实现在外汇交易市场中的盈利.

1 相关工作

1.1 循环神经网络

循环神经网络和卷积神经网络是深度学习的两个主要技术[14].由于循环神经网络具有记忆历史输入的能力,它常被用于具有序列输入的机器学习任务中,例如语音识别[15]和文本产生[16].在序列预测任务中,循环神经网络较之传统前馈神经网络的最大优点在于前者的输入仅为序列中当前时刻的特征,而传统神经网络的输入需要为前k个时刻的所有特征,且k通常难以确定.

传统循环神经网络的一个缺点是它只能记忆短期的历史输入[17].为了解决这一问题,LSTM[18]加入了特殊的记忆单元(隐层)来显式记录历史信息,它被证实可以记录较长的历史输入,并因此成为目前最为流行的循环神经网络.笔者将采用与LSTM类似的循环神经网络GRU[12]来构建汇率预测模型.GRU与LSTM有着类似的记忆功能,但前者具有更为简单的网络结构(LSTM有4个隐层而GRU有3个隐层),且被证实在一些任务上具有更快的收敛速度[19].

1.2 多目标进化算法

多目标进化算法已成功应用于许多科研和工程领域,例如数据挖掘[20]和无人机任务规划[21].利用进化算法来求解多目标优化问题的优势在于它无需知道待优化函数的具体表达形式,且待优化函数可以是多峰、不可导甚至是离散的.传统方法(如二次规划)无法求解一些具有非凸搜索空间的投资组合模型,但多目标进化算法仍然能求解它们[10].

自VEGA[22]于1985年被提出以来,已有数以百计的进化算法被成功用于求解各类多目标优化问题.笔者将采用一个最近被提出的多目标进化算法AR-MOEA[13]来优化本文中的投资组合模型.AR-MOEA利用遗传算子产生子代,并利用基于指标的选择算子来更新种群.该算法的特点在于它可以在进化过程中不断更新用于计算指标的参考点集,从而使得种群可以拥有更好的收敛性与分布性.实验结果证实,AR-MOEA在不同测试问题上能够取得比其他多目标进化算法更加稳定的结果[13].

2 本文方法

2.1 基于GRU的外汇预测

笔者采用GRU对每个外汇产品建立汇率预测模型.该模型的输入xt为第t个小时内每分钟的汇率,即

xt=(xt,1,xt,2,…,xt,60)T.

(1)

其中,xt,i为第t小时第i分钟的收盘价.该模型的输出yt+1为第t+1个小时最后一分钟的收盘价,即

yt+1=xt+1,60.

(2)

此外,为了便于模型训练,所有的输入和输出数据在训练之前将会被标准化,即减去所有数据的均值并除以所有数据的标准差.

总而言之,该模型利用前一小时内每分钟的汇率信息来预测一小时后的汇率,因此,该外汇产品的期望收益率p可以由下式得到:

(3)

显然,当p>0时,期望收益率为正,应该执行买空操作;反之期望收益率为负,应该执行卖空操作.值得一提的是,由于点差(即同一时刻买入价格高于卖出价格)的存在,当期望收益率p小于点差时,不应执行任何买空或卖空操作.

2.2 基于AR-MOEA的投资组合优化

根据Markowitz的投资组合理论[23],基本的投资组合优化问题是一个双目标的优化问题,即最大化期望收益率与最小化风险,其中最重要的参数即每个外汇产品的期望收益率.在本文方法中,该期望收益率由2.1节建立的GRU模型预测得到.

大部分现有工作中的投资组合模型为[10]:

(4)

式中:目标f1为总期望收益率;目标f2为风险;w为每个外汇产品上的投资权重;e为单位向量;p为所有外汇产品的期望收益率向量;c为所有外汇产品的期望收益率的协方差矩阵.

为了接近真实的外汇交易市场,笔者所建立的投资组合模型允许买空与卖空,并考虑了点差对收益的影响.具体来说,本文中的投资组合模型为:

(5)

式中:θ为多个外汇产品的点差向量.通过比较公式(4)与(5)可知,本文中的期望收益率减去了点差部分,同时放宽了每个外汇产品上的投资权重的限制.在公式(4)中,wTe=1要求必须进行投资;而公式(5)中 |w|Te≤1则不强制进行投资,这在期望收益率小于点差时是必要的.在公式(4)中,0≤wi≤1只允许买空,而公式(5)中-1≤wi≤1既允许买空,又允许卖空.

由汇率预测模型获得期望收益率后,便可以根据公式(5)计算总期望收益率.另一方面,由于本文方法基于外汇产品价格的实时单步预测,故无法得到未来期望收益率序列以计算风险.因此,笔者利用所有外汇产品前100 h的历史收益率的协方差矩阵来计算风险.最后,利用AR-MOEA求解公式(5)中的双目标优化问题得到一组投资组合方案,并选取期望收益率最大的10%的投资组合方案的均值作为最终的投资组合方案.

3 实验结果

3.1 实验设置

为了验证本文方法的效果,本节将在4个外汇产品的真实历史数据上进行回测,即EUR/CHF(欧元兑瑞士法郎)、EUR/GBP(欧元兑英镑)、GBP/USD(英镑兑美元)和USD/CAD(美元兑加元).如图2所示,实验选取每个外汇产品连续8 760 h共525 600 min的收盘价,其中前8 000 h的数据用作训练集、后760 h的数据用作测试集.另一方面,GRU和AR-MOEA的参数设置见表1.

3.2 外汇预测结果

本文方法在4个外汇产品的测试集上的均方误差(MSE)和预测结果见图3.从图中可以看出,本文模型预测的价格曲线大致与真实的价格曲线相同,且模型的均方误差在1×10-6附近,最小值能够达到6×10-7.因此,笔者采用的基于GRU的预测模型可以较为准确地预测各个外汇产品的价格.

图2 4个外汇产品的历史数据Fig.2 Historical data of four instruments

表1 GRU和AR-MOEA的参数设置Tab.1 Parameter settings of GRU and AR-MOEA

为了更直观地展示本文方法的预测性能,图4给出了本文方法在4个外汇产品的测试集上的累积收益率.其中每个外汇产品的点差均设置为1×10-4.从图4中可以看出,本文方法最终在所有外汇产品上均能盈利.其中在EUR/CHF上的收益率最高,达到了2.75%,即年化收益率约为31.70%.注意实际交易会受到点差波动、市场关闭、手续费等影响,因此实际收益率会比上述理论值低.总而言之,笔者提供了一种有效的汇率预测模型.

图3 4个外汇产品上的预测结果Fig.3 Forecasting results on four instruments

图4 4个外汇产品上的收益率Fig.4 Yields on four instruments

3.3 投资组合优化结果

图5给出了由AR-MOEA得到的投资组合对应的累积收益率,其中每个外汇产品的点差同样设置为1×10-4.注意每个小时均需要运行一次算法来搜索出当前时刻的最优投资组合.通过比较图4和图5可以看出,单个外汇产品的收益率随着时间有所波动,但由AR-MOEA得到的投资组合在大部分时间段均能盈利.更重要的是,投资组合的最终收益率为4.55%,远高于单个外汇产品的最高收益率2.75%.以上实验结果可以证实本文的投资组合模型的有效性.

图5 AR-MOEA得到的投资组合的收益率Fig.5 Yield of the portfolio obtained by AR-MOEA

4 结论

为了更好地预测外汇产品的价格并提供最佳的投资组合,笔者利用循环神经网络GRU与多目标进化算法AR-MOEA分别用于外汇预测与投资组合优化任务.笔者首先基于每个外汇产品的历史价格利用GRU来预测其期望收益率,然后基于得到的期望收益率建立投资组合模型,并利用AR-MOEA得到最优的投资组合方案.在4个外汇产品的回测上表明,本文方法可以较好地预测外汇产品的价格,同时投资组合模型可以得到比单一外汇产品更高的收益率.

猜你喜欢
外汇汇率收益率
《中国外汇》广告
人民币汇率:破7之后,何去何从
经常项下境内外汇划转相关业务
人民币汇率向何处去
越南的汇率制度及其汇率走势
不辱使命的中国外汇人
外汇管理蓝图2019
前三季度汇市述评:汇率“破7”、市场闯关
2016年10月债券平均久期、凸性及到期收益率
2016年10月底中短期票据与央票收益率点差图