程序化交易是根据投资人的经验以及成功的交易模型,编写成计算机程序,由计算机按照程序完成对市场行情的分析,监控,预测,开仓下单,平仓止盈/止损。由于投资者本人的认知能力和分析能力所限,程序化编写过程中,编程员的水平,交易分析软件的函数的数量和质量存在不足,都将导致程序化编写偏离投资者的本来意图,甚至失效。 程序化交易存在很多问题: 1。投资人的经验有限,不能有效地理解相关指标的用法,没有成功稳定的收益模式。 什么是成功稳定的收益模式?就是,有效的成功率+良好的收益率=稳定盈利。以下分别从成功率和收益率两方面说: 不论在单边市还是震荡市,其投资模式的成功率都不应低于50%(按照统计,就算靠瞎蒙的随机成功率也有50%),有效的成功率应当在60%以上;不论熊市还是牛市,其收益率都不应低于市场平均盈利水平。什么是市场平均盈利水平?这个问题有两种衡量方法:第一种方法,是投资者参与的特定投资市场里,所有投资者们的平均年收益率,比如,每次期货大赛结束后会统计公布所有参赛选手的年平均收益率是35%,盈利比率是45%。前三名的收益率分别是4500%,4200%,3500%。这就是一个标准;那么,你的交易系统年收益率不应低于35%的平均水平。如果没有第一种方法的参照物,那么就用第二种方法,无风险投资利率加CPI增长率法。举例来说,无风险投资的年利率是7%,CPI是6%,那么,他的年收益率不应低于两者之和的13%。否则,不如去买国库券或者保值储蓄,就算出去打工也比这个挣得多。 2。程序化交易的编程员要完全明确理解投资者的意图。 很多情况下,投资者或者分析师不精通计算机编程语言,不会编写复杂的交易程序,甚至对编程一窍不通。这种情况下,他就会委托计算机专业人士开发程序化交易,一般来说,期货和证券公司以及其他投行的程序化编写都是这种情况。但是,问题就出来了。在把投资者或者分析师头脑中的想法告诉编程员的时候,受表达能力和领悟能力的影响,编程员不能完全掌握投资者和分析师的意图,或者编程员没有彻底掌握经典交易理论的全貌(其实,大多数普通的投资者和分析师不能掌握相关指标和理论的精髓),这就是信息传递失真。那么,编写出来的程序就会偏离投资者的本来意图,导致程序化软件的实用性大打折扣,甚至无用的境地。就算对同样一个简单的指标,不同的编程员编写出来的结果也是千差万别。请看这个“一阳穿三线”指标http://zhidao.baidu.com/question/291534427.html 3。编程用的交易软件,其所依托的函数匮乏或者存在错误。 今天,市面上的看盘分析软件多如牛毛。例如,国内的有飞狐交易师,分析家大智慧,通达信,同花顺,博易大师,文华财经;国外的有Metatrader,Advance Get,GTS等等。不同的软件使用的函数不同,有的软件中函数很丰富,比如飞狐交易师,MT4;有的软件中函数很少根本无法实现复杂指标程序的编写。即使上面这些软件使用的函数相同,但是对函数的定义也差别很多,计算出来的结果自然“失之毫厘,谬以千里”。举例来说,对于简单的指数平滑函数EMA和标准差函数,在飞狐和分析家中,编写出来在图形上的效果就不一样。飞狐有时候要用datacount函数来屏蔽引起程序化交易指标变化的未来函数,相反,金字塔不用这个函数就可以直接在图形中显示得比较正确,但是金字塔的问题是缺少好多函数,运行较复杂的程序化交易时容易“非法退出”,无法完美实现飞狐强大的指标程序化交易和绘图功能。另外,即使是同一个软件,不同版本之间也存在函数不兼容的情况。比如说,在编写RSI这个指标时,经典的飞狐4.9版本中没有真实波幅ATR这个函数,在编写相关对比指标时也没有DATA2这个引用函数。MT4的程序化交易虽然很厉害,但是它的局限性在于最多只能定义8条指标线。然而在优秀的程序化交易中,引用的指标往往超过8个。所有这些局限性,都限制了编程员将投资者的意图完整的实现在程序化交易软件上面。众所周知,金融投资市场是高收益高风险的市场,有时候一个小小的偏差失误,就会产生导致错误的开仓或者平仓,造成不必要的亏损。如果积少成多,小亏损就会变成大亏损。 4。不同的数据源的数据质量不同,也会降低程序化交易的效果。 不同的软件,在选择数据源和处理时区的问题上,各有不同。我们经常会发现,对于同一种商品,不同软件显示的价格不同。尤其是在外盘上,对于时区的不同处理方式,也导致每天的开盘价,最高价,收盘价,最低价,成交量,持仓量,成交额这些客观的市场数据完全不同。这些参数的不一致都会影响指标的变化,影响程序化交易的效果。 |