想做程序化交易前要做的准备
admin
|金融理论与量化分析知识
程序化交易以金融资产定价和量化分析的理论和方法为基础。所有的程序化交易策略的交易思想都是根据相关的金融资产定价理论、金融市场行为理论以及相关的量化分析方法为基础制定的。我们对金融资产的价格决定、金融市场参与者的行为决定及其影响没有一个比较深刻的理解,我们制定的交易策略可能就是片面的,隐含极大风险的。程序化交易只能根据过去和现在的信息进行决策,是一种事前决策。一旦下单,要想获得收益或回避风险,就必须交易方向与未来价格走势一致。未来是不确定的,怎样根据过去和现在较为准确的预测未来?这就需要相关的理论和方法的指导。程序化交易需要把交易策略思想变为计算机可以分析、决策和执行的指令,因此,交易策略必须是可以清晰量化的,而非模糊的定性。比如,在“高抛低吸,波段操作”中,何为高,何为低,这必须有一个准确的数量界定的方法,特别是波峰低谷在事后虽然是明晰的,在事前却是未知的。因此,总结历史规律的量化分析方法为我们制定程序化交易策略提供了基本的方法论指导。
简单而实用的证券市场量化分析方法就是价格变动的技术分析法,包括趋势分析、支撑阻力线分析、技术指标分析、波动分析等。其中,为了程序化交易需要重点掌握技术指标分析法。多种多样的技术分析指标可以为开发交易策略提供构想并在决定入市和离市时间点上也会提供帮助。如果只利用价格开发交易策略的话,因表现力不足很难再继续制定新的交易策略。相反,如果充分利用价格波动的技术分析指标的话,将更加容易地开发出新的交易策略。
在利用技术分析指标方面,尤为重要的是不能因为是经常使用的指标而忽略它。许多人认为现在广为使用的技术分析指标不准确。那么,它们对于程序化交易是否有用呢?长时间一直被使用的指标可以认为是得到交易员的广泛认可的,也反映是最为有用的。每个技术分析指标都具有自己的特点。现阶段我们知道的指标就多达数百个,因此在众多的指标里先分析哪些指标就是一个非常头疼的问题。但是,技术分析指标大致可以分为几种类型,其中我们只要重点掌握经常使用的移动平均线、MACD、RSI、随机指标、DMI、ADX等几种指标,其他的指标也可以迅速掌握。只要先着重掌握经常使用的技术分析指标,然后可以逐渐向新的指标领域扩展。学习技术分析指标的过程中最为重要的不是背诵计算公式,而是理解指标的构成原理和背景。通过上述方法掌握的技术分析指标相关内容,会成为开发交易策略的原动力。
除了常用的技术分析指标外,较为复杂的量化分析方法是设计较为复杂的程序化交易策略的理论基础。常用的方法包括统计分析中的回归分析、方差分析、波动率分析;资本资产定价模型、资产组合模型、期权定价模型、期货定价模型、组合套利模型、价差套利模型等。
计算机编程能力
程序化交易是利用计算机把所有的交易用系统化的规则自动处理的过程,因此需要把自己勾勒出来的交易策略用计算机程序实现出来。这是把交易策略转换为计算机能够理解的语言的过程,因此需要掌握一定的计算机编程能力。利用计算机语言对交易策略编程的过程对于刚刚接触到程序化交易的人来说是最为困难的事情。不仅需要一定的计算机编程能力,而且必须熟悉该交易系统的计算机编程语言。虽然大多数的程序化交易平台系统的编程语言的基本语法结构是相通的,但毕竟各个系统平台的编程语言的语法和函数还是存在一定的差异。因此,在进行程序化交易策略的编程之前,我们必须先学习其编程语言。当我们将在一种交易平台系统上使用的交易策略移植到另一种交易平台系统上使用时,我们需要了解两种编程语言的语法和函数差异,将旧的语法和函数转换为新的语法和函数。对于没有计算机编程基础的人来说,熟练掌握交易系统的计算机语言是比较困难的,但更为困难的是把交易策略客观地编辑为计算机程序的过程。第一次开发交易策略的交易员为了交易策略编程通常会使用图表或技术指标分析、趋势线分析、前高点/前低点分析、支撑阻力线分析、背离(Divergence)分析等等。上述方法具有的致命弱点就是主观性。比如,对出现双重底时入市的规则编程中,需要明确第一次见底和第二次见底的幅度并且要明确双重底的间隔和高度等等。上述方法可以依据分析师的主观判断而出现诸多不同之处,很难用客观的数据来定型。因此,在第一次使用计算机语言编辑交易策略时,选择主观性较强的分析方法不如利用技术分析指标等客观性较强的分析方法来编辑基本的交易规则更为容易。
程序化交易平台
进行程序化交易必须拥有一个与经纪商主机连接,能够实时接收行情信息、编辑交易策略、评估策略效果、运行交易策略、下达交易指令并可以进行人工检测和干预的程序化交易平台。通过该平台,投资者可以开发、评估和运行自己的程序化交易策略系统,实现其程序化交易。目前有许多计算机证券期货行情系统和交易系统,虽然可以实时显示行情、分析行情和人工下单交易,但它们不能够运行交易策略系统执行程序化交易。另外一些能够进行复杂的量化分析和决策的计算机系统(如Eviews,Matlab等计量分析软件)却因为不能接受实时行情信息或不能直接向经纪商的交易系统下达交易指令,因而不是合格的程序化交易平台。作为大型的机构投资者,他们往往会有专门的计算机编程人员开发专门的程序化交易平台和交易策略系统。作为普通的个人投资者和小的机构投资者,则只能够选择一些公用的并可与经纪商交易系统连接的程序化交易平台来开发和运行交易策略,实施程序化交易。程序化交易平台系统的基本功能模块如图2-3所示。只有具有这些基本功能的平台系统才是程序化交易可以使用的平台系统。

图2-3 程序化交易平台系统的基本功能模块