笔者曾有幸学习了几个月的程序化交易,对于程序化交易有了一些自己比较浅显的看法,希望大家批评指正。
程序化交易就是投资者希望可以实现复杂的交易思路并且能简单操作的智能交易系统,因此电子化交易系统很快就从交易功能的自动化向交易思路和交易策略的自动化转变。现在国外的理财型投资公司和对冲基金大多都采用计算机程序交易,可以预见,未来市场中程序化交易将被广泛使用,尤其是将来股指期货推出以后。
一.程序化交易的优点
1.计算机能够持续稳定、精确严格的按原则工作,能够大规模的进行数据处理,而人灵活有余,原则不足且不能长时间地机械操作。
2.犯了错误不愿意纠正,抱着侥幸的观点。贪婪、恐惧等是人的天性,而计算机会按照既定的规则去处理错误信号发出的指令和生成的持仓。
3.期货市场有着无可比拟的高效率和丰富的市场机会(短线,中线,长线甚至T+0),由于对行业和品种认识的局限性,不能精通每一个期货品种,每个品种都有活跃期和萎靡期,只有选择在活跃期跟踪交易这个品种,我们才能取得良好收益,有了捕捉市场趋势的程序就能很好的解决这一问题。
二.程序化交易的缺点
1.大部分程序化交易系统都是为了追随趋势而编写的,比较注重技术分析,但技术分析一般是滞后于价格变化的。依靠技术指标编写的模型发出的交易信号也滞后于趋势的起点,大多数在区间震荡行情中遇到频繁交易并可能连续亏损。
解决方法:编写辅助指标来过滤假信号,避免频繁交易,或者选择当K线走完以后再发出交易指令。在不同的条件范围内使用不同的交易模型,比如趋势模型和震荡模型交替使用。
2.难以确定头寸规模的大小也就是科学的资金管理。
解决方法:分散品种风险,不要把所有的鸡蛋放在同一个篮子里。多品种趋于同向时的最高持仓比例限制。头寸规模的确定:行情级别判定,波动幅度N值的计算,单位头寸U值计算。
丹尼斯方法:TR=MAX(H-L,H-PDC,PDC-L) 实际波动范围
N=(19×PDN+TR)/20 价值波动范围 PDC昨日收盘价 PDN昨天的N值
价值量波动性=N×每手数量
交易单位 U=(1%权益)/价值量波动性
最大头寸限制:单一市场 4U 高度相关市场 6U 低度相关市场 10U 同向市场12U 顺势时,每间隔0.5N,就加码1U,加到4U为止。
三、编制适合自己的程序化交易模型
从实际出发,自己每天有多少固定的盯盘时间。资金规模如何,风险承受能力怎么样,自身能够接受的资金波动是多少?盈利与亏损期望值是多少?根据自身资金波动承受力编制适合的交易系统。我比较喜欢长期交易系统,下面是长期交易系统的优点和缺点。
长期交易系统的优点和缺点
优点
每天只需要花费很少的时间
行情变化对投资者的心理压力比较小 操作次数少 一年的盈利往往是通过几笔大的交易获得 用简单的方法可以获得极大利润 缺点 操作的轻微变形可能会引起权益的巨大波动
需要恒心和耐心
交易成本很低 胜率不会很高
错失一个好的交易机会有可能把一个盈利年度变为亏损年度
操作过程枯燥无味,没有成就感。
每个人可以根据个人的喜好选择,在交易程序的编制中,保持指标的简单性、实用性 (不超过三个指标的组合),很多指标各有各的原理和依据,把他们都揉在一起往往彼此冲突、相互矛盾。复杂并不等于高盈利,盈利的模型很可能很简单,高胜率也不见得是好系统。长期稳定的盈利模型往往是趋势跟踪系统。趋势跟踪模型:价格突破某一区间后,形成了正反馈效应后,追随价格快速上涨和下跌的一种模型。(中散户、稳健的投资者) 特点:回报率高,利润可观。准确率低。成功的投资不但需要正确的市场分析,而且需要正确的风险管理,正确的心理控制。分析方面,判断买点的重要性如果说占 10%,那么判断卖点则占90%。而分析在整个系统的重要性也可以说占10%,所以判断买点在整个系统中重要性不过1%。程序化交易是靠对以往行情盈利模式的统计,在达到符合要求的条件出现时发出交易信号,我们无法靠预测盈利。
四.程序化模型的检测
一个正确的交易系统策略思想,必须能够经受历史数据的检验,模拟实战的检验,初期实战的检验以及长期实战的检验。经过充分测试的模型才能进入实战、测试得越充分可靠性越高、在测试过程中对模型进行优化、不要用真金白银去测试。要进行分品种差异测试,检测模型的普遍适应性,规避单一品种测试的不稳定。当初老师让我编一个总利润率到达30%以上,盈利系数大于60%,分析周期自行选择的模型,实验了很多模型始终没找到。在我看来没有一个模型可以满足所有品种,但可以找到一个适应品种较多的模型。单一品种也要进行分时段测设。对于投资者来说,每一次符合其交易规则的失败的(赔钱的)投资都是对的,每一次偏离其交易规则的成功的(挣钱的)投资都是错的。
对系统稳健性影响最大的指标:1.总的净盈利。2.交易数量不影响盈利的情况下越小越好。3.持仓天数一次交易平均持仓时间越少越好。4.最大回调值整个测试时间内权益可能从波峰到波谷最大值。首先从心理上,它预期了可能遭遇的最严重的情况,往往我们一进场就有可能遭遇险情。其次,最大资金回调决定了资金管理中的开仓手数,最大资金回调也提供了介入系统的良好时机。通过负相关或不相关品种组合,减少风险。5.最大回调时间前一个波峰与后一个波峰最长持续时间。6.最大连续亏损次数。7.盈利与最大回调之比最重要的指标。8.盈利亏损比 平均盈利平均亏损比值越大越好。9.胜率 趋势跟随系统胜率低,均值回归高。10.时间百分比系统中有头寸时间占所有时间比例。
趋势性盈利模型的特点:(1)胜率不是很高,一般不超过60%,因为盈利靠的是单边势,但在任何一个行情运行过程中,往往震荡势的比率要大于单边势,因此靠趋势盈利的程序胜率不会很高,但反而是一个健康的系统。(2)一次盈利弥补若干次亏损。(3)盈利单的持仓时间往往是亏损单持仓时间的数倍。
一个好的交易系统,应该有能力捕捉到突发事件的影响。系统仿真结果的标准离差越小,系统稳定性越高。系统稳定性越高,系统在实际使用中的可靠性越高。稳定赢利首先必须要有时间的概念,最少也要三年以上,站高点,看的远点,没有完美的以直线形式上升的资金曲线。稳定赢利的背后,总有暗流,有回撤和盘整的资金曲线才是稳定的;如果是陡峭的,要么是不稳定的, 要么是稳定赢利的漫长过程的一个微小部分 。
五.程序化交易模型的执行
执行来自对系统的信赖,信赖来自对系统的深刻了解。系统是我们的朋友,是我们在期货中生存并成功的武器,信赖它并容忍系统的缺点,才能执行并取得成功。
1、盈利的模型有很多,关键还是看能否严格的执行,要对自己的严格测试通过的程序有信心。
2、勇于承认错误。很多投资者找了别人代为下单,可以避免因为亏损影响自己的心情,影响接下来的交易。太多的亏损是因为赚钱时尽早的落袋为安,赔钱时不甘心抱着赌一把的思想,即使偶尔一两次成功反弹但一直这样肯定会遭到市场的报复的。
3、切忌贪婪、忘却恐惧,不要在不知不觉中掉入爆仓的陷阱。
4、要有从一而终的美德,程序化交易只有长期、严谨、精确地进行才能发挥它的威力。
5、不要离行情太近,把自己当成旁观者。我很喜欢的一句话:老人总是这样,看云很近,看市场很远。把云看清了,市场就装在你的心里了。
6、执行程序一定要斩钉截铁,毫不犹疑,坚决以市价开仓,不要为了几个点的小利而承担巨大亏损。
华尔街流行这句话,市场一定会用一切方法来证明大多数人是错的。期货市场是“零和博弈”,永远只是少数人挣钱。只有不断坚持学习,才能找到属于自己的“圣杯”。再次感激文华的周辉老师把我带入程序化交易的大门,希望人人找到属于自己的圣杯。 |