《经典程序化交易策略培训教材.doc》由会员分享,可在线阅读,更多相关《经典程序化交易策略培训教材.doc(44页珍藏版)》请在金锄头文库上搜索。
1、经典程序化交易策略目录日内策略】Dual Thrust1【经典策略】海龟交易系统5原版海龟交易法则8【长线策略】Aberration30【日内策略】R-Breaker32【震荡+趋势混合策略】恒温器策略36Asctrend42日内策略】Dual Thrust策略:Dual Thrust类型:日内Dual Thrust与R-Breaker一样,曾长期排名Future Trust杂志最赚钱的策略。该策略在形式上和开盘区间突破策略类似。不同点主要体现在两方面:Dual Thrust在Range(代码中的浮动区间)的设置上,引入前N日的四个价位,使得一定时期内的Range相对稳定,可以适用于日间的趋势
2、跟踪;Dual Thrust对于多头和空头的触发条件,考虑了非对称的幅度,做多和做空参考的Range可以选择不同的周期数,也可以通过参数K1和K2来确定。 当K1时,多头相对容易被触发,当K1K2时,空头相对容易被触发。因此,投资者在使用该策略时,一方面可以参考历史数据测试的最优参数,另一方面,则可以根据自己对后势的判断,或从其他大周期的技术指标入手,阶段性地动态调整K1和K2的值。代码(金字塔语言):TB,WH3,大智慧,matlab,EVIEW (R2)/策略:Dual Thrust/类型:日内/中间变量input:n(1,1,100,1),K1(0.7,0.1,1,0.1),k2(0.7
3、,0.1,1,0.1),nmin(10,1,100,1),ss(1,1,100,1);CYC:=barslast(dateref(date,1)+1;昨高:=callstock(stklabel,vthigh,6,-1);昨低:=callstock(stklabel,vtlow,6,-1);昨收:=callstock(stklabel,vtclose,6,-1);开盘价:=valuewhen(cyc=1,open);HH:=hhv(昨高,n);/N日high的最高价HC:=hhv(昨收,n);/N日close的最高价LC:=LLV(昨收,n);/N日close的最低价LL:=LLV(昨低,n)
4、;/N日low的最低价浮动区间:=max(HH-LL,HC-LL);/range上轨:开盘价+k1*浮动区间;下轨:开盘价-K2*浮动区间;t1:=timeopentime(1) and timet2:=time=closetime(0)-nmin*100;手数:=ss;/交易条件开多条件:=c上轨 and holding=0;开空条件:=c1,手数,market);开空:buyshort(开空条件 and t1 and cyc1,手数,market);收盘平多:sell(t2,手数,market);收盘平空:sellshort(t2,手数,market);这个策略已有很多个版本,这个版本引入
5、了前N日的四个价位,以及K1、K2参数。默认参数设置与现有策略一致,为前一日,K1=k2=0.7.【经典策略】海龟交易系统海龟交易系统相对而言是一个比较早的交易系统了,也是世界著名的机械交易系统,对于想学习程序化系统交易的投资者来说是一个很好的入门学习材料。一套完整的机械的交易系统都有明确并且唯一的交易信号,例如两条均线就构成了一个交易系统,只不过它更好的说是属于技术指标的范畴。而完整的交易系统所持头寸(仓位)调整和风险控制是交易系统的核心,而海龟交易系统就是这样一套交易系统。 海龟交易系统简介:交易信号:海龟的交易信号其实很简单,当价格创20或50天新高就买入,当价格创10天或20天新低就卖
6、出,时间上具体的参数使用者也可以自己调整。头寸管理和风险控制策略:海龟交易系统由总资金风险百分比和N波动的系数策略来决定交易头寸的多少,用N确定什么时候加仓、加多少,同时用2N来确定头寸的保护性损止。N每7天调整一次(五个交易日)。这就是海龟交易系统的交易策略,属于一套完整的交易系统。下面是海龟交易系统测试版的编程源码。以下代码为金字塔语言: Buy(BB)是买入的股票的数量(含加码部分总共最多4次),Sell()是卖出全部的股票数量。总资金以100万为例。 海龟交易系统修正版:该版本主要改进之处是在N的算法上直接用语句实现,因为SMA函数首次的N即PDN取值是不海龟交易系统所说的20日简单均
7、线,所以会造成误差,而改进后更符合原意。我们在这里说的N、PDN等等,对假如没看过海龟法则的投资者而言可能无法理解,所以在了解源码之前可以先看看海龟法则。以下是修正版的程序:/turtleJ:=1;I:=1;P:=1;TR:=MAX(H,C)-MIN(L,C);IF BARPOS=20 THEM BEGINIF BARPOS=20 THEN N:=MA(TR,20);IF P=5 OR BARPOS=20 THEN BEGINN:=(19*N+TR)/20;P:=1;ENDP:=P+1;IF H=HHV(H,20) & J=1 THEN BEGINHOW:=CASH*0.01/N;BPK(HO
8、W);J:=0;ENDL:=LLV(L,10) & J=0 THEN BEGINSP;J:=1;I:=1;ENDIF C-ENTERPRICE=(N/2) & i=(2*N) THEN SP;END原版海龟交易法则 2009-11-01 23:19:17 标签: 无 阅读对象:所有人导言 海龟实验 理查德.丹尼斯想弄清楚伟大的交易员是天生造就的还是后天培养的。 一个老生常谈:天性还是培养? 1983年年中,著名的商品投机家理查德.丹尼斯与他的老友比尔.埃克哈特进行了一场辩论,这场辩论是关于伟大的交易员是天生造就还是后天培养的。理查德相信,他可以教会人们成为伟大的交易员。比尔则认为遗传和天性才是
9、决定因素。 为了解决这一问题,理查德建议招募并培训一些交易员,给他们提供真实的帐户进行交易,看看两个人中谁是正确的。 他们在巴伦氏、华尔街期刊和纽约时报上刊登了大幅广告,招聘交易学员。广告中称,在一个短暂的培训会后,新手将被提供一个帐户进行交易。 因为里克(理查德的昵称)或许是当时世界上最著名的交易员,所以,有1000多位申请人前来投奔他。他会见了其中的80位。 这一群人精选出10个人,后来这个名单变成13个人,所增加的3个人里克以前就认识。1983年12月底,我们(译注:作者当时是参加培训的学员之一)被邀请到芝加哥进行两周的培训,到1984年1月初,我们开始用小帐户进行交易。到了2月初,在我
10、们证明了自己的能力之后,丹尼斯给我们中的大多数人提供了50万至200万美元的资金帐户。 学员们被称为海龟(丹尼斯先生说这项计划开始时他刚刚从亚洲回来,他解释了自己向别人说过的话,我们正在成长为交易员,就象在新加坡他们正在成长为海龟一样)。-斯坦利.W.安格瑞斯特,华尔街期刊,1989年9月5日 海龟成为交易史上最著名的实验,因为在随后的四年中我们取得了年均复利80%的收益。 是的,里克证明了交易可以被传授。他证明了用一套简单的法则,他可以使仅有很少或根本没有交易经验的人成为优秀的交易员。 继续往下读。从下一章开始,接下来就是丹尼斯传授给新手们的那一套完整的法则。第一章 完整的交易系统 海龟交易
11、系统是一个完整的交易系统,它包括了交易的各个方面,实际上没有给交易员留下一点主观想象决策的余地。 大多数成功的交易员都使用机械交易系统。这并非偶然。 一个良好的机械交易系统可以自动运行整个交易程序。对于交易员在交易中必须制定的每项决策,系统都会给出答案。该系统使交易员更容易进行一致性的交易,因为有一套明确说明应该做什么的法则。交易的机械化就是不留给交易员自己进行判断。 如果你知道自己的系统能够长期赚钱,你就比较容易接受信号,并且在亏损期间按照系统信号进行交易。如果你在交易中依赖自己的判断,你可能会发现恰恰应该勇敢时你却胆怯,而恰恰应该小心翼翼时你却勇气十足。 如果你有一个机械交易系统在发挥作用
12、而且你一致地跟随它,那么,尽管可能有来自于一长串亏损或者巨额赢利的内心的挣扎,你的交易都将是一致的。自信、一致性以及由彻底检测过的机械交易系统所保证的纪律,是大多数能够赢利的交易员成功的关键。 海龟交易系统是一个完整的交易系统。其法则覆盖了交易的各个方面,并且不给交易员留下一点主观想象决策的余地。它具备一个完整的交易系统的所有成分。 一个完整系统的成分 一个完整的交易系统包含了成功的交易所需的每项决策: 市场-买卖什么 头寸规模-买卖多少 入市-何时买卖 止损-何时退出亏损的头寸 离市-何时退出赢利的头寸 策略-如何买卖 市场-买卖什么 第一项决策是买卖什么,或者本质上在何种市场进行交易。如果
13、你只在很少的几个市场中进行交易,你就大大减少了赶上趋势的机会。同时,你不想在交易量太少或者趋势不明郎的市场中进行交易。 头寸规模-买卖多少 有关买卖多少的决策绝对是基本的,然而,通常又是被大多数交易员曲解或错误对待的。 买卖多少既影响多样化,又影响资金管理。多样化就是努力在诸多投资工具上分散风险,并且通过增加抓住成功交易的机会而增加赢利的机会。正确的多样化要求在多种不同的投资工具上进行类似的(如果不是同样的话)下注。资金管理实际上是关于通过不下注过多以致于在良好的趋势到来之前就用完自己的资金来控制风险的。 买卖多少是交易中最重要的一个方面。大多数交易新手在单项交易中冒太大的风险,即使他们拥有其他方面有效的交易风格,这也大大增加了他们破产的机会。 入市-何时买卖 何时买卖的决策通常称为入市决策。自动运行的系统产生入市信号,这些信号说明了进入市场买卖的明确的价位和市场条件。 止损-何时退出亏损的头寸 长期来看,不会止住亏损的交易员不会取得成功。关于止亏,最重要的是在你建立头寸之前预先设定退出的点位。 离市-何时退出赢利的头寸 许多当作完整的交易系统出售的交易系统并没有明确说明赢利头寸的离市。但是,何时退出赢利头寸的问题对于系统的收益性是至关重要的。任何不说明赢利头寸的离市的交易系统都不是一个完整的交易系统。