新書推薦:
《
可转债——新手理财的极简工具
》
售價:HK$
66.7
《
新加坡教育:神话与现实
》
售價:HK$
98.9
《
“口袋中的世界史”第一辑·冷战中的危机事件
》
售價:HK$
299.0
《
绝美的奥伦堡蕾丝披肩编织
》
售價:HK$
181.7
《
狂飙年代:18世纪俄国的新文化和旧文化(第二卷)
》
售價:HK$
177.0
《
万有引力书系 纳粹亿万富翁 德国财富家族的黑暗历史
》
售價:HK$
112.7
《
中国常见植物野外识别手册:青海册
》
售價:HK$
78.2
《
三星堆对话古遗址(从三星堆出发,横跨黄河流域,长江流域,对话11处古遗址,探源多元一体的中华文明)
》
售價:HK$
89.7
|
編輯推薦: |
编辑推荐
程序化交易特指给定交易标和交易策略,完全由计算机执行的交易。国内进行程序化交易的投资者已经不在少数,但是大多数集中在期货品种领域。这本书以自主研发的天语程序化交易系统和微量网平台为基础,介绍了程序化交易的原理、策略、语言和进阶方法,不失为入门投资者的优秀参考教材。
|
內容簡介: |
内容推荐
在大数据金融的众多应用中,量化投资无疑是其中耀眼的明星,包括了各种股票、期货、期权的投资策略,其中程序化交易又是量化投资的核心实现手段。程序化交易特指给定交易标的和交易策略,完全由计算机执行的交易。国内进行程序化交易的投资者已经不在少数,但是大多数集中在期货品种领域。
本书涵盖程序化交易的方方面面。全书共包括5章,分别介绍了程序化交易的基础、平台、语言、策略和进阶方法。其中,第1章基础部分包括程序化交易的定义、业务逻辑和市场现状;第2章平台部分分别对典型程序化交易平台、新一代的量邦天语平台和微量网的互联网云交易平台进行了介绍;第3章策略开发语言部分对通用性计算机语言在策略开发中的应用和新一代策略开发Q语言进行了介绍;第4章程序化交易策略部分对数个经典策略进行了详细介绍;第5章在前4章的基础上对程序化交易进阶的重要方面分别进行了介绍。
考虑到广大读者的知识背景,本书绝大部分章节并不需要专业的知识积累即可阅读。当然,对金融产品(股票、期货、贵金属)交易机制的了解会有助于理解程序化交易的相关特征,有一定编程基础的读者能够更快上手策略的实际开发,良好的数理统计基础也将简化进阶章节中数学计算和算法的阅读难度。本书不仅对程序化交易初学者来说有很好的引导作用,对于程序化交易实践人员、程序化交易平台研发人员也是一本内容全面的指导手册。另外,对于金融机构从业人员,本书对行业关键技术进行了系统性的介绍,有助于其深入了解市场和开展相关业务。
|
關於作者: |
作者简介
冯永昌
北京量邦信息科技股份有限公司董事长。创立了微量网、量客投资、对冲汇等公司。北京大学光华管理学院统计学博士,中国人民大学统计学学士,美国芝加哥大学访问学者,央行博士后。中国期货业协会互联网金融委员会顾问。
景亮
北京大学商务智能研究中心、北京大学对冲基金实验室高级研究员。中国科学技术大学应用物理学士,美国印第安纳大学物理硕士,美国德克萨斯大学应用统计博士。旅美留学工作多年, 具有丰富的统计学行业应用和量化投资研究经验。
易晓磊
北京量邦信息科技股份有限公司总经理。北京大学软件工程硕士,南京大学软件工程学士,和君商学院互联网金融与大数据首届毕业生。曾担任Adobe公司系统工程师,明意投资管理有限公司首席架构师,茂募资产管理有限公司首席架构师。
|
目錄:
|
目 录
第1章 程序化交易基础... 1
1.1 什么是程序化交易... 1
1.1.1 广义的程序化交易... 1
1.1.2 狭义的程序化交易... 4
1.2 程序化交易业务讲解... 7
1.2.1 程序化交易模型研发... 8
1.2.2 程序化交易模型生产... 33
1.2.3 程序化交易模型实盘运维... 35
1.2.4 程序化交易模型管理... 38
1.2.5 程序化交易模型产品化... 41
1.3 国内程序化交易的现状... 42
1.3.1 交易所概述和核心交易规则.. 43
1.3.2 平台和语言... 51
1.3.3 程序化交易基金... 53
第2章 程序化交易平台... 54
2.1 典型平台简介和比较... 54
2.1.1 MetaTrader 55
2.1.2 MultiCharts. 62
2.1.3 从Bar数据到Tick数据... 67
2.2 天语程序化交易平台... 74
2.2.1 天语平台的整体架构及
运行逻辑... 74
2.2.2 天语研究版介绍... 76
2.2.3 天语交易版介绍... 95
2.3 云交易平台与策略超市... 103
2.3.1 传统程序化交易平台... 104
2.3.2 云交易平台... 105
2.3.3 策略超市... 106
2.3.4 微量网提供的服务... 107
2.3.5 小结... 110
第3章 程序化交易语言... 112
3.1 通用性计算机语言... 112
3.1.1 数据处理模块... 113
3.1.2 策略开发模块... 113
3.1.3 研究评测模块... 114
3.1.4 交易风控模块... 115
3.1.5 小结... 116
3.2 Q语言开发基础... 117
3.2.1 变量... 118
3.2.2 运算、类型转换及字符串
操作... 134
3.2.3 控制结构:条件,循环,
嵌套... 140
3.2.4 函数的定义和调用... 148
3.2.5 类的定义和调用... 150
3.3 Q语言开发进阶... 153
3.3.1 常用函数... 153
3.3.2 常用指标类... 160
3.3.3 策略代码结构... 171
3.3.4 编程规范... 173
3.3.5 注意事项... 181
第4章 程序化交易策略... 183
4.1 程序化交易策略概述... 183
4.1.1 历史简介... 183
4.1.2 策略结构... 185
4.1.3 策略类别... 189
4.2 Hans123
|
內容試閱:
|
第1 章| 程序化交易基础
1.1 什么是程序化交易
1.1.1 广义的程序化交易
程序化交易是金融市场上博弈技术和信息技术发展到高级阶段的必然产物,要深刻地理解程序化交易的本质,我们有必要先来回顾一下金融交易的发展历程。在人类的金融史上,股票的出现为企业融资提供了新型手段(通常把股票的发行场所叫作一级市场)。然后,股票在交易所或其他柜台市场的流通(通常把股票的交易流通场所叫作二级市场)保证了其合理价格的发现过程,也保证了一级市场参与者的流动性需求。与此同时,期货的出现为农产品、金属及金融产品的现货(如沪深300指数)参与者提供了标准化的套期保值风险管理手段,而期货在交易场所的连续性交易同样保证了其合理价格的发现过程。后来,黄金、白银及其他大宗商品等现货交易借鉴了股票和期货交易方式,也采用了连续交易方式,并配以保证金交易、多空双向交易、延期交易补偿等交易机制,进一步在更高的频率上确保现货的价格发现过程。连续交易的规则一般分为“做市商规则”和“连续竞价规则”。做市商规则需要由资金雄厚、信誉良好、技术合格的金融机构担任做市商(Market Maker),作为市场交易参与方的交易对手,为市场提供流动性。连续竞价规则通过事先设定好的交易规程序化交易实战:平台、策略、方法则连续接受报单,并使其和订单簿(Order Book)中的存量订单实时撮合,按照撮合规则进行成交。在国外金融市场,做市商规则是比较盛行的交易方式;而在国内市场,目前所有交易所均采用竞价交易的方式。我们需要注意的是,不管是股票、期货还是现货,连续交易的核心价值在于通过市场参与各方的快速换手实现上述品种的价格发现过程。对于在金融市场中参与交易的各方,一般来说,他们的第一交易动机在于获利,第二交易动机在于风险控制,第三交易动机在于获取流动性。
通过交易获利的主要方式在于交易价差,虽然股票多头交易可能伴随一定比例的分红,但连续交易的主要获利点更多的是通过低买高卖或者高买低卖的价差实现。同时投资者对价格走势的判断方式和判断频率不同,也对获利途径有着深刻的影响。两个极端的例子是长期价值投资者和高频交易者。长期价值投资者通过对公司发展前景或品种需求增长的研究和信仰,完全忽视价格的短期波动,买入持有股票,直至足够长久后再做卖出。高频交易者则通过对实时价格的高频率分析或价格盘口动向的研判,在毫秒级时间维度上作出投资决策并发出交易指令,获取极短期中的价格波动
收益。而对于风险控制型的交易,一般可以分为主动交易和被动交易两种情况。主动交易包括现货持有者或需求者通过反向交易期货规避价格波动风险。被动交易包括品种持有者在价格下跌超过心里底线时进行的止损交易。流动性交易指投资者为获取品种流动性而进行的交易,也分主动和被动两种情况。投资者决定买入品种,但因为担心冲击成本而进行的算法交易属于主动的流动性交易。投资者因为短期的现金需求而了结头寸出场,或因达不到经纪公司或者交易所的保证金要求被强行平仓出场时,属于被动的流动性交易。
在图1-1 中,我们给出了根据市场参与者交易动机和诱因类型划分的订单类型六宫格,并将市场上常见的交易进行分类。需要指出的是,不同类型的交易动机只是针对一笔具体的交易而言,在不同时点上投资者的交易动机会不断转换。
在这些不同的订单类型中,根据交易对复杂性和即时性的不同要求,又可以区分为以下几种类型:
(1)可以用手动完成的交易。
(2)最好用机器完成的交易。
(3)必须用机器完成的交易。
譬如一般的价值投资,因为对交易的复杂性和即时性要求都很低,完全可以用手动完成;套保交易对即时性的要求不高,但可能涉及套保手数的测算及跨市场交易等复杂性问题,所以最好用机器来完成下单过程;高频交易和算法交易对复杂性和即时性的要求都很高,必须用机器来完成;止损交易或者强平交易,往往对时效性要求极高,所以必须用预设的程序完成。从广义上来讲,所有用预设的程序所完成的交易都叫作程序化交易。因此,广义的程序化交易包括高频交易,算法交易,自动执行的套利交易、套保交易和对冲交易,限价单价值投资交易,限价单止损交易,交易所或经纪公司的自动强平交易等。图1-2展示了Trade Group在2009 年对国外广义程序化交易者交易动机的调研结果。
纽约证券交易所(NYSE)基于自身的业务特点和需求将程序化交易定义为包括15 只以上指数成分股且金额超过100 万美元的交易。可以看出纽约证券交易所的定义仅仅是对证券交易的数目和金额复杂性作出的区划,其定义依然属于广义程序化交易的范畴,精确地讲应该叫作大额篮子股票交易。
程序化交易实战:平台、策略、方法
图1-2 算法交易动机调研
(来源:2009 Annual Algorithmic Trading Survey, Trade Group)
1.1.2 狭义的程序化交易
狭义的程序化交易(Programming Trading)也叫作系统交易(Systematic Trading),是量化投资大家族中的一员,具体是指将特定的交易思想设计成完整的逻辑运行体系,然后使用合适的计算机语言编写成计算机程序,设置合适的标的和参数之后,使用程序化交易平台运行程序,由计算机进行自动交易。以一个经典策略为例:根据传统的交易思想,10 日均线表征市场短期走势,60日均线则是公认的大盘“生命线”。一般10 日均线和60 日均线双双上扬表征大盘已经企稳且短期形成强烈上涨趋势;10 日均线掉头向下意味着大盘短线走弱,可能形成中期顶部;60 日均线掉头向下意味着一个重要顶部已经形成,已经不适合参与指数交易。
虽然上述交易思想具有坚实的技术分析和实战基础,但是当投资者使用时,依然存在下述问题有待解决:
Q1:如何构建一个完整的交易系统?
Q2:为什么一定是10 日和60 日,不能是11 日和65 日?
Q3:大家都使用同样的参数,策略会不会失效,会不会被“庄家”或者机构反向利用?
Q4:如何应对上涨时的假突破和下跌时的洗盘情况?
Q5:如何将自己的风险偏好有机融入策略?
Q6:交易时,是使用实时价格来判断买入卖出信号,还是使用某个周期的K 线收盘价进行判断?
Q7:实盘交易时,如果价格运动过快,突破形成后来不及下单怎么办?
Q8:该策略的历史表现如何?
程序化交易可以回答和解决上述问题。
Q1:如何构建一个完整的交易系统?
A1:一个完整的交易系统,包括入场、出场、过滤、止盈、止损、加仓、减仓等要素。比如,可以设定入场条件为指数的10 日均线和60 日均线双双上涨,出场条件为指数的10 日均线和60 日均线双双下跌。
Q2:为什么一定是10 日和60 日,不能是11 日和65 日?
A2:形成交易系统时,投资者需要对策略参数适当“参数化”,即把10 和60 抽象成“短周期m”和“长周期n”,然后对一定范围的m和n 分别测试研究。研究的原则是既不能过分优化,寻找历史业绩最好的m 和n,也不能对经验参数以外的参数表现完全不闻不问。最好是寻找经验参数周围一个比较接近的其他参数,既避免了过分优化,也防止了参数被过分使用。
Q3:大家都使用同样的参数,策略会不会失效,会不会被“庄家”或者机构反向利用?
A3:对于趋势交易而言,如果大家都使用同样的策略和参数,一开始可能会因为跟风买入而放大策略的效果,但随后引发的出场条件链式触发也会加速策略的失效,因此需要后验研究,并避免过于趋同的参数。粗糙和暴力简化的技术分析交易可能会程序化交易实战:平台、策略、方法被“庄家”反向利用,尤其对于流动性不高的“庄股”。还有一些品种,比如黄金,由于进行趋势交易的投资者过多,所以往往会遭遇假突破。
Q4:如何应对上涨时的假突破和下跌时的洗盘情况?
A4:需要设置入场和出场的过滤条件,比如短均线的上涨或下跌超过1.5%,长均线的上涨或下跌超过0.5%;再比如要求短均线的上涨超过一日且长均线上涨再入场。
Q5:如何将自己的风险偏好有机融入策略?
A5:形成交易系统时,投资者的风险偏好可以在4 个方面体现。
(1)入场条件的宽松与否:为了防止市场下行风险,可以将入场条件设置为10日均线和60 日均线同时上涨,出场条件设置为10 日均线或60 日均线下跌,这样出场条件更容易触发。
(2)策略止损的设定:策略止损也叫作跟踪止损,比如实时监控账户净值,如果账户净值从高点回落超过3%,哪怕还没有触发出场条件,也强行卖出离场。
(3)仓位比例、加仓、减仓等资金管理的设定:从审慎角度出发,建仓时可以按照10%的资金等份分批入场,即第一次触发入场条件买入10%,第二次触发再买入10%,直至达到单一策略参与的上限,比如30%。但只要一次触发出场条件或者止损条件,则全部卖出离场。
(4)账户层面的硬止损:有时候策略的出场或止损设置可能比较迟钝,需要在账户层面设置硬止损,如果账户权益下跌超过5%,则全部卖出离场。
Q6:交易时,是使用实时价格来判断买入卖出信号,还是使用某个周期的K 线收盘价进行判断?
A6:需要根据交易目的具体设置,比如均线可以用今日的实时值和昨日收盘价的均线值进行比较。
Q7:实盘交易时,如果价格运动过快,突破形成后来不及下单怎么办?
A7:对于快速的价格运动,手动交易是不行的,必须使用预设的程序进行自动交易,即程序化交易。
Q8:该策略的历史表现如何?
A8:需要对预设的策略进行历史数据回测研究,并评估绩效表现。最后,总结一下程序化交易的优点。
(1)实现任意的交易思想。
(2)将交易模式系统化、制度化,排除人性的心理障碍,确保交易方法和操作的一致性。
(3)完全由计算机进行操作,突破了人力手动交易的诸多限制,保证了交易的及时和高效。
(4)降低交易成本和冲击成本。
(5)提高交易员工作效率。
(6)隐藏交易痕迹。
(7)使得进行高频率、操作多标的、使用多策略的复杂交易成为可能。
注意:本书下面涉及的程序化交易除非明确说明,一般特指上面定义的“狭义的
程序化交易”。
1.2 程序化交易业务讲解
经过上一节的介绍我们可以看到,程序化交易的技术优点如下:
(1)将交易模式逻辑化、系统化、制度化,并进行严密细致的后验研究。
(2)排除人性的心理障碍,事先设定策略的风险偏好,并确保交易方法和操作的一致性。
(3)完全由计算机进行操作,突破了人力手动交易的诸多限制,保证了交易的及时和高效,使得高频率地操作多标的和使用多策略的交易成为可能。此外,对于机构投资者,程序化交易还有一些独特的商务优点:
|
|