收藏 分享(赏)

文华-第10讲-如何优化你的交易策略.ppt

上传人:cjc2202537 文档编号:1024673 上传时间:2018-06-04 格式:PPT 页数:73 大小:4.52MB
下载 相关 举报
文华-第10讲-如何优化你的交易策略.ppt_第1页
第1页 / 共73页
文华-第10讲-如何优化你的交易策略.ppt_第2页
第2页 / 共73页
文华-第10讲-如何优化你的交易策略.ppt_第3页
第3页 / 共73页
文华-第10讲-如何优化你的交易策略.ppt_第4页
第4页 / 共73页
文华-第10讲-如何优化你的交易策略.ppt_第5页
第5页 / 共73页
点击查看更多>>
资源描述

1、文华财经 研究部,课程内容,一、如何优化交易策略二、拓展思路,一、如何优化交易策略,1、减少盘整行情中的交易次数2、优化进出场点3、及时进行止损,1、减少盘整行情中的交易次数,很多趋势模型,在行情出现趋势的时候,都可以很好的抓住趋势,实现盈利,但长期运行下来,最终的结果却是小赚甚至亏钱,问题出在哪里?原因在于,盘整行情中模型在不断的反复交易,而盘整中的交易都是不盈利甚至亏损的,行情中绝大部分又都是盘整行情,长时间的连续小亏损导致之前的利润全部回吐,注:图片经过反色处理,并非白色时尚风格,PANZHENG 判断当前行情是否为盘整注:返回1:表示盘整,返回0:表示不是盘整。,作用一:增加收益率简单

2、的均线模型,MA1:=MA(C,5);MA2:=MA(C,10);CROSS(MA1,MA2),BPK;CROSS(MA2,MA1),SPK;AUTOFILTER;这段行情中实现盈利77040元,加入PANZHENG函数,在盘整行情中不开仓做多代码如下:,MA1:=MA(C,5);MA2:=MA(C,10);CROSS(MA1,MA2)做多实现盈利179580元,,加入PANZHENG函数,在盘整行情中不开仓做空代码如下:,MA1:=MA(C,5);MA2:=MA(C,10);CROSS(MA2,MA1)加入盘整函数后,做空亏损44100元,未加入盘整函数前,这段行情中多空共实现盈利77040

3、元加入盘整函数后,做多实现盈利179580元,做空亏损44100元 这段行情中多空共实现盈利135480元加入盘整函数后,盘整行情交易次数大量减少,从而减少了亏损总盈利提升76%,作用二:减小最大回撤均线模型,PTA指数,2010.1.1至今的测试结果代码如下: MA10:=MA(C,10);CMA10,BPK;/价格大于10周期均线,做多CMA10,胜率提升14%盈利率提升37%最大回撤减少45%年化盈利率提升21%单次交易盈利能力提升40%减少盘整行情中的交易次数后,不仅仅盈利能力得到提升,模型的稳定性同时也得到大幅度提升,大大提高了模型的可执行性,2、优化进出场,大部分趋势模型采用趋势突

4、破或者趋势跟踪的方法捕捉趋势,通常情况下,信号都出现在一根较长的k线上,如果使用收盘价模型,入场点在下根k线的开盘价上,因此会错过突破这根长k线的最佳入场时间,无形中损失掉很大一笔到手的利润;出场时也是如此,那么怎么才能以最优的价格进出场,得到更多的利润呢?如何实现在k线没有走完之前进出场呢?,指令价模型,收盘价模型,红圈位置,由于k线当根涨幅较大或者第二根跳空,损失较多利润甚至盈利变为亏损,指令价模型具有明显的进出场优势,红线为买开仓价绿线为卖平仓价,如何实现更具有优势的价格进场 - - -CHECKSIG,模型中加入CHECKSIG函数,可以实现出信号立即发出委托。,信号复核的意义:指令价

5、模型,如果策略设计思路不够严谨,可能会产生信号出现后,再次消失的情况,称之为信号忽闪,即开错仓或者平错仓,这时可以使用信号复核进行恢复持仓的操作。CHECKSIG_SEC 设置信号复核确认方式(基础数据为TICK数据)CHECKSIG_MIN 设置信号复核确认方式(基础数据为1分钟数据)用法:CHECKSIG_SEC(SIG,MODE1,TIME1,MODE2,TIME2);SIG为信号,MODE1为信号确认方式,TIME1信号确认时间,MODE2信号复核方式,TIME2信号复核时间。几种典型的信号复核确认方式对应的写法举例:CHECKSIG_SEC(SIG,A,0,D,0);/出信号立即下单

6、,K线走完复核CHECKSIG_SEC(SIG,A,N,D,0);/出信号N秒确认信号下单,K线走完复核CHECKSIG_SEC(SIG,A,N,C,0);/出信号N秒确认信号下单,不进行复核CHECKSIG_SEC(SIG,B,N,D,0);/K线走完前N秒确认信号下单,K线走完复核CHECKSIG_SEC(SIG,B,N,C,0);/K线走完前N秒确认信号下单,不复核,模型中加入CHECKSIG,在实现指令价模型的同时,可以针对不同指令实现不同的信号复核方式,让交易策略的实现更加灵活。如:CHECKSIG_SEC(BK,A,0,D,0);/出信号立即下单,K线走完复核买开仓信号出现,立即发

7、出委托,K线走完如果信号存在,则无需进行处理。如果K线走完信号消失,则恢复原状,即平掉多单。,例:交易中开仓多采用k线走完前N秒下单,以保证进场准确性,避免因行情波动而频繁开平仓。从而增加交易成本平仓多采用出信号立即下单执行,保证单子能够及时出场,避免持仓过久导致无法及时止损和降低盈利空间。,源码:,MA5MA(C,5);MA10MA(C,10);RSV:=(CLOSE-LLV(LOW,9)/(HHV(HIGH,9)-LLV(LOW,9)*100;K:=SMA(RSV,3,1);D:=SMA(K,3,1);EVERY(MA5MA10,5),如何实现指令价模型,模型中加入CHECKSIG,根据M

8、IN或SEC基础数据,补充数据,补充1分钟数据或tick数据,基础数据为1分钟,在k线图上点击右键,补充1分钟数据,加载回测,Tick数据默认后台自动下载,是不是所有的模型用指令价效果都要优于收盘价呢?答案是否定的。究竟用指令价效果好还是收盘价效果好,还要根据交易策略决定。一些交易逻辑简单的模型,指令价或者收盘价效果区别较小。但收盘价模型无法处理更加细致的交易逻辑,就需要采用指令价了。,指令价优于收盘价的模型,收盘价优于指令价的模型,历史回测:LL数值为2585.8 价格为2585.6时满足SP信号条件,但盘中价格断档,所以回测结果为9:37:24时的价格2585.4。,Wh8.2是国内程序化

9、平台中唯一提供指令价模型tick回测的程序化交易软件。是历史回测最精准的程序化交易软件。,是否支持指令价委托并不重要,重要的是是否支持回测,3、及时止损,期货价格瞬息万变,经常会出现价格瞬间拉升,接着就瞬间回吐的情况。拉升时模型出现开仓信号,如果遇到秒杀行情,不能够及时平仓,往往会带来较大的亏损。能否处理好秒杀行情,已经成为重点解决的问题。如何才能做到同一根k线开仓后快速止损呢?,指令价模型,回撤止盈策略,在这种秒杀行情中,行情已经逆转,收盘价模型,还在执行上根k线的买开仓指令,显然是错误的,导致亏损。而指令价模型,则可以当根k线同时完成进场和止盈动作,保证既得利润。,收盘价模型,红线为买开仓

10、价绿线为卖平仓价,如何实现在一根k线上更加灵活的进出- - - MULTSIG,模型中加入MULTSIG函数,可以在一根k线上交易多次,模型中加入MULTSIG,在实现指令价模型的同时,同时可以实现在一根k线上反复进行交易,实现更精致的交易策略,可以很好的规避掉秒杀行情。CREF(H,1),BK;/价格大于上一根k线最高价,开多仓CMA(ST,20),加入MULTSIG函数,实现在同一根k线上开仓后及时止损,亏损变为盈利。ST:=ABS(C-O);STMA(ST,20),二、拓展思路,1、拓展思路-指数交易2、如何解决移仓换月问题3、拓展思路结合盘口数据研发策略,用指数回测本身是没有问题的,因

11、为指数连续性好,能反应某个品种的连续走势。但现实中很多人发现,指数测试效果盈利,但是实盘跑下来确实亏钱的,为什么会出现这种情况呢?导致历史回测和实盘差距较大的一个因素- - - 指数回测并计算交易结果指数本身并不能交易,指数的价格并不是当时交易合约的价格,就会导致与实际交易不符的情况我们能不能测试出指数和实际交易差别的真实情况呢?,1、拓展思路-指数交易,TRADE_OTHER(CODE) 指定CODE合约为交易合约,CODE为合约代码。注:1、回测时:信号价格取值为该函数定义的交易合约的信号价格。模组加载时:数据合约为加载模组时选择的数据合约,交易合约为该函数指定的合约。不写入该函数时,交易

12、和数据合约一致。2、该函数写为TRADE_OTHER(AUTO)时,可以加载到主连合约,实现自动换月移仓。3、从数据合约的数据和指定交易合约的数据对齐的位置开始计算信号。4、(1)CODE位置写为AUTO时:该函数可以和CHECKSIG_SEC,CHECKSIG_MIN,MULTSIG_SEC、MULTSIG_MIN,CLOSEKLINE_MIN函数连用。(2)CODE位置为具体合约时:该函数可以和CLOSEKLINE_MIN,CHECKSIG_MIN,MULTSIG_MIN函数连用;不支持和CHECKSIG_SEC,MULTSIG_SEC函数连用。5、(1)CODE位置写为AUTO时:该函数

13、可以加载到主连上,不可以加载到指数、主指和其他具体合约上。(2)CODE位置为具体合约时:该函数可以加载到到所有合约上。6、该函数必须在有信号的模型中使用。7、TRADE_OTHER函数不支持加载到副图中。8、CODE位置写为合约代码时,该函数不支持加载到TICK周期,量能周期,秒周期上使用;CODE位置写为AUTO时,该函数不支持加载到日线以上周期使用。9、CODE位置不支持写入文华码。10、CODE写为AUTO时,不支持加载到页面盒子中。,一个均线模型,在未指定交易合约的时候,测试结果如下:MA10:=MA(C,10);MA30:=MA(C,30);EVERY(CMA10,4),模型在指数

14、上计算信号,交易也直接在指数上进行,而现实中指数是无法完成交易的,这种测试结果的真实性就无法保证。那么真实的情况是什么样的?,加入TRADE_OTHER函数测试结果为:MA10:=MA(C,10);MA30:=MA(C,30);EVERY(CMA10,4),我们指定RB1501为交易合约后,发现盈利并没有明显变化,说明指数开平仓价格的价差,和具体合约比较接近。但这是真实的情况吗?,下图是螺纹1501合约,2014年6月3号至今的走势,红圈中交易量较少,在这个时间段中出现的信号,很难完成交易或者将付出较大的滑点成本,必定会导致盈利的减少,那么如何知道最终的真实的交易结果?,我们在模型中加入了流动

15、性限制,即成交量。根据经验螺纹的成交量应该在50万手以上的时候,才能够使交易顺畅。即指定交易合约又保证流动性的代码如下:MA10:=MA(C,10);MA30:=MA(C,30);EVERY(CMA10,4)/VV为跨合约引用RB1501的成交量,当我们加入了流动性限制后,发现真实的交易情况,比开始的测试结果又差了一些。这才是真实的结果,真实的结果,所以,是否支持指数映射到主力合约交易并不重要,重要的是我们是否可以测试出这种映射交易的真实结果,2、如何解决移仓换月问题,我们常常会这样做:模型加载在指数合约上,指定主力合约为交易合约,只要主力合约切换,就自动移仓,这种方法正确吗?正确的方法应该是

16、怎么样的?我们可以测试出来吗?有没有更好的方法?我们能找到吗?,指数加载模型,自动移仓换月,会产生较大的移仓成本MA10:=MA(C,10);MA30:=MA(C,30);EVERY(CMA10,4),怎么做才能解决指数加载模型,移仓换月的问题呢?,2014.10.20,主力合约切换为1505,螺纹1501一直到11.24日都可以持续交易,整整延迟一个月,即节省了移仓成本,又可以抓住新的交易机会,按照经验,螺纹50万手以上的交易量,交易可以进行的比较流畅,螺纹主连合约,螺纹1501合约,2014.11.24,更好的方法是:加载两个模型,分别交易新主力合约和老主力合约。在保证流动性的前提下,提前

17、运行新主力合约,继续运行老主力合约,既减少移仓成本,又抓住更多的交易机会。MA10:=MA(C,10);MA30:=MA(C,30);#CALL6881,VVA AS AAVV:=AA.VV; /VV为跨合约引用RB1501的成交量EVERY(CMA10,4),MA10:=MA(C,10);MA30:=MA(C,30);#CALL6890,VVA AS AAVV:=AA.VV; /VV为跨合约引用RB1410的成交量EVERY(CMA10,4),MA10:=MA(C,10);MA30:=MA(C,30);#CALL6881,VVA AS AAVV:=AA.VV; /VV为跨合约引用RB1501

18、的成交量EVERY(CMA10,4)虽然模型加载在指数上,但是交易都是在1501上进行,并且只在流动充足的时候交易,交易时间段为2014年7月至11月,其他时间1501因流动性差,不进行交易,MA10:=MA(C,10);MA30:=MA(C,30);#CALL6890,VVA AS AAVV:=AA.VV; /VV为跨合约引用RB1410的成交量EVERY(CMA10,4)虽然模型加载在指数上,但是交易都是在1410上进行,并且只在流动充足的时候交易,交易时间段为2014年2月至7月初,其他时间1410因流动性差,不进行交易,这样在某段时间内,既可以因为合约流动性低而停止交易,减少滑点,又在

19、主力合约切换之前的一段时间内,因为两个合约的流动性都较高,获得了重叠部分的交易机会,不但解决了移仓换月带来的巨大成本,又因为重叠部分的交易,获得更高的收益,3、拓展思路结合盘口数据研发策略,盘口的五档行情,可以真实反映出短时间的市场多空优势。五档行情的上方是空方阵营,下方是多方阵营当一方优势明显的时候,行情便会快速上涨或者下跌,A:=(ASK1*ASK1VOL+ASK2*ASK2VOL+ASK3*ASK3VOL+ASK4*ASK4VOL+ASK5*ASK5VOL)/(ASK1VOL+ASK2VOL+ASK3VOL+ASK4VOL+ASK5VOL);/空方挂单均价B:=(BID1*BID1VOL

20、+BID2*BID2VOL+BID3*BID3VOL+BID4*BID4VOL+BID5*BID5VOL)/(BID1VOL+BID2VOL+BID3VOL+BID4VOL+BID5VOL);/多方挂单均价我们分别用A和B代表空方和多方,当价格突破一方的时候,就会出现短暂的上涨或下跌行情,而很多时候,价格都是在多方和空方阵营之间波动,文华通道线,MA(CLOSE,30);A:=(ASK1*ASK1VOL+ASK2*ASK2VOL+ASK3*ASK3VOL+ASK4*ASK4VOL+ASK5*ASK5VOL)/(ASK1VOL+ASK2VOL+ASK3VOL+ASK4VOL+ASK5VOL);B

21、:=(BID1*BID1VOL+BID2*BID2VOL+BID3*BID3VOL+BID4*BID4VOL+BID5*BID5VOL)/(BID1VOL+BID2VOL+BID3VOL+BID4VOL+BID5VOL);RISING(60),分别用空头和多头的挂单均价代表多空阵营,当价格向上突破空方阵营时做多当价格向下突破多方阵营时做空,注:图片经过反色处理,并非白色时尚风格,盘口函数,RISING(N) 判断TICK图的价格趋势。用法:参数N代表周期,在N个周期内,上涨趋势返回1,下跌趋势返回0,平盘时返回空值。注:1、该函数必须在TICK图中使用,在K线图上返回空值。2、该函数需要有五档

22、行情授权才能取到有效值,否则返回空值。例:RR:RISING(N);/加载到有五档授权的TICK图中,上涨趋势返回1,反之返回0。,DEF_TICKDATA(1,10);SETBIGVOL(50);SHE:=ASKBIGCOUNT;BHE:=BIDBIGCOUNT;SHE=4,策略原理:日内走势出现逐笔连续上涨或者下跌的概率较小当短暂的上涨或者下跌形成后,价格极容易反向运行连续10笔上涨趋势,并且10笔中有4笔以上主动卖,且单次手数超过50手,开空仓,反之开多仓,TICK盘口模型,注:图片经过反色处理,并非白色时尚风格,分别反映了市场上投资者的哪种心态和行为?,一些其他盘口概念的解释,多开:多

23、头开仓 持仓量增加多平:多头平仓 持仓量减少换手:多空换手 持仓量不变双开:多头开仓 空头开仓 持仓量增加双平:多头平仓 空头平仓 持仓量减少空开:空头开仓 持仓量增加空平:空头平仓 持仓量减少,主动买:买开、卖平主动卖:卖开、买平增仓:持仓量的增减现手:成交量价格和数量反映了目前多空双方达成一致的均衡:1、价格不变化或者变化很小,市场正处于横盘小幅震荡的走势 交易不活跃2、价格在很大范围内上下变化,市场正处于剧烈震荡中 交易不活跃 3、价格不断升高,上涨行情,反之下跌行情 交易活跃 4、价格变化缓慢,缺乏动力 交易不活跃5、价格不断跳动,有走出趋势行情的动力 交易活跃6、价格迅速跳动,价格均

24、速变大,价位连续,稳健趋势行情的特征,后期可能加速7、价格迅速跳动,变化不连续,呈跳跃性,表示放量突破的行情 。,更多TICK盘口函数,ASK1 取得TICK图该笔TICK的卖一价ASK2 取得TICK图该笔TICK的卖二价ASK3 取得TICK图该笔TICK的卖三价ASK4 取得TICK图该笔TICK的卖四价ASK5 取得TICK图该笔TICK的卖五价ASK1VOL 取得TICK图该笔TICK的卖一量ASK2VOL 取得TICK图该笔TICK的卖二量ASK3VOL 取得TICK图该笔TICK的卖三量ASK4VOL 取得TICK图该笔TICK的卖四量ASK5VOL 取得TICK图该笔TICK的

25、卖五量,TICK函数介绍,BID1 取得TICK图该笔TICK的买一价BID2 取得TICK图该笔TICK的买二价BID3 取得TICK图该笔TICK的买三价BID4 取得TICK图该笔TICK的买四价BID5 取得TICK图该笔TICK的买五价BID1VOL 取得TICK图该笔TICK的买一量BID2VOL 取得TICK图该笔TICK的买二量BID3VOL 取得TICK图该笔TICK的买三量BID4VOL 取得TICK图该笔TICK的买四量BID5VOL 取得TICK图该笔TICK的买五量,TICK函数介绍,NEW 取得TICK图的最新价TICK_OPI 取得TICK图的持仓量TICK_SC

26、ALE 取得TICK图该笔TICK是否为主动买TICK_VOL 取得TICK图的成交量,TICK函数介绍,DEF_TICKDATA(Type,N) 定义五档TICK数据区BKVOLUME 取得TICK图所定义数据区买开成交量的和BPVOLUME 取得TICK图所定义数据区买平成交量的和BIDVOL 取得TICK图所定义数据区主动买成交量的和SKVOLUME 取得TICK图所定义数据区卖开成交量的和SPVOLUME 取得TICK图所定义数据区卖平成交量的和ASKVOL 取得TICK图所定义数据区主动卖成交量的和,TICK函数介绍,SETBIGVOL 设置TICK图所定义数据区大单阀值ASKBIG

27、COUNT 取得TICK图所定义数据区主动卖大单次数的和ASKBIGTOTVOL 取得TICK图所定义数据区主动卖大单成交量的和SKBIGCOUNT 取得TICK图所定义数据区卖开大单成交次数的和SKBIGTOTVOL 取得TICK图所定义数据区卖开大单成交量的和SPBIGCOUNT 取得TICK图所定义数据区卖平大单成交次数的和SPBIGTOTVOL 取得TICK图所定义数据区卖平大单成交量的和BIDBIGCOUNT 取得TICK图所定义数据区主动买大单次数的和BIDBIGTOTVOL 取得TICK图所定义数据区主动买大单成交量的和BKBIGCOUNT 取得TICK图所定义数据区买开大单成交

28、次数的和BKBIGTOTVOL 取得TICK图所定义数据区买开大单成交量的和BPBIGCOUNT 取得TICK图所定义数据区买平大单成交次数的和BPBIGTOTVOL 取得TICK图所定义数据区买平大单成交量的和,TICK盘口策略,关于成交量和持仓量1、成交量代表市场活跃度2、成交量/持仓量 代表投机度,投机度强一般波动性大3、增仓、放量伴随大涨,代表相当强势4、减仓、缩量伴随下跌,代表相当弱势5、价量仓方向不统一,代表分歧和能量不均,TICK盘口策略,关于单量1、挂单量大的一方为强2、主动成交的一方为强3、撤单一方为弱4、反复在同一价位成交表示争夺激烈,短期价格无方向,也可能是短期趋势可能反

29、转5、不断挂单、撤单表示不坚定,也可能是吸引成交,TICK盘口策略,关于价格涨跌1、匀速拉升或者匀速下跌容易导致大跳水或大反弹2、阶梯上涨或者下跌,不易转向3、不断加速易触板4、不断减速需要修正走势,注:图片经过反色处理,并非白色时尚风格,注:图片经过反色处理,并非白色时尚风格,注:图片经过反色处理,并非白色时尚风格,DEF_TICKDATA(1,6);SZD:=ASKVOL;BZD:=BIDVOL;SZD=0,SK;BZD=0,BK;NEW=BKPRICE+4*MINPRICE,SP;NEW=SKPRICE+4*MINPRICE,BP;AUTOFILTER;,TICK盘口模型,策略原理:日内

30、走势出现逐笔连续上涨或者下跌的概率较小当短暂的上涨或者下跌形成后,价格极容易反向运行连续6笔无主动卖,开多仓,反之开空仓,注:图片经过反色处理,并非白色时尚风格,策略原理:当tick图上,价格突破了一定时间中的高低点后形成短暂趋势,入场后固定止损止盈或者时间出场,M:=30;J:MA(NEW,M);EVERY(NEWJ,10),TICK盘口模型,注:图片经过反色处理,并非白色时尚风格,MA1:MA(NEW,60);DEF_TICKDATA(0,10);BHE:=BID1VOL+BID2VOL+BID3VOL;SHE:=ASK1VOL+ASK2VOL+ASK3VOL;NEWMA1,TICK盘口模型,祝交易顺利,谢谢!,全国统一客户服务电话:400-811-3366文华财经 研究部Email:培训班学员群:176960693,

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

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

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报