1、程序化交易时的信号闪烁
所谓信号闪烁,是指程序化交易模型在图表上显示的买卖信号时而出现时而消失。出现这种情况,说明模型的策略在判断买卖交易的条件中使用了未来函数。
所谓未来函数,是指可能引用未来数据的函数,即引用或利用当时还没有发生的数据,对之前发出的判断进行修正的函数。
具体地说,就是本周期结束后显示的指标值(包括线段和买卖提示信号),可能在发生新的数据后改变位置或者干脆消失。对于未来函数可以理解为某一变量依赖另一变量而先期变化。
如变量A和变量B,B变化使得A也变化,那么A是B的函数,但如果B是稍后的变量,而A是稍早的变量,A跟着B变化,则A是B的未来函数。
有三类函数属于未来函数:一是以之字转向为代表的ZIG类函数;二是准未来函数类;三是使用跨周期数据函数类,这是一种最为隐蔽的方法,它的危害性很大。
含有未来数据指标的基本特征是买卖信号不确定,常常是某日或某时点发出了买入或卖出信号,第二天或下一个时点如果继续下跌或上涨,则该信号消失,并在以后的时点位置又显示出来。
比如,一个量化策略定义为日K线收盘价大于均线时买入,反之卖出。由于日K线的收盘价在当天交易结束前表现为最新价,它随着行情的变动而变化,盘中的日收盘价以及由此计算出来的均线价格也会变动。
当最新价离均线价格非常近时,就会出现盘中的日收盘价忽而高于均线价格,忽而低于均线价格。
从而程序化交易模型就会在图表上一会儿发出买进信号,一会儿买进信号消失出现卖出信号,反复交替,即出现信号闪烁现象。
信号闪烁反复的问题会对模型设计人员造成极大的困惑,模型策略中一旦使用了未来函数而出现信号闪烁,则实盘中模型会不断地开平仓。
但在用历史数据测试时,只会有一次信号出现,导致实盘交易结果和测试结果会有很大差异。
很多程序化模型在测试时表现很好,真正拿到实盘上运行就让人大跌眼镜,这就是买卖信号出现反复所引起的。
要解决信号闪烁的问题可以采用两种办法:
一、用不可逆的条件来作为信号判断条件。比如,程序化模交易型策略规定,一根K线的最高价高于某个固定价位时,模型发出买入信号。由于一根K线的最高价只能是不断增大的,所以某一刻开始满足条件,就会一直满足这个条件,出现的信号就不会消失,也就不会出现信号闪烁现象。
二、使正在变动的未来函数变成已经不再变动的完成函数。由于未来函数有时间周期,有些指标在一个短的周期内可能是未来函数,但在稍长的周期内就不是未来函数。
例如,收盘价在一天收市前都是不确定的,所以对于一个日周期的指标在分时周期内具有未来函数特征,但是一旦收盘该指标就是定值,不会随明日及以后的行情而变动,所以该指标在大于一日的周期中就不是未来函数。
2、程序化交易的偷价行为
所谓偷价行为是指在开平仓的时候使用了当时已不存在的进出场条件。比如,程序化交易模型策略规定,如果最高价大于某个固定价位即以开盘价买入。
如此虽然信号不会闪烁,但是最高价大于某个价位时,价格已经高于开盘价一定距离了,这时用开盘价买入是做不到的。但是在用历史数据进行模型测试时,图表上是有买入信号存在的。
有一些偷价行为很隐蔽,还是以最高价大于某个固定价格买入策略为例,如果用此策略作为模型进场买入信号,看起来没有什么问题。
但如果行情出现一开盘就跳空高于固定价格的情形,模型就不可能再以这个固定价格买到了。
此时,程序化交易模型的交易策略应改为,用开盘价与固定价格之中的最大值作为买入价格,如此就能避免偷价行为的发生。
信号闪烁与偷价行为对短线交易模型的影响是致命性的,投资者一定要对模型信号的真伪加以甄别。
使用未来数据不用花费任何精力就可以轻松获得表面上非常高的成功率,但发出的买卖信号在实际操作中毫无价值,是一种交易欺骗行为,在实战中给投资者带来的惨痛损失和后果往往不堪设想。
其实许多交易问题也和程序化交易软件有一定关系,最近有款量化交易软件叫隽焱智投,还能免费下载模拟玩一玩试试这点很有意思,对量化、程序化交易感兴趣的可以自己了解下。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!