- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《程序化交易实战》连载8:策略编写陷阱—信号闪烁.doc
《程序化交易实战》连载8:策略编写陷阱—信号闪烁
信号闪烁⑴.概念介绍信号闪烁是指程序发出了不稳定的交易信号。一旦出现这种情况,程序会在极短的时间之内,反复多次进行开平仓操作。换句话说,在策略研发者预期程序不该发出开平仓交易信号的时候,程序“自己”反复发出交易信号。对于交易员来说,这是非常危险的,如果不立即进行应急处理,程序很可能一直进行这种不合理的操作,产生大量的交易手续费成本和滑点成本,造成交易事故。⑵.原因解析信号闪烁主要由以下两个原因造成:第一,所使用的判断条件不稳定,即判断条件时而成立时而不成立。第二,虽然判断条件固定,但是开仓和平仓条件出现交集,即某些情况既满足开仓条件也满足平仓条件。这会导致程序先判断开仓条件成立,于是开仓交易;同一个Tick内,又判断平仓条件成立,所以立即把刚开的仓位平掉。接下来推送过来一个新Tick,再次判断开仓条件成立,程序会再次开仓然后平仓。如此反复,直到价格变动到开平仓条件的交集之外时,才会停下来。我们将对这两种情况分别举例说明。①.案例一大部分程序化交易模型的信号,都是由引用的价格满足开平仓条件后发出的,常用的引用价格有:开盘价,收盘价,最高价,最低价,均价等。我们用一个简单的例子来展示判断条件不稳定所导致的信号闪烁:根据5日均线和10日均线进行判断,金叉做多,死叉做空。即当5日均线突破10日均线时,做多;当10日均线突破5日均线时,做空。
上面是Q语言关于金叉做多、死叉做空的代码,这里引用的是当前Bar的五日均线ma5[0]和十日均线ma10[0]。但是在当前Bar还没走完的情况下,其最高价High[0]会不停变化,所对应的ma5[0]和ma10[0]也都会变化。这样一来,可能一会出现ma5[0]ma10[0],一会又出现ma5[0]ma10[0]的情况。因此,程序可能一会发出做多的交易信号,一会发出做空的交易信号。也就是说,所触发的交易信号不稳定,出现信号闪烁。这种情况在程序后验的时候,是不会察觉到的,因为大部分的软件进行后验的时候,不是以Tick驱动,而是以Bar驱动。所以在涉及到信号触发那根Bar的时候,High[0] 会被默认为这根Bar的最高价,是一个常数,所以ma5[0]也是一个常数。这样做的好处是减少了后验的运算量,大大节省了后验的时间成本,但这样也会带来后验过程中无法发现信号闪烁问题的弊端。下面这幅图是这个信号闪烁的例子在价格以Tick驱动时产生的结果,我们可以清楚地看到,在同一根Bar中程序反复开平仓。下面我们来看一下这段代码的修正方法:引用上一根Bar的五日均线ma5[1]和十日均线ma10[1],以及前一根Bar的最高价High[1]。因为它们是已经成为历史的数据,是常数。在这种情况下,一旦出现ma5[1]ma10[1]或者ma5[1]ma10[1],信号就会固定下来,不会反复发生改变。②.案例二下面我们以Hans123为例,展示一个常见的错误:策略的开仓条件和平仓条件有交集,导致程序连续不断地反复开平仓。Hans123在开盘后一段时间(HansTime)后,确定高低点。随后价格突破高点做多,跌破低点做空。为了避免隔夜持仓,我们在程序中加入一个新的参数,离场时间ExTime。由于之前对这个策略进行过详细解释,我们在这里省略了中间部分代码,仅列出关键代码。为了避免上面的信号闪烁问题,我们可以加入一个新的参数,停止开仓时间ExitOnCloseMins,并令它的值比离场时间ExTime稍微早一些。对于开仓条件,我们也设定一个新的限制:只有在Bar.Time ExitOnCloseMins时,即当前K线时间小于停止开仓时间时,程序才开仓。加入了这个条件后,当K线时间超过离场时间ExTime之后程序平仓离场,同时由于此时已经超过了停止开仓时间ExitOnCloseMins,即使现在的价格仍然在UpperBand以上或LowerBand以下,程序也不会再次开仓。这里仅将调整的代码部分展示出来:运行修改之后的程序,从K线图中可以看出,我们已经将信号闪烁的问题解决了。
③.案例三在案例二的修正版本中我们在开仓条件中使用了Bar.Count Pos.LastExitBar这一语句,这一段代码也是为了避免信号闪烁的问题。为了让大家了解这行代码的重要性,我们再举一个信号闪烁的例子,并讨论如何利用Pos.LastEntryBar和Pos.LastExitBar来解决这个问题。
上面这段代码中同时存在未来函数和信号闪烁的问题,在后验的K线中可以清楚地看出来。其中的未来函数问题我们在未来函数案例四中讨论过,是无法判断开多仓和开空仓先后顺序的问题,这里就不再赘述。我们在这里只专门讨论信号闪烁的问题:1)后验时,这段代码在某些ba
您可能关注的文档
- 《平面镜成像》课例.doc
- 《幼儿园课程》第一章 幼儿园课程概述.doc
- 《广告多棱镜》导学案.doc
- 《广告摄影》 笔记.doc
- 《广告设计》教案—马阳阳.doc
- 《康复护理学(甲)》必做作业2015.doc
- 《廉洁自律准则》和《纪律处分条例》 知识测试试题及答案.doc
- 《建工识图课程备课教案》本科.doc
- 《建筑制图基础》2016.01.doc
- 《建筑工程竣工交付使用后工程质量监管、整改与服务管理办法》.doc
- 2025年河北衡水冀州区招聘社区工作者20人笔试备考题库参考答案详解.docx
- 2025年河南省科学院招聘高层次人才(博士研究生)笔试备考题库附答案详解.docx
- 2025年浙江金华市婺城区部分事业单位引进博士研究生13人笔试高频难、易错点备考题库含答案详解.docx
- 2025年河北沧州市中心医院高层次人才选聘150人笔试高频难、易错点备考题库及参考答案详解1套.docx
- 2025年河北保定市满城区选聘高中教师50人笔试备考题库及答案详解一套.docx
- 2025年浙江省发展和改革委员会关于下属事业单位招聘笔试备考题库及答案详解1套.docx
- 2025年浙江台州临海市桃渚镇人民政府招聘编外聘用人员笔试备考题库及参考答案详解.docx
- 2025年浙江丽水松阳县教育局招引教育人才12人(二)笔试高频难、易错点备考题库及答案详解一套.docx
- 2025年浙江嘉兴桐乡市委党校招聘高层次专业人才笔试高频难、易错点备考题库及参考答案详解一套.docx
- 2025年浙江兰溪市公路港航与运输管理中心招聘笔试备考题库附答案详解.docx
文档评论(0)