一、程序化交易是什么?
程序化交易, 也称自动化交易, 是指通过计算机程序辅助完成交易的一种交易方式。 程序化交易,可以使用简单的程序化交易专用语言也可以使用复杂的数据处理工具,还可以使用专业的编程语言。程序化交易,主要强调在交易实现的手段上使用的是计算机程序自动检测和执行,是一种下单交易工具,与策略本身的开发和优劣无关。
二、量化交易的特征
量化交易具有可测量、可复现、可预期的特征。可测量,是指量化交易分析指标具有可准确描述的确定性,在确定量纲的情况下,指标的数字表示具有唯一性。可复现,是指量化交易分析指标具有历史不变性,只要采用的分析方法不变,原始信息来源不变,不论在什么时候去做分析,其结论都是一致的,不会随着人的主观感受的改变而改变。
成功的量化交易系统开发需要遵循适当的开发流程,确保每个开发流程的质量和最终系统整合的有效性。
寻找成功的量化交易策略是构建优秀量化交易系统的基础。
量化策略思想大致来源于以下几个方面: 经典理论、逻辑推理、经验总结、数据挖掘、机器学习等。不论基本面还是技术面,都可以使用量化的方法进行分析,进而得出量化交易策略。比如,在基本面上,国内生产总值(GDP)增幅、货币发行量增幅、供需平衡表等都可以使用量化方法进行描述和分析;在技术面上,移动平均线、指数平滑移动平均线(MACD)等绝大部分技术分析指标都是量化策略思想来源。
(一)传统经典理论
很多量化投资策略思想都来源于传统的经典投资理论,例如经典的商品期货技术分析主要内容有技术分析的理论基础、道氏理论、图表简介、趋势的基本概念、主要反转形态、持续形态、交易量和持仓兴趣、长期图表和商品指数、移动平均线、摆动指数和相反意见、日内点数图、三点转向和优化点数图、艾略特波浪理论、时间周期等。 这些经典理论有的有具体指标和具体的应用理论,有的只有理论,需要根据理论生成具体应用指标,来完成策略的测试检验,所以经典投资理论可以通过量化的思路,将理论中的具体逻辑量化成指标或者事件形成交易信号,通过信号的优化测试来实现经典理论的投资理念,这个方式可以有效地实现经典理论,同时也能由原来的经典理论衍生出周边的投资方式,它是量化策略发展初期的主流模式。
(二)逻辑推理
逻辑推理的策略思想大部分来自宏观基本面信息,其量化策略思路是通过对宏观信息的量化处理,整理出符合宏观基本面信息的量化模型 比较典型的量化策略例子有行业轮动量化策略、市场情绪轮动量化策略、上下游供需关系量化策略等 这类策略思路的来源非常广泛,数据一般没有标准化,比较难形成标准。现在许多对冲型基金都有类似的思路生成量化策略产品。
(三)经验总结
经验总结是量化策略思想的另一个主要来源在有量化策略交易之前,市场上已经存在了大批有经验的投资人士,其中不乏长期稳定收益的佼佼者,所以,他们对市场的看法和交易思路成了量化策略开发人员的模仿对象,经验交易者也愿意把一些他们觉得相对固化下来、可获得稳定收益的交易策略通过量化的方式最后能利用机器自动交易,交易者只做好监控就行了。这样可大大减少交易时所耗的精力。在此前提下,一批和经验交易者合作的量化策略团队出现了。他们通过和经验丰富的交易者不断地沟通和讨论,将经验交易者丰富的经验以量化的思路整理到量化策略中。
(四)数据挖掘
数据挖掘技术,通过对高维度的数据进行分析整理,把量化思路提升到一个应用层次,将一些隐藏在高维度数据中的规律和信息挖掘出来,最终形成量化交易策略。大数据时代产生了很多数据挖掘技术,将数据挖掘技术应用在量化策略里面是顺理成章的事情。目前,应用的数据挖掘模型主要有分类模型、关联模型、顺序模型、聚类模型等,数据挖掘方法主要有神经网络、决策树、联机分析处理、数据可视化等。
分类模型的主要功能是根据数据的属性将数据分派到不同的组中。在实际应用过程中,分类模型可以分析分组中数据的各种属性,并找出数据的属性模型,确定哪些数据模型属于哪些组。这样就可以利用这些模型来分析已有的数据,并预测新数据将属于哪个组。
(五)机器学习
机器学习是研究计算机怎样模拟或实现人类的学习行为 以获取新的知识或技能,重新组织已有的知识结构,使之不断改善自身的性能。机器学习系统通过利用提供的信息,修改已有的知识库,来提高学习系统的执行部分完成任务的效率,执行部分根据知识库完成分析任务,同时把获得的信息反馈给机器学习部分。在量化策略研究的应用中,环境、知识库和执行部分围绕的核心工作是量化策略研究分析,将已有的筛选好的较优秀的量化策略库作为机器学习的基础知识库,从当前正在发生的金融环境信息中接受信息,由执行部分做出判断,给出策略操作信息,记录策略操作的效果,同时反馈给量化策略学习部分用来修改完善已有的策略基础知识库。
量化交易策略的构建首先必须具备比较完备的数据库。这个数据库需要含有量化策略涉及的所有数据,主要包括基本面/财务数据、交易数据,以及与行业、市场、板块相关的指标数据等。
量化数据库搭建的步骤如下:
首先是收集数据,将收集到的数据进行数据清洗 确保数据的准确性和一致性。以行情数据为例,准确性是指收集到的数据需要进行反复对比确认,定期对收集到的数据进行对比检验,确保策略形成所需要的数据的准确性。一致性是指策略测试和策略实现的数据需要同源,行情数据从交易所发出到各期货公司,因为期货公司接收服务器的本地时间设置以及接收延时,不同期货公司转发出来的行情数据或多或少会存在不一致的可能,所以在数据库搭建的过程当中就需要将数据的一致性考虑进来,用于策略历史测试和统计的数据最好和将来用于量化交易策略实现的数据保持一致,这样出来的量化策略测试才更可靠。
其次是数据库架构的设计。在确保数据准确性和一致性的基础上,第一步就需要可以灵活方便地调用整理好的数据,这是最基础的一步,其中涉及数据颗粒度的设计。比如,行情数据、不同周期的行情数据,根据不同策略类型,从长周期量化策略需要的月、周、日为周期的行情数据,到短周期量化策略需要的小时、分钟、秒为周期的行情数据,甚至到高频量化策略需要的逐笔成交的行情数据,单从涉及的行情数据来说,量化策略所需要的数据的深度和广度都大大超过传统策略交易的数据范畴。
最后是数据库需要集成一些算法函数。这些函数包括简单通用函数、数值分析、统计、数据访问以及金融证券相关等功能,更有些高端的数据库搭建集成了人工智能类算法,比如遗传算法、蚁群算法、支持向量机等,这一部分相对高端,对一般性的金融机构要求偏高。直接的集成到数据库是一个较大的算法工程,有些机构采用外部算法引擎的调用之后返回结果的方式来实现人工智能类算法,但是随着越来越多的数学、物理、计算机方面的人才进入量化策略研究中来,已经有很多机构的数据库集成了这类算法,将简单的数据库提升到量化策略的研究开发平台。