2015年11月09日17:58 新浪财经

  数学模型神经网络在程序化交易模型构建中的运用探讨

  作者:唐中

  目前,程序化交易已经成为国外投行和金融机构交易的主流手法,因为程序化交易是追求稳定持续的盈利模式,能够实现交易的稳定化,从而杜绝人工交易中的诸多不确定性和规避人性情绪化的干扰,虽然程序化交易本身只是一个工具,用人的思想加上电脑的执行,但是真正专业的程序化模型设计过程却不那么简单。

  就交易策略而言,一般分为两大类,一是人工策略交易即人工下单交易;二是系统策略交易。系统策略交易一般又分为人工系统策略交易和计算机程序化系统策略交易。

  计算机程序化系统策略交易又分为半智能程序化系统交易和全智能程序化系统交易。本文所探讨的就是后者,即数学模型神经网络如何在全智能程序化系统策略中发挥作用。

  神经网络:我们在此所称的神经网络一般指人工神经网络,是一种旨在模仿人脑结构及其功能的信息处理系统。人工神经网络是一种应用类似于大脑神经联接的结构进行信息处理的数学模型。在工程与学术界也常直接简称为神经网络或类神经网络。神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。每个节点代表一种特定的输出函数,称为激励函数(activationfunction)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆。网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。人工神经网络通常是通过一个基于数学统计学类型的学习方法(Learning Method)得以优化,所以人工神经网络也是数学统计学方法的一种实际应用,通过统计学的标准数学方法我们能够得到大量的可以用函数来表达的局部结构空间,另一方面在人工智能学的人工感知领域,我们通过数学统计学的应用可以来做人工感知方面的决定问题(也就是说通过统计学的方法,人工神经网络能够类似人一样具有简单的决定能力和简单的判断能力),这种方法比起正式的逻辑学推理演算更具有优势。

  神经网络的基本构成:神经网络主要是由神经元构成,而神经元是按照一定拓扑结构广泛互联形成的,并按照一定的学习规则,通过对大量样本数据的学习和训练,把网络掌握的知识以神经元之间的连接权值和阈值的形式储存下来,利用这些知识可以实现某种人脑功能的推理机,这种推理机通过机械化运作方式发挥功能。人工神经元是对生物神经元的一种形式化描述,它对生物神经元的信息处理过程进行抽象,并用数学语言予以描述,对生物神经元的结构和功能进行模拟,并用模型图给以表达。单个的人工神经元的功能是简单的,只有通过一定的拓扑结构将大量的人工神经元广泛连接起来,组成庞大的人工神经网络,才能实现对复杂信息的处理与储存,并表现出各种优越的特性。

人工神经网络图:人工神经网络图:

  神经网络结构:就数学模型而言,神经网络结构一般分为两大类,即层次型结构和互联型结构,层次型结构的神经网络将神经元按功能分为若干层,一般有输入层、中间层和输出层,各层顺序连接。输入层接受外部的输入信号,并由各输入单元传递给直接相连的中间层单元。中间层是网络的内部处理单元,与外部没有直接联系。神经网络所具有的模式变换能力,如模式分类、模式完善、特征提取等,主要是在中间层进行的。根据处理功能的不同,中间层可以有多层也可以为简单层。由于中间层单元不直接与外部输入输出打交道。故常将神经网络的中间层称为隐含层。输出层是网络输出运行结果并与显示设备或执行机构相连接的部分。

典型神经网络结构图:典型神经网络结构图:

  人工神经网络的特点和优越性:主要表现在几个方面:第一,具有自学习功能。例如实现实现图像识别时,只在先把许多不同的图像样板和对应的应识别的结果输入人工神经网络,网络就会通过自学习功能,慢慢学会识别类似的图像。自学习功能对于预测有特别重要的意义。预期未来的人工神经网络计算机将为人类提供经济预测、市场预测、效益预测,其应用前途是很远大的。第二,具有联想存储功能。用人工神经网络的反馈网络就可以实现这种联想。第三,具有高速寻找优化解的能力。寻找一个复杂问题的优化解,往往需要很大的计算量,利用一个针对某问题而设计的反馈型人工神经网络,发挥计算机的高速运算能力,可能很快找到优化解。第四,应用领域十分广泛,这些领域主要包括:模式识别、信息处理、知识工程、专家系统、优化组合、自动化控制,以及本文所探讨的金融市场程序量化交易模型构建等等。随着神经网络理论本身以及相关理论、相关技术的不断发展深入,神经网络未来的应用定将更加深入广泛。就金融领域自动化交易模型而言,笔者也只是试着探讨而已,有不足之处还望读者多多理解。第五,神经网络可以用作分类、聚类、预测等,通过历史数据的训练,神经网络可以学习到数据中隐含的知识,在问题中找到某些特征以及对应的评价数据,用这些数据来训练神经网络,进而达到自适应功能,其应用较广泛的就是BP神经网络。

  数学模型中常用的两种神经网络:在数学建模中,常用的神经网络主要有两种:一种是基于误差反转算法的前馈神经网络,即BP神经网络,主要用来实现非线性映射;另一种是SOM自组织特征映射神经网络(SOM),主要用来聚类和模式识别。它们两者在内在结构上有所区别,下面就分别对其进行简要说明:

  BP神经网络:人工神经网络有很多模型,但是目前应用较广泛的是前馈神经网络中的误差逆传播学习算法(Error Back Propagation),简称为BP神经网络。它是前馈神经网络中的核心部分。基本算法包括2个方面,即信息的前向输入和误差的反向输入,计算实际输出时是按从输入到输出的方向进行,而权值和阈值的修正从输出到输入的方向进行。其结构图如下:

BP神经网络基本结构图BP神经网络基本结构图

  BP网络结构是信号前向传播导入,经输入层到中间隐含层实现正向传播,若输出层得到期望值,则学习算法结束。若未得到期望值则反向传播,将误差信号按原连接通路反向计算,根据误差梯度下降法再调节前各层的权值和阈值,权值和阈值随着更多正向信息变量和反向信息变量的不断进入从而始终处于动态调节之中,目的就是使修改后的网络最终输出能接近最佳期望值。通俗点比喻就类似一个人的成长经历,在成长过程中不断纠正错误,不断吸取教训,还不断总结成功经验,以免下次再犯同样错误。其模型结构图见下:

BP网络结构BP网络结构

  在这里我想特别强调权值和阈值的概念,因为它们很重要,关系到网络最后的结果。权值和阈值是神经元之间的连接,将数据输入计算出一个输出,然后与实际输出比较,误差反传,不断调整权值和阈值。理论上而言,BP网络以其优良的非线性逼近性能,在模式识别、智能控制、非线性优化等领域都有大量应用,近年也有不少人用BP神经网络应用在股指期货日内短模自动化交易上。BP网络的理论优势主要表现在学习速度和泛化能力上,甚至不需要过多样本,较适合非线性特征,学习速度表现在满意地逼近训练样本所花费的时间上,泛化能力表现在对未训练样本的逼近程度上,既能够根据训练集的表现高度拟合未来数据即预测功能,这是一个神经网络是否优良的根本考验,BP神经网络在理论推导上似乎完全能做到。

  可是真的是这样吗?为什么很多运用BP网络神经模型构建起来的交易模型实践效果并非如训练集效果那样好甚至出现巨大误差呢?

   泛化能力并没有得到充分体现,这又是什么原因呢?就此笔者浅谈点个人看法如下:

  1、  很多人过于盲信BP神经网络的数据自适应纠错、数据容错和数据泛化能力,特别疏于对历史样本数据的收集、层次筛选及数据内含性质甄别,缺乏对研究标的样本数据含有的内在本质规律进行挖掘和体验,导致样本数据噪声过大、结构不合理不科学。通常而言,样本数据M增加,泛化能力增加。

  样本数据训练效果好,泛化效果也越好。但这种趋势有个极限和度,当达到某个极限时,随着训练能力的提高,预测能力反而下降,陷入两个极端,要么样本数据存在严重不足和缺陷,要么样本数据过多过细出现过拟现象。

  这两种现象都是学习了过多数据样本细节,过于注重数据现象,而不能反映样本内含有的本质性规律,这也是BP神经网络的缺陷,过大强调因数据而预测数据,过于放大自适应预测,却不注重样本数据内在性质上本质规律的挖掘,自然容易走偏,甚至在某些特定阶段拟合出错误的规律,尤其不适应中线趋势波段交易模型构建。

  2、  采用BP网络设计程序化交易模型很容易陷入“自下而上”的模型理念构建陷阱,导入过大数据噪声,这是程序化交易模型设计者要尽量避免的。

  通常而言,在程序化模型主体设计理念上分为“自上而下和自下而上两种”,前者是理念优先,后者是数据优先。后面会讲到它们之间的区别。

  3、  由于学习速率是固定的,因此网络的收敛速度慢,需要较长的训练时间。对于一些复杂问题,BP算法需要的训练时间可能非常长,这主要是由于学习速率太小造成的。

  4、  其次,BP算法可以使权值收敛到某个值,但并不保证其为误差平面的全局最小值,这是因为采用梯度下降法可能产生一个局部最小值。

  5、  网络隐含层的层数和单元数的选择尚无理论上的指导,一般是根据经验或者通过反复实验确定。因此,网络往往存在很大的冗余性,在一定程度上也增加了网络学习的负担。

  6、  网络的学习和记忆具有不稳定性。也就是说,如果增加了学习样本,训练好的网络就需要从头开始训练,对于以前的权值和阈值是没有记忆的。但是可以将预测、分类或聚类做的比较好的权值保存。

  基于上述原因,简单采用BP神经网络运用于金融市场的程序化交易模型的构建主体还是有一定的局限性,需要结合其他神经网络效果应该会更好。

  SOM自组织特征映射神经网络:生物学研究表明,人的大脑皮层中存在许多不同功能的神经网络区域,每个功能区域完成各自的特定功能,在接受特定信息刺激时也会做出相应特定的反应,这种特定细胞对特定信号的特别反应并不是天生的而是后天训练形成的。

  自组织特征映射神经网络模拟大脑神经系统功能,是一种无监督竞争试学习的前馈网络,在训练中能无监督自组织学习,它通过学习可以提取一组数据中的重要特征或某种内在规律,按离散方式进行分类,网络可以把任意高维的输入映射到低维空间,并且使得输入数据内部的相似性质表现为临近的特征映射,并保持其拓扑结构不变,这种分类反映了样本集的本质区别,大大简化了一致性准则中的人为因素。

  在多数情况下,人在认识的过程中没有预知的正确模式,人获得大量知识常常是靠“无师自通”,即通过对客观事物的反复观察、分析与比较,自行揭示其内在规律,并对具有共同特征的事物进行分类归类,对于人的这种学习方式,基于有导师学习策略的神经网络(BP)是无能为力的。

  所以,自组织神经网络的无导师学习方式更类似于人类大脑中生物神经网络的学习,其最重要特点是通过自寻找样本中的内在规律和本质属性,自组织自适应地改变网络参数与结构,这种学习方式大大拓宽神经网络在模式识别、分类、聚类方面的应用。自组织网络结构属于层次型网络结构,有多种类型。

  自组织特征映射是其中之一,它们的共同特点是竞争层。一般自组织神经网络是输入层、竞争层、输出层结构,输入层接受外界信号,向竞争层传输,竞争层负责对该输入模式进行分析比较、找出规律、正确分类。

SOM自组织神经网络结构图SOM自组织神经网络结构图

  产生模型过拟合的一般原因:

  A、数据抽样时没有足够正确考虑到市场基本特点,导致抽出的数据样本不能有效足够代表市场运行逻辑或基本特征(市场运行规律),这往往是BP网络模型所忽略的;

  B、数据样本噪音数据干扰过大,大到模型过分记住了噪音特征,反而忽略了真实的输入输出间的关系,即忽略了本质,模型设计始终没抓住核心价值;

  C、  在决策树模型搭建中,如果我们对于决策树的生长没有合理的限制和修剪的话,决策树的自由生长有可能每片叶子里只包含单纯的事件数据(event)或非事件数据(no event),可以想象,这种决策树当然可以完美匹配(拟合)训练数据,但是一旦应用到新的业务真实数据时,效果就不理想。样本训练集尤其关键条件不要过度细化,要适当限制和修剪。

  D、在建模时的“逻辑假设”到了模型应用时已经不能成立了。常用模型都是在假设的基础上才可以搭建和应用的,常用的假设包括:假设“历史数据可以推测未来,市场历史会重演”,假设业务环节没有发生显著变化,假设建模数据与后来的应用数据是相似的,等等。如果上述假设违反了业务场景或者环境发送了变化的话,根据这些假设搭建的模型就有可能无法有效应用。

  BP与SOM优劣:在金融市场中的量化模型构建中到底应采用BP还是SOM?这要看投资标的、交易理念及模型构建者的投资经验而定了,笔者个人认为SOM神经网络特征映射应更适合有一定投资经验和交易理念的人,这更有利于思考市场运动的本质,而非特定阶段的数据拟合,从而提前避免数据陷阱过拟合,更贴近实战性和适应性。

  所以SOM神经网络对模型构建者而言一般要求具备一定的投资理念和经验作为基础,也就是先理念后建模。具体而言,SOM神经网络首先在数学建模中根据广泛性的历史样本理化出性状,并对样本进行正确的分类和归类,通过对已知的样本所蕴含的分类知识进行学习、提炼出某种基本的规律和特征,再利用这种分类规律特征效验交易理念。

  SOM网络是直接从所提供的样本内部学习分类知识,提炼出蕴含在样本中的相关知识,并将这些知识储存在网络的连接之中即拓扑结构互联,利用这些知识可以对未知的样本进行归类,建立推理机,为了防止数据陷阱和过拟合,提炼出的样本特征规律,要放在不同的训练集测试并同时具有广度性和深度性。

  全智能程序化交易模型系统的构建思路:搞全智能程序化交易模型设计,是绝对离不开神经网络知识的运用的,当今的市场走势更加复杂多变,若想用一种过于简单的某个突破理念就想在当今变换复杂的市场面前盈利已成为历史,精明的交易者越来越多,波动特性越来越复杂多变,面对现今更加复杂变换的市场,必须要运用更加复杂的知识工具,才能不断适应市场。因此,数学模型中的神经网络知识运用必不可少。

  只是若单纯采用BP神经网络构建模型是有一定缺限的,它的作用主要体现在样本训练集阶段,SOM网络更多可以达到检验理念和优化理念作用,因为理念一定是本质性的(下面会具体阐述),若程序化模型完全依靠数学模型神经网络而忽略市场运动的本质性,很容易陷入过拟合状态和数据陷阱,实盘效果一般不会理想,这是程序化交易的另一弊病。

  因此,如何在运用数学模型神经网络知识的同时又要避免陷入数据陷阱应是程序化模型设计的主要方向。

  程序主体设计理念:要解决上面的问题,首先要解决程序化设计理念问题,这是决定模型方向的问题,否则很容易陷入数据陷阱。在程序化主体设计理念上,一般分为“自上而下”的理念构建和“自下而上”的理念构建。“自上而下”的理念构建是先有交易理念,这个交易理念往往是建立在多年实战基础上,是经年累月反复的市场观察、体会、领悟和实践得出的初步经验,这个经验具有普适性、本质性,以此作为模型理念主要架构,再通过理念反推导构建交易系统,并将其程序化。

  比如索罗斯的交易系统,便是由他的反射理论推导构建出的交易程序。相反,一个无经验的新手,就很容易陷入数据陷阱和过度拟合状态,因为他们普遍不具备“自上而下”构建模型理念的能力经验,即对市场缺乏深刻的认识、领会及经验,只能盲目“自下而上”构建模型理念。

  而“自下而上”的建模理念往往不具有未来适应性或者实盘误差大,只是纯粹依据一堆某个特定时期的数据理化出的所谓知识和训练集,往往导入过多无关的、非本质的数据变量,偏离模型核心价值,导致数据噪声过大,没有考虑到模型关键本质性的特征和信息及其由此构建起来的投资理念,这种纯数学训练集构建起来的模型一到真实的实盘运用场景就很容易表现不佳,因为市场波动特性和数据样板会随着时间的推移而出现复杂多变状态,市场不会出现2个完全一模一样的走势,历史会重演但从来不是简单的重复。这也就是为什么当下很多程序化交易模型实盘效果不佳的根本原因,过于注重数据理论推导忽略本质理念。

  交易系统的优化:有些程序化交易者反对优化,因为优化过度会使交易系统适用于过去而无用于将来,即优化陷阱。其实这也是一个“度”的问题,过于简单的模型已经不适应当下及未来市场,过于复杂的模型又有可能陷入过度拟合陷阱,因此,我个人认为这里的关键就是看你采用的是数据优化还是理念优化,自下而上的模型理念设计往往是数据优化。

  打个比方,一个交易系统设计的理念是顺势突破交易法,如海龟交易法(突破20周期高低点),数据优化就是寻找突破N周期的最合适数值,而理念优化则是寻找比单纯的突破法更优秀更高效的交易思维或理念或组合。

  任何模型交易理念的雏形首先是基于个人实战经验、观察和逻辑思考得来,而这种理念还需要通过海量数据检测才可以进一步检验出交易理念的优劣,而这个过程是离不开数学模型神经网络尤其SOM网络知识运用的,如合理抽样、样本理化、特征提炼、知识提炼、分类等,在这个过程中就可以进一步检验交易理念雏形是否正确以及进行必要的修正优化。

  运用“层次型拓扑结构和SOM神经网络”应该就可以达到这个目的,找到交易理念的不足和优劣之处,去其糟粕取其精华,进而才能进一步检验和确认模型的核心理念价值,这个核心交易理念是决定模型是否具有未来适应性和实盘性的保障,因为市场波动特性虽然多变,但万变不离其终,人类的本质特性几百年从未改变,市场也是一样。

  系统整合:一套成熟优秀的程序化交易模型一定是系统整合的结果,交易过程是一个完备的有机体系,包括:模型构建基本理念和方式、交易策略、方向识别、信息处理、信号传输、执行、止盈止损离市策略、风险控制/稳定性控制等等,每个子系统都不是各自单打独斗,单个子系统的不合理设计也会影响到整个交易系统的表现,整体系统表现往往取决于各个子系统最佳协调组合的结果,形成一套完整运行的交易体系,这个体系是否优秀可以从三个方面检验,即“外推、性质和量化”,“外推”是检验模型在实盘前是否具有盈利前景和未来适应性的一个重要方法,一般分为时间外推和品种外推,即把模型放在不同数据集、不同抽样时间段、多角度多层次进行交叉回测,放在多个品种上进行多品种程序回测;所谓“性质”就是要避免三个方向,一是尽量避免超高频率交易;二是尽量避免自下而上构建模型交易理念;三是模型设计内容要以接近实战为原则,信号执行方式最好采用收盘价模型,必须要考虑到市场实际情况及滑点损失和交易成本因素等;所谓“量化”就是模型最终要有数据做支撑,用回测指标说话,任何模型首先必须要经得起过去历史数据的回测检验并得到各种满意的量化指标,

  如:年化收益率、盈利率、本金回撤、动态权益回撤、动态损益回撤、胜率、盈亏比、夏普比率、交易成本及滑点预估,最后还要观察这些指标在不同的回测阶段是否具有明显的变化规律等等,任何模型若连历史数据回测都无法过关,那可以肯定不会适用于未来,虽然回测过关并不代表一定适应未来,但一套成熟优秀的模型一般在设计阶段都会提前过滤和规避掉实盘中可能面临的误差,也会经得起实盘考验。

  交易系统的实盘使用和维护:市场行情波动特征也是会变的,主要表现在波动特性和交易环境上。举例来说,2002到2005年,只要有个最单纯最简单的均线系统,就可以发财。2005年以后这样简单的系统获利已经不稳定,而09年以后,基本就不可能再用来获利了。

  又如2015年2月前,股指日间成交跳价单位一般不大都在1个点以内,止损控制很容易执行且不会产生过大滑点,可是到了2015年5月后,日间成交跳价单位变化甚至达到5个点、10个点也很普遍,这必然会大大增加日内高频交易的滑点成本,若不修正模型必然不会适应。前几年,做股指高频交易的人都发财了,一年十倍的都有,但是现在呢,高频交易已经属于自杀了。

  为什么?

  因为市场上精明的交易者越来越多了,当你的对手还在用肉搏的时候,你有一把手枪就可以称王,但是现在,别人都开上飞机了。以前套利盈利很容易,但是现在套利盈利越来越难,套利空间越来越少,因为参与套利的人越来越多且都是电脑程序化自动识别,稍有点套利空间立马就有交易者以最快的速度修补价差的不合理性,价差空间会被市场迅速修补,盈利机会越来越少。

  另外一个重要问题就是交易环境也是会变化的,比如今年,期货夜盘的大量推出,导致不同时间段的交易分布不再均匀,开收盘时间出现了扭曲,很多交易系统便不能适应了。所以交易系统必须时时对模型效果进行跟踪维护和修补,甚至必要时直接宣布它死亡。市场历史会不断重演这是毋庸置疑的,但是其表现方式又不完全简单重复,表现方式是会变化的,环境的不同会导致局部的差异,所以交易系统的跟踪维护绝对是必要的,模型也不是万能不变的,即使本质上的东西也会在某些特定环境发生阶段性变异。

相关阅读

0