程序化的高收益有多少可信度?
对于每一位程序化交易员来说,模型的高收益都是其毕生所追求的,但是话说回来,如果一个模型有着惊人的回测收益,你敢上实盘吗?或者说程序化的高收益到底可信度是多少?我想,这应该是困扰很多交易员,特别是刚入行的程序化交易员的一个问题。那么,什么样的模型才算是一个好的程序化模型,才能运用于实盘呢?其实,一个客观,可实操的程序化模型一定具有这三个特点:第一,模型中一定不会使用未来函数;第二,模型在运行中一定不会出现信号闪烁;第三,模型一定要设置1个以上的滑点以及相应的手续费。
关于这三个方面,我们必须详细说一下:
不能使用未来函数
未来函数,顾名思义就是模型在运算中引用了未来的数据。比如,模型要求在当天最低点买进,那么当前这根K线的价格在今日是最低点的时候,会给出买入信号,但是,如果下一根K线出现更低的价位,上面的那个买入信号会消失,而在当前这根K线上会重新出现买入信号。
使用未来函数之后,你可以想象到,模型跑出来的资金曲线有多平滑,收益率有多高。几乎每次都是在最低点买进,最高点卖出。但是,你敢用在实盘上吗?这也是很多人都有疑惑的地方,为什么回测数据特别好,一到实盘就亏钱呢?答案可能就是该模型使用了未来函数。
不能有信号闪烁
上文讲到的未来函数信号表现,也属于信号闪烁的范畴。但信号闪烁更多的是说使用比如金叉死叉等指标的闪现。举个简单的例子,比如,拿一个双均线的例子,模型执行语句是:CROSSUP(M5,M10),BK;CROSSDOWN(M5,M10),SK;含义是,当5日均线上穿10日均线时,买入。当5日均线下穿10日均线时,卖出。
由于使用的是收盘价或者最新价,当一根K线没走完的时候,均线发生穿越,而可能截至到收盘,已经穿越了无数次。但是收盘那一秒,均线只显示一个穿越信号。这样实盘的结果就是,盘中不停的开仓止损,但是回测的时候,只会有一个信号出现。这也是造成实盘与回测产生巨大差别的一个原因。
要设置滑点以及相应的手续费
滑点和手续费也是“优秀模型”的杀手,因为在国内程序化交易更多的是日内短周期的交易,一般运用在分钟线上居多,特别是1分钟周期的K线,这就势必会频繁的开平仓,而每一次的开平仓都是有手续费的。而且,采用突破开仓的模型在价格突破的瞬间一般速度很快,没有预留滑点去追单,一般很难成交。
而随着开仓次数的增多,就算每次只有一个滑点,一天下来,就算你开仓方向都正确,你的所有盈利也会被滑点和手续费吃掉的。所以,如果模型中没有设置相应的滑点及手续费,即使该模型表现的再优秀,也不可贸然实盘。
除了以上三点外,还有一个也必须引起大家的警觉,就是模型中参数的“过度优化”,或者叫“过度拟合”。因为历史终究是历史,它虽然对未来有参考意义,却永远也代表不了未来。很多程序化交易员,为了达到过高的收益,或者为了得到过度平滑的资金曲线,针对某一个品种,不断调整其参数,使其达到“完美”的境界。
看到年化收益率超过1000%的模型,还是避而远之的较好。因为,社会平均利润率就在那,一旦模型能获得超额收益,就已经给自己挖好了坟墓。靠程序化稳定盈利,其实并不是那么简单的事情,希望在程序化的道路上,共勉。
策略炒股通,让你像机构一样专业
页:
[1]