期货程序化交易策略研发Word文档下载推荐.docx

上传人:b****5 文档编号:18133416 上传时间:2022-12-13 格式:DOCX 页数:38 大小:607.15KB
下载 相关 举报
期货程序化交易策略研发Word文档下载推荐.docx_第1页
第1页 / 共38页
期货程序化交易策略研发Word文档下载推荐.docx_第2页
第2页 / 共38页
期货程序化交易策略研发Word文档下载推荐.docx_第3页
第3页 / 共38页
期货程序化交易策略研发Word文档下载推荐.docx_第4页
第4页 / 共38页
期货程序化交易策略研发Word文档下载推荐.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

期货程序化交易策略研发Word文档下载推荐.docx

《期货程序化交易策略研发Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《期货程序化交易策略研发Word文档下载推荐.docx(38页珍藏版)》请在冰豆网上搜索。

期货程序化交易策略研发Word文档下载推荐.docx

2.3MATLAB2012B介绍7

2.4相关策略技术现状8

第3章需求分析9

3.1策略功能需求分析9

3.2性能需求11

第4章策略详细设计12

4.1策略开发流程图12

4.2阿拉法模块介绍12

4.2.1理论驱动型13

4.2.2数据驱动型14

4.3交易成本模块介绍14

4.4风险控制模型介绍15

4.4.1控制风险的类型15

数据的重要性15

4.5技术分析技术17

4.5.1日本蜡烛图17

4.5.2日本蜡烛图的画法17

4.5.3日本蜡烛图的形态17

4.5.4代码编辑蜡烛图19

4.6技术指标19

4.6.1技术指标概述19

4.6.2技术指标分类19

4.7阻力位和支撑位21

4.8本章小结22

第5章程序化交易策略实现23

5.1日内交易策略——DRT25

5.1.1策略开发流程图25

5.1.2策略介绍25

5.1.3策略测试结果26

5.2日内交易策略——DRT(加仓)29

5.2.1策略开发流程图29

5.2.2策略介绍29

5.2.3策略测试结果30

5.3日内交易策略——R_Breaker32

5.3.1策略开发流程图33

5.3.2策略测试结果34

5.4基本面策略——开盘后一分钟交易策略36

5.4.1策略思想36

5.4.2策略开发流程图36

5.5统计套利策略37

5.5.1统计套利的定义38

5.5.2统计套利的思路38

5.5.3统计套利风控39

5.5.4统计套利策略39

5.6本章小结39

第6章程序化交易展望41

6.1CTA41

6.1.1CTA概述41

6.1.2CTA策略41

6.2投资组合的分散化42

6.3异构策略42

6.3.1同构策略43

6.3.2交易时间框架43

6.4策略的系统测试43

6.5本章小结44

参考文献45

作者简历47

致谢48

图目录

图‎3.1程序化交易策略功能结构图10

图‎4.1交易策略流程图12

图‎4.2实体长线18

图‎4.3长影线18

图‎4.4Boll通道20

图‎4.5MACD21

图‎5.1DRT流程图25

图‎5.2DRT交易策略测试结果26

图‎5.3DRT收益曲线27

图‎5.4DRT(加仓)流程图28

图‎5.5DRT(加仓)交易策略29

图‎5.6DRT(加仓)收益曲线30

图‎5.7原理图31

图‎5.8R_Breaker流程图32

图‎5.9R_Breaker策略图33

图‎5.10R_Breaker收益曲线34

图‎5.111minVol交易36

图‎5.12统计套利37

图‎6.1投资策略分散化40

 

表目录

表‎2.1数据类型6

表‎5.1仿真交易结果表27

表‎5.2仿真交易结果表30

第1章绪论

1.1课题背景

程序化交易系统是指设计人员将交易策略的逻辑与参数在电脑程序运算后,并将交易策略系统化。

当趋势确立时,系统发出多空讯号锁定市场中的价量模式,并且有效掌握价格变化的趋势,让投资人不论在上涨或下跌的市场行情中,都能轻松抓住趋势波段,进而赚取波段获利。

程序化交易的操作方式不求绩效第一、不求赚取夸张利润,只求长期稳健的获利,在市场中成长并达到财富累积的复利效果。

经过长时期操作,年获利率可保持在一定水准之上。

 

程序化交易系统的构成就是:

极其开放模型(策略)的设计、风险动态管理技术、误差矫正反馈检验准确率、快捷的下单速度。

这四项组成了整个程序化交易系统。

1.2国内外状况

1.2.1程序化交易的国外发展状况

20世纪90年代以及2000年以后资本市场以及金融衍生品市场的长足发展,在87年股灾中被指为罪魁祸首的程序化交易,终于被历史肯定了它的价值,人们终于也像当时从认为股票和期货为洪水猛兽到接受它们并发挥它们的经济作用一样,开始逐步的走进了程序化交易的世界、量化投资的世界。

量化投资及程序化交易大师西蒙斯默默无闻的在十几年间大量使用量化系统的交易方法,取得了比巴菲特、索罗斯等市场传奇更高的年收益率。

在这漫长的岁月中,程序化交易一直悄无声息的为投资者不停的赚进大把的钞票,也在润物无声的在为各交易所的交易量做着贡献。

据统计欧美市场中有70%的交易是由程序化交易完成的,如果将程序化交易的概念再定义的宽泛一些的话,可能这个比例会更高。

而在亚洲台湾、韩国来看的话,程序化交易量占比在50%左右。

从另外的角度,国外的期货CTA也就是期货的资产管理业务,交易量的70%左右都是由程序化交易来实现。

1.2.2程序化交易的国内发展状况

国内证券市场只有20年的历史,相比欧美以及亚太其他发达地区市场成熟度还有很大差距,不仅如此,国内市场的一些特性也使程序化交易在国内发展受到限制。

首先,国内的交易场所比较单一,股票只在交易所进行交易。

而国外的情况则是大量的流动性存在于交易所以外,比如大大小小的暗池、ECN等。

即使同一只股票也会在多个交易所交易,目前NYSE股票只有25%左右的交易量是通过NYSE执行的。

国外很多执行算法就是为这种条件量身定做的,比如各种智能路由算法,而在国内这些算法都没了用武之地。

其次,国内市场的T+1交割制度使得大量日内交易策略不能得以实施,高频交易策略更是无从谈起。

除此以外,股票市场不允许卖空、缺乏做市商制度、可供交易的产品简单、交易指令不够完善等,都不利于程序化交易策略的开展。

尽管如此,程序化交易在国内的发展前景依然良好。

自2010年4月沪深300股指期货被正式推出以来,大量的程序化套利策略纷纷出炉并创造出惊人的交易量。

在国内的期货交易所主要有大连期货交易所,郑州期货交易所,上海期货交易所和中金交易所。

中金所主要以金融期货为主,包括已经上市的股指期货和即将上市的国债期货两个品种,其他三个交易所交易的是商品期货,包括农产品如豆粕、豆油、棉花、白糖等,化工产品如天胶、强塑、PTA、甲醇等,金属产品如铜、螺纹、黄金、白银等。

以交易量来看,中金所的股指期货虽然只有一个品种,交易量已经占到了所有期货产品的60%左右,如果国债期货推出以后,中金所的交易量能超过交易量总额的85%以上,而且这两种金融属性的期货产品很适合使用程序化交易进行包括套利,趋势和高频等策略进行交易。

1.3程序化交易特点

1.3.1程序化交易的优点

1、客服弱点

使用程序化交易可以在交易过程中可以克服人性的弱点,这是程序化交易最大的优点,也是我们喜爱程序化交易的最主要原因,人是有人性的弱点的,人的情绪化因素,贪婪,恐惧,做事不果断,赌性等等因素都会让一个人在正在交易的时刻突然改变原有的计划,而这种行为是不断重复发生的。

就如德国的哲学家心理学家叔本华说过:

一个人在相同的时间和环境条件下会犯同样的错误,是不可避免的,这就是人的劣根性。

我们和市场做交易,还不如说我们是不断的和自已的心魔做斗争。

而程序化交易是一切功课在事先,电脑是不折不扣的执行者,应当说几乎百分之百的做到知行合一.这样也让人从盘面的辛劳中解脱出来。

2、突破极限

使用程序化交易可以突破人的生理极限.我们都知道人的反应速度是有限的。

我们交易从大脑所想到手动需要一段时间来完成,而电脑程序交易显然比人工快的多,特别是当我们为了分散风险而进行多品种组合时,人的能力是有限的,例如选择品种多一点更能降低交易风险,在同时持有四个以上的商品品种,当行情激烈多品种同时发生交易信号时,那一个人的行为是顾及不了的,但电脑可以轻松完成.程序化交易可以让你远离期货,享受生活。

1、不能表达全部的交易思想

只有系统性交易者才能做到程序化交易,而其它另类的交易方法,没办法用程序化交易来完成,这就把一部分人挡在了门外。

2、巨大的回测风险

有些程序化交易模型从长期看是盈利,但是短期内可能会出现巨幅的资金回撤。

部分投资者对程序化交易认识比较模糊,认为程序化交易就是一台赚钱的机器。

永远盈利。

这些投资者在这种资金回撤下就可能难以继续进行程序化交易,从而错过后期出现的大幅盈利。

3、容易加剧金融风险

1987年美国股市暴跌的罪魁祸首一度被认定是期现市场的程序化交易。

当时的情况是股票期货低于股票价格,指数套利者将买入期货并卖出股票,如果股票价格下跌的幅度远远不够,投资组合保险公司将卖出期货合约,造成期货市场新一轮的下跌,这导致指数套利者进一步卖出股票,从而形成自我强化抛售的下跌周期。

不管1987的股灾是否是程序化交易造成,但是期间程序化交易至少起到了推波助澜的作用。

国内股指期货一而再,再而三的推迟上市时间,监管部门或许也是处于这样的担忧。

1.4本课题研究的目标

主要是通过交易开拓者平台进行程序化交易的策略开发,采用语法类似Pascal的TBL语言开发实现的。

策略功能主要包括策略模型、资金管理、风险控制、交易成本管理等。

通过交易所提供的实时数据进行交易,通过平台的数据库内的数据进行历史测试。

文章首先简介涉及的相关技术与基本知识,然后阐述策略的功能,再具体分析策略各个模块的功能及具体实现方法。

1.5本章小结

程序化交易伴随着计算机技术的发展,已经有30多年了,很多国外的大型资产管理机构通过使用程序化交易来控制巨额资金,同时交易全球的资本市场,取得了稳定的回报。

第2章交易平台与关键研发技术

2.1程序化交易平台

从广义上讲,量化交易是指投资者利用计算机技术、金融工程建模等手段将自己的金融操作用很明确的方式去定义和描述,用以协助投资者进行投资决策,并且严格按照所设定的规则去执行交易策略(买卖、价格、数量等)的交易方式。

按照数学模型的理念和对计算机技术的利用方式,量化交易可以进一步细分为自动化交易(AutomaticTrading)、量化投资(QuantitativeInvestment)、程序化交易(ProgramTrading)、算法交易(AlgorithmTrading)以及高频交易(HighFrequencyTrading)。

这五种量化交易方式的侧重点各有不同,是量化交易技术发展到不同阶段的产物,也是不同量化交易用户群的不同交易方式。

量化交易平台是指能分别满足上述五种交易方式的平台,要求其从交易系统的行情和基础数据、交易和执行、策略研发和运营三个主要方面既要做到大而全,也要做到深而精。

这对目前大中型金融机构的IT以及实际运营部门是很大的挑战,同时也提供了发展机遇。

目前的量化交易平台可以从开发语言、技术架构、系统架构、策略方向、交易方式等几个方面[2]。

2.2交易开拓者交易平台

1、TradeBlazer公式介绍

TradeBlazer公式是一种专为分析金融数据-时间序列而设计的高级语言,它提供直接、强大的框架将交易思想转化为用户函数、公式应用等计算机能够识别的代码。

TradeBlazer公式是一门语法简单但是功能强大的语言,它能帮助创建自己的交易和技术分析工具。

通过组合普通的公式应用和简单的语句,TradeBlazer公式能够很容易并且直接的用简单语句表达自己的交易规则和行为。

交易开拓者能够读取开发的TradeBlazer公式,在历史价格数据基础上进行评估,并能自动执行特定的交易动作,将交易思想转化为实际的交易操作。

2、Bar数据

所谓的Bar数据,是指商品在不同周期下形成的序列数据,在单独的每个Bar上面包含开盘价、收盘价、最高价、最低价、成交量及时间。

期货等品种还有持仓量等数据。

所有的Bar按照不同周期组合,并按照时间从先到后进行排列,由此形成为序列数据,整个序列称之为Bar数据。

3、叠加数据

交易开拓者的超级图表支持商品叠加的显示,当叠加的图表调用各项公式时,可能有需要使用叠加的商品对应的基础数据,针对这样的需求,TradeBlazer公式提供了叠加数据的支持。

例如新建一个超级图表模块,其主数据对应的商品为:

cu1303,在此基础上,我们叠加了cu1304和cu1305。

此时,根据叠加操作的先后顺序,cu1303为Data0,cu1304为Data1,cu1305为Data2,在TradeBlazer公式中,我们可以通过Data1.Close(),Data2.Vol()类似方法调用叠加Bar数据,叠加Bar数据的函数和Bar数据一样,只是需要在调用的时候加上数据源。

也可以使用Data0.Open()来调用Bar数据,默认情况下,可以省略对主数据源的指定,为了方便,一般直接使用Open()来代替Data0.Open()。

4、数据类型

TradeBlazer公式支持有三种基本数据类型:

数值型、字符串、布尔型。

引用数据类型为了通过用户函数返回多个值,序列数据类型为了对变量,参数进行回溯。

因此,数据类型共有九种,如下表所示:

表‎2.1数据类型

名称

说明

Bool

布尔型。

BoolRef

布尔型引用。

BoolSeries

和周期长度一致的Bool型序列值。

Numeric

数值型。

NumericRef

数值型引用。

NumericSeries

和周期长度一致的Numeric型序列值。

String

字符串。

StringRef

字符串引用。

StringSeries

和周期长度一致的String型序列值。

方法可以被声明接受可变数目的参数。

缺省的参数传递方法是对基本数据类型进行值传递。

ref关键字可以用来强迫一个变量通过引用传递,这使得一个变量可以接受一个返回值。

Series关键字也能声明引用传递过程,与ref不同的地方是,它指明这个参数并不需要初始值。

2.3MATLAB2012B介绍

MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。

它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

1、系统结构

MATLAB系统由MATLAB开发环境、MATLAB数学函数库、MATLAB语言、MATLAB图形处理系统和MATLAB应用程序接口(API)五大部分构成。

2、开发环境

MATLAB开发环境是一套方便用户使用的MATLAB函数和文件工具集,其中许多工具是图形化用户接口。

它是一个集成的用户工作空间,允许用户输入输出数据,并提供了M文件的集成编译和调试环境,包括MATLAB桌面、命令窗口、M文件编辑调试器、MATLAB工作空间和在线帮助文档。

3、数学函数库

MATLAB数学函数库包括了大量的计算算法。

从基本算法如加法、正弦,到复杂算法如矩阵求逆、快速傅里叶变换等。

4、语言

MATLAB语言是一种高级的基于矩阵/数组的语言,它有程序流控制、函数、数据结构、输入/输出和面向对象编程等特色。

5、应用程序接口

MATLAB应用程序接口(API)是一个使MATLAB语言能与C、Fortran等其它高级编程语言进行交互的函数库。

该函数库的函数通过调用动态链接库(DLL)实现与MATLAB文件的数据交换,其主要功能包括在MATLAB中调用C和Fortran程序,以及在MATLAB与其它应用程序间建立客户、服务器关系。

2.4相关策略技术现状

目前国内资管业务程序化方向主要以TB、文华财经、MC等交易平台作为开发测试平台,这些平台的好处是界面清晰友好、数据连续性全、期货合约可以自动换月,针对Bar数据上的研发简单易行。

缺点是这些平台只能提供最近一周的Tick数据,实盘交易时候数据不稳定、交易费用昂贵等问题,不能进行微秒量级上的策略开发和实施。

交易平台国内一般选择赢佳、CTP108、理财牛等直接和上期技术开发平台数据相对接的平台,这些平台缺点是界面并不友好,数据需要自己录制。

优点是可以使用C++,MATLAB等,代码实施后交易速度快,费用低。

2.5本章小结

本章是策略开发平台的基础知识,系统地讲解TB和matlab策略开发交易平台、机制、开发环境等内容。

为策略的开发打下了一个良好的理论基础。

第3章需求分析

3.1策略功能需求分析

随着国内资管业务的开放,资管公司通过公募渠道,信托渠道发放大量的CTA业务类产品,为了能更好的管理些资金,使得程序化交易变得极为重要。

根据对程序化交易策略的需求,主要可以概括为以下几点:

1、数据的录取、存储和清洗

数据是策略开发的基础,所有的策略开发都是围绕着历史真实的行情数据进行研究开发的。

数据的来源主要是通过数据供应商的购买和自己录制。

购买的数据一般会出现数据缺失或者数据不真实,这样会导致开发出的策略不稳定。

自己录制数据量较少,只有通过几年的数据录制才能达到开发策略需要的数据标准,成本较高。

2、高胜率和高盈亏比的策略

交易策略是将几个模块合并,包括阿拉法策略、成本模型、风险模型、资金管理模型等。

策略的实施首先要考虑交易费用,平均每成交一次的成本在万分之五到千分之一,再加上滑点等,成本有可能达到千分之五。

如果每天一个策略交易2次,全年手续费就需要本金的100%。

其次如何提高胜率和盈亏比,减少交易次数。

相同概率的胜率和盈亏比不能帮助交易者赚取一丝的利润,只有在胜率和盈亏比的积大于1的情况下,策略才有意义。

再次在何位置加仓,减仓,在何位置止损和止盈,一般情况下,已有仓位盈利达到加仓位置时,胜率会比首次开仓高,但是盈亏比就会下降。

3、交易策略的快速执行

股指期货每秒钟有2个Tick,1个Tick有时候会出现1-2个点的行情,能否快速的执行交易策略,是控制交易滑点很重要的一个步骤。

同时快速执行会使策略在实际运行和开发测试得到的结果想接近,提高准确性。

4、交易策略组合应用

行情一般分为趋势和震荡行情,策略也就分为趋势和震荡策略,震荡策略的目的是为了使资金曲线平滑,趋势策略是为了使资金曲线上升。

多种策略组合应用,有效的回避大的资金回撤,使得收益更加稳健。

这个策略要实现的功能如下:

(1)使用5倍手续费,来应对实盘交易可能出现的滑点损失。

(2)最大回撤控制在30%以内。

(3)R平方达到85%以上,资金曲线显得平滑稳健。

(4)交易次计数要在100次以上,以达到有效统意义。

(5)胜率和盈亏比要达到1.1以上。

(6)年化收益要超过60%,使得预计亏损和预计盈利在1:

2。

交易策略一般包括:

阿拉法模型、风险控制模型、资金管理模型、交易成本模型。

通过对数据的研究来开发交易程序[1]。

图‎3.1程序化交易策略功能结构图

阿拉法模块:

实现进仓和出仓的依据,通过技术指标,关键阻力位,支撑位,量价配合等方式实现。

资金管理模块:

实现仓位的大小,根据资金量,保证金,最大承受风险等确定仓位大小。

风险控制模块:

每次交易所能承受的最大风险。

交易成本模型:

交易中产生的各种磨损对交易策略影响的大小

执行模型:

主要是应用于开平仓的控制

3.2性能需求

首先要求程序要完全可靠,可以应付各种由于系统问题产生的错误,比如初始网络失败等。

要求提前设想到类似的尽可能多的可能发生的事件,做出相应的应对措施,并向用户提交简单易懂清晰明白的提示信息。

策略要有良好的容错性,当行情数据出现极端情况时候,可以自动停止交易,或者系统本身出现问题时要能以最快的速度退出策略,避免发生程序假死现象。

要求程序对所运行之系统的硬件条件要求尽可能低,运行时内存占用尽可能小,响应速度要尽可能快。

并且不发生内存泄漏之类影响系统运行的错误事件。

并且要求易于维护及扩展。

所以应该采用模块化开发,各个模块之间不要有太多的耦合,以免维护困难。

第4章策略详细设计

4.1策略开发流程图

整体流程图如图4-1所示:

图‎4.1交易策略流程图

4.2阿拉法模块介绍

阿拉法是指扣除市场基准回报以后的投资回报,或者说是仅仅有投资者决策所增加或减少的那部分价值。

追求阿拉法回报的策略,本质上就是投资组合的资产配置决策及设置其头寸规模的择时决策者。

这种策略的一个核心就是,没有永远好的金融产品,也没有永远差的金融产品,或者说,没有什么金融产品值得一直持有,也没有什么金融产品永远不值得一看[1]。

阿拉法模型的类型:

理论驱动和数据驱动。

4.2.1理论驱动型

理论驱动模型:

从一些符合经济学理论对市场行为的解释出发,构建理论模型,然后检验这些理论是否可以成功预测未

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1