基于蒙特卡洛模拟的外汇最优策略选择
2017-01-23王亚芬姚建锋
王亚芬 姚建锋
摘要:为了选择不同外汇市场交易采用的模型,本文使用蒙特卡洛模拟方法比较构建了三种模型(神经网络模型,支持向量机模型,多元适应性回归样条模型)的市场适应性。考虑外汇市场上8种主要的外汇货币,通过方法选择出来的模型进行交易,发现不同的外汇价格时间序列选择模型有所不同,同时得出结论:不同的外汇市场上使用不同的模型会比单一模型获得更高的收益率,这在一定程度上也解释了适应性市场假设(AMH),即单一的投资策略难以应付市场环境的变化。
关键词:蒙特卡洛模拟;外汇交易策略;适应性市场假设(AMH)
1.引言
作为全球最大的金融市场之一,外汇市场吸引了无数投资者。现代金融市场的发展以及信息技术的兴起,越来越多的金融分析人员依靠分析金融资产的价格趋势来建立投资决策模型。交易策略在本世纪普遍盛行。根据Aite Group的统计预测,外汇市场上未来将超过30%的交易量是由算法完成
技术分析,主要从市场历史数据挖掘信息,来找到盈利的模式和趋势,所以也被称为“图表法”或者称为技术交易策略。技术分析最主要是使用技术指标同时结合价格变动图表来预测未来价格变动趋势。此预测方法最早是Charles Dow在19世纪末期发明使用的,曾经被投资者广泛使用,作为投资交易决策的指导。近几年,许多经济学家通过对外市场上使用技术分析的盈利能力文献进行梳理,得出技术分析手段在近些年的外汇市场上的收益逐渐消失。其中大多数的解释都认为外汇市场变得更加有效。最新的金融理论适应性市场假说(AMH)(罗闻全,2004)从另一个角度也解释了这一现象,AMH理论认为个人投资者依据以往经验来进行投资决策,他们通过学习以往决策结果来强化之后的投资。因此,以往能获得超额收益的技术策略由于广泛地被运用到市场投资中,而不再有效。同时AMH在实际市场操作也有指导作用:首先,适应性假说认为风险和收益之间的关系,在时间序列上是不稳定的,即在一定时期内,投资的风险和收益可能并不对称。其次,适应性市场假说认为市场的套利机会总是存在的。第三,适应性进化假说认为套利机会存在,并至少有一种策略在一定时期是有效的,只不过连续使用一种策略会使收益下降,单一的投资策略难以应付市场环境的变化。最后,适应性市场假说认为创新是在市场中生存的核心。随着进化算法的发展,这种方法克服了以往单个技术指标的弊端,通过优化各种技术指标组合,被大量运用于外汇市场。
本文从该理论结果出发,利用蒙特卡洛模拟方法选择最优的外汇交易策略,从而不断适应市场环境变化调整交易策略,以获得超额的收益。
2.建模方法
2.1神经网络交易模型
神经网络模型是一种半参数方法。Cheng 等 (1994)从统计的角度解释了神经网络提供的信息。图1为一个包含隐含层简单的前馈网络结构。输入层有2个节点,隐含层包含3个节点。输入层每个节点与隐含层的节点相连接,同时这些隐含层的节点与输出层的单个节点相连。我们称这个网络为一个2-3-1前馈神经网络。
神经网络通过“活动函数”把信息从一个层传递给下一层。考虑包含一个隐含层的前馈神经网络,隐含层的第[j]个节点定义为:[hj=fj(αoj+i→jwijxi)]
其中[xi]为第[i]个输入节点的值,[fj(·)]为激活函数,通常取logistic函数:[fj(z)=exp(z)1+dxp(z)]
[αoj]为偏差,从[i→j]求和是指所有输入节点反馈给[j],[wij]表示权重。
应用神经网络包括两个步骤。第一步是训练网络(即:建立一个网络,其中包括确定节点的数量以及估计它们的偏差和权重)。第二步是推断,特别是预测。在训练阶段,数据通常分为两个不重叠的子样本。第一子样本是用来估计给定前馈神经网络的参数。建造完成的网络再用于第二子样本进行预测,并计算其预测的准确性。通过比较预测性能,选择优于其他的网络,作为“最好”的网络来进行推理。这是广泛应用于统计模型的选择一种交叉验证(cross validation)的想法。当然,其他的模型选择方法也可使用。
这是一个非线性的估计问题,可以通过一些迭代方法解决。为了确保拟合函数的平滑性,现有的最小化问题可以添加一些额外的约束。在神经网络文献中,反向传播(BP)学习算法也是网络的常用训练方法之一。
2.2支持向量机模型
支持向量机(SVMs)和神经网络一样,可以用于回归和分类任务的建模。支持向量机模型以强大的理论基础和不同领域的成功应用获得了越来越多的关注。支持向量机是一般线性分类器的一种,最主要的特点就是能够同时最小化经验误差和最大化几何边缘区。Vapnik (1995, 1998) 和Shawe-Taylor, Cristianini (2000)对SVMs模型基础做了详细的论述。Smola和Scholkopf (2004, 1998)对SVMs用于回归应用提出了一些基本的想法。
SVMs模型背后最基本的想法就是将原始数据映射到一个新的高维空间上,从而可以使用线性模型得到一个分割平面,对分类问题进行处理。而将原始数据映射到新的空间上主要是通过核函数(kernel function)来实现。所以从这个角度上,SVMs属于线性分类器的一种。
超平面的选择主要是通过最大化不同类别样本间分离边际来得到,如下图所示(2)。这个最优化问题主要通过二次规划来解决。软边际方法允许小比例样本分到错误边际一侧,这些就被称为“花费”(cost)。
3.构建模型及交易策略
3.1 定义预测模型
细化目标是通过构建的模型预测外汇价格的未来值,同时设计交易系统好用,在该下单时下单,该平仓时平仓,以获得最大利润。所以,最重要的就是要能通过模型准确预测出外汇价格未来值。其中需要面对的问题有:(1)是否需要预测每日报价;(2)预测未来多长时间。这些通常取决于使用的模型如何预测,并如何用于交易决策。
假设,如果价格相差超过[p%],则交易是有价值的(考虑交易成本后)。我们通过上面讨论的三种建模方法来预测未来[k]天的价格是否达到这个边界值。同时,在未来的[k]天的总体价格动态预测,这不是在某个时间由一个特定的价格获得。如:在时刻[t+k]收盘价表示一个变化比[p%]低得多的值,但它可能在窗宽[t...t+k]内已被前面有一个时期代表价格的变化比[p%]要高得多。所以,重点是要预测未来[k]天价格总体趋势。引入一个新的变量,它是在报价数据的基础上计算的,可被视为在未来[k]天价格趋势的指标,用字母T表示。同时,这个指标的值与设定未来[k]天的边界[p%]相关。[p%]的变化,是指价格高于或低于目前的价格。基本思想是:正向的变化将导致买入,而负向的变化将导致卖出行为。指标T值假设趋势作为一个单一值,正值代表向上的趋势,负值代表价格下调的趋势。定义每天的平均价格近似为:
变量[T]的含义为:在[k]天的周期内所有日平均价格高于目标变化率的总和。高的正[T]值意味着有多个未来日均价格高于今天的收盘价[p%]。这种情况是发出买入指令的潜在机会,因为有良好的预期外汇价格将上涨。另一方面,高的负[T]值则建议卖出操作,预计未来外汇的价格很可能会下降。如果[T]值在零附近,可能的原因为期间内价格比较“平坦”或者是由于正和负的变化相互抵消所引起,即价格处于上下波动状态。
通常,技术指标方法有两种,每一个技术指标都是从一个特定的方面对外汇市场进行观察。第一种是按照明确的数学公式产生新的数字,这是技术指标中较为广泛的一类,著名的KDJ指标、RSI指标、MA指标都属于这类。第二种是没有明确的数学公式,只有处理数据的文字叙述方法,这一类指标相对较少。技术指标的原始数据是开盘价、最高价、最低价、收盘价、成交量、成交金额和成交笔数等。由于外汇数据的对交易量的衡量不准确,所以与交易量相关的交易指标本文没有涉及。本文采用的技术指标如下:ATR(Average True Range)指标表示序列的波动性;SMI(Stochastic Momentum Index)指标表示动量效应; SMI (Stochastic Momentum Index)指标表示随机动量效应;ADX (Directional Movement Index)表示方法变动指标;Aroon指标识别开始趋势;Bollinger带来比较一段时期内的波动性;CV波动率指标;CLV (Close Location Value)表示收盘价在交易区间相对值;MACD指标;SAR (Parabolic Stop-and-Reverse)表示反转过程;Volatility 指标表示波动率,共11个价格指标。
本文使用三种方法构建指标T值与上述11个指标变量关系模型,从而得到对T值得预测模型。通过指标T值来描述未来价格的变化趋势。相应地,构建的交易规则为:在t时刻上,如果T值超过某个阈值,则正确的交易信号是“买入”;如果T值低于另一个阈值,则交易信号为“卖出”;其他情况下,交易信号是“持有”。T值处理有两种方法,一种为直接通过技术指标来预测T值,即T值为连续变量,所以是一个回归问题,当然最后还是要根据预测的T值和设定的阈值来转化成外汇交易信号;另一种方法则是通过计算历史数据相应的T值,依据阈值方法,记录每一天正确的交易信号,这种方法将问题转化为分类问题,即通过技术指标来直接预测买卖信号。具体说:
第一个选择是使用T值作为目标变量,并尝试使用预测信息构建模型以预测T值。这种方法与多元回归相似。即将模型预测结果“转化”为交易信号,通过决定阈值的大小,根据预测的T值,将交易信号分为3种可能。如下面的公式所示:
[signal=卖,T<-0.01持有,-0.01≤T≤0.01买,T>0.01]
阈值0.01和-0.01的选择是纯粹启发式的,也可以使用其他的阈值。但0.01值的含义也表示在k取10天期间内计算出来的T值中有至少四个日均价格是超过目前的价格0.25%,(4×0.0025=0.01)。如果使用其他阈值,过高的阈值将减少信号产生,而太小的阈值则会导致频繁的交易,市场微小的变化都有可能一起交易,从而会导致风险加剧。
第二种方法是直接预测信号,将问题转化为处理一个分类问题。使用指标T值和上述公式中相同阈值判断交易信号,即使用历史数据计算k 去10天周期的T值,再通过上述公式和阈值将T值转化成每一天的交易信号。对交易信号(买,卖,持有)进行建模,这就类似于一个分类问题。回归和分类的主要区别在于目标变量的类型上,如果目标变量时数值型的(如T值),就可以采用回归方法来研究;如果目标变量时分类变量(如买卖信号),就可以使用分类方法来处理。不同的方法和技术分别应用与这两类问题。
3.2 模型评价指标
通常使用精度来度量精确性,其中精度=(1-错误率)得到。这两个统计量用来比较模型之间预测未来k天的准确性。
精度(或错误率)对于这类问题的度量并不是一个很好的选择。事实上,市场上三种可能的结果(买,持有,卖)之间具有很强的不平衡性,持有信号出现的可能性远远大于其他的两类信号,因为在金融市场上大变动的价格是十分罕见的现象。这意味着,模型表现的精确性主要由最常见的结果持有信号所控制,而这不是需要的结果。我们希望得到的模型对罕见信号(买入和卖出)能有准确的预测。因为这些信号会引发市场交易行为,从而能达到获得潜在获利的最终目标。
金融市场预测是典型的罕见的事件驱动的例子。通常,基于事件的预测任务通常是由精确度和召回率混淆矩阵来评价的,其重点是对事件进行评估,而忽视的常见情况下的表现(如,持有信号)。精确度可以认为是模型预测信号正确的比例。召回率为模型预测出的信号数和原始数据中所有的相应信号的比率。这些指标可以很容易地通过在测试数据之间比较预测值和真实值的混乱矩阵来得到模型的结果。表1为混淆矩阵的一个例子。
4.实证结果
4.1 实证数据
本文选取数据主要是为外汇市场上8个主要的外汇汇率,数据主要来自Oanda,时间段为2008年9月3日到2013年12月31日。其他的一些网站也有类似的数据,如雅虎财经网站、新浪财经数据等。
所有模型都采用了三种不同的数据处理方式:(1)单个模型应用所有的测试期数据方式;(2)以固定更新w天的增长窗口方式;(3)每次更新w天的移动窗口方式。图4显示的是三种不同的处理方式。
4.2 变量选择
上述各种指标变量用来预测未来的指标T值。我们构建随机森林模型(Breiman Leo和Adele Cutler,2001),来对模型中重要的指标变量进行选择。定义一个初始的指标集,然后使用随机森林模型来评估每个指标变量的重要性。基于这些估计,选择最相关的指标变量。随机森林也可以用来估计参与预测的任务的变量的重要性。通俗地说,如果我们依次取出每个变量,这种重要性可以通过计算百分比增加随机森林的错误进行估计。因为它包括在变量选择的过程的建模工具,所以有类似过滤器的概念。然而,这不是一个迭代搜索过程,而且,我们将使用其他的预测模型来预测T,这意味着通过该方法选择的变量不为这些其他模型进行优化,并在这个意义上,此方法就像一个过滤器的方法。
(随机森林)算法是通过训练多个决策树,生成模型,然后综合利用多个决策树进行分类。随机森林算法只需要两个参数:构建的决策树的个数t,在决策树的每个节点进行分裂时需要考虑的输入特征的个数m。
4.2.1.单棵决策树的构建:
(1)令N为训练样例的个数,则单棵决策树的输入样例的个数为N个从训练集中有放回的随机抽取N个训练样例。
(2)令训练样例的输入特征的个数为M,切m远远小于M,则我们在每颗决策树的每个节点上进行分裂时,从M个输入特征里随机选择m个输入特征,然后从这m个输入特征里选择一个最好的进行分裂。m在构建决策树的过程中不会改变。
(3)每棵树都一直这样分裂下去,直到该节点的所有训练样例都属于同一类。不需要剪枝。
4.2.2随机森林的分类结果
按照1生成t个决策树之后,对于每个新的测试样例,综合多个决策树的分类结果来作为随机森林的分类结果。
(1)目标特征为数字类型:取t个决策树的平均值作为分类结果。
(2)目标特征为类别类型:少数服从多数,取单棵树分类结果最多的那个类别作为整个随机森林的分类结果。
后续对每个货币对汇率建模时,就采用上表对应的技术指标与T值。如,对EUR_USD建模时,本文选取变量重要性大于10的指标相应的技术指标就选择:ATR,ADX,SAR,Mean和SD指标,如图5所示。
三个模型准确度度量结果,如下表(3~5)所示。从各个模型的准确性比较中可以看出,对于EUR_USD和NAD_USD数据集支持向量机模型都有很好的预测结果,而对于USD_CAD、GBP_USD和USD_CHF数据选用神经网络模型有更高的预测准确性,同时AUD_USD、USD_JPY和EUR_JPY数据则是使用多元适应回归样条模型更好。
4.3交易策略
我们的交易系统有两个交易状态:多头和空头。多头是指在t时刻以价格[p]购入资产,同时在[t+x]卖出,建立多头预期未来价格会上涨,从而卖出资产获利。空头是指在t时刻以价格[p]卖出资产,同时在[t+x]买入资产返还,这是一种卖空的模式,这种模式以期未来资产价格会下跌,从而套利。一般来讲,建立多头预示着我们期望未来的价格会上升;建立空头预示着我们期望未来的价格会下降。
使用蒙特卡洛模拟来选择具有稳定收益率的模型。其中通过改变各个模型的参数,得到神经网络模型组成60个模型,支持向量机模型也组成60个模型,多元适应性回归样条模型组成120个模型。如图5所示,我们在6年数据中随机地选择r个时点(满足初始大于2年),同时选用该时点前两年数据来训练模型,使用后1年数据来测试。对每个模型进行r次测试,计算平均收益率等指标,从而在选择较好的模型进行交易,图6为某一模型策略的累积收益率变化情况。结果表明,在EUR_USD和NAD_USD数据集上使用支持向量机模型可以得到很好的表现,而在USD_CAD、GBP_USD和USD_CHF数据选用神经网络模型有更高的收益率,同时AUD_USD、USD_JPY和EUR_JPY数据则是使用多元适应回归样条模型更好,这个结果与模型预测准确度相吻合。表7、表9分别是使用两种不同策略后最优模型在测试数据上的收益结果,相应的策略参数设置在表6和表8中给出。从中,可以看出在每个数据集选用了最优模型之后,都可以获得超额的收益,比原来单一使用某个模型的收益得到大幅提高。
结论
本文使用蒙特卡洛模拟来确定不同市场上使用的模型,从而使得在测试数据上能够获得更高的收益率。实证结果表明,与单一的模型使用在不同市场相比较,基于蒙特卡洛模拟的模型选择在测试样本上可以取得更好的收益水平。这个结果在一定程度上验证了AMH假设,即单一的投资策略难以应付市场环境的变化,只有不断地调整交易策略,才能在市场上获得超额收益。未来的研究可以在结合更多的模型进来,同时增加样本量来增加模型的稳定性。
参考文献:
[1]Park C H, Irwin S H. What do we know about the profitability of technical analysis?[J].Journal of Economic Surveys,2007,21(4): 786-826.
[2]Friedman,J.(1991). Multivariate adaptive regression splines. The Annals ofStatistics, 19(1):1-144.
[3]Shawe-Taylor, J. and Cristianini, N. (2000).An introduction to support vectormachines.Cambridge University Press.
[4]周东生,唐焕文.有效市场假说与市场适应性有效[J].管理科学,2005,18(3): 76-80.
[5]田晓林.适应性市场假说的研究进展[J].经济学动态,2005(04):97-101.
作者简介:
王亚芬(1963.04- ),女,浙江宁波人,本科,副教授,研究方向:统计学、保险学、互联网金融。