好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

《程序化交易实战》连载7策略编写陷阱—未来函数.docx

5页
  • 卖家[上传人]:凯和****啦
  • 文档编号:291487639
  • 上传时间:2022-05-11
  • 文档格式:DOCX
  • 文档大小:17.81KB
  • / 5 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 本文格式为Word版,下载可任意编辑《程序化交易实战》连载7策略编写陷阱—未来函数 《程序化交易实战》连载7:策略编写陷阱—未来函数 1. 未来函数 ⑴.概念介绍 未来函数是指引用未来数据的函数,在策略中的表现形式也就是引用未来时刻的信息作为判断条件,对现在时刻下达开平仓指令换句话说,函数利用了现在还不知道的信息,产生交易信号这在历史后验中是完全可以实现的,由于在程序化交易的历史后验中,我们从一开头就拥有全体的历史数据而且,Bar 驱动策略是基于 Bar 信息开发的策略,假设不加以留神,很轻易在编写策略时出错,引用未来的信息但是在实盘交易中,行情是按时间依次到达,在“现在”这个时间点上,我们只能拥有这个时间点以前的信息,也就是过去的数据,不成能获取这个时间点之后的信息,即未来的行情因此,我们务必确保在历史后验中也遵循这一规矩,发出的每一个交易信号都是基于该时点以前的信息,而并不包含该时点之后的信息,以制止这种“偷窥未来”的错误 与偷价格类似,未来函数也一样会为我们带来一条完备的后验曲线和美丽的后验数据,但是在实盘使用这个策略之后,它会立刻现出原形,流失盈利才能。

      下面我们分别举几个未来函数的例子,并分析其发生的理由 ⑵.理由解析 与偷价格类似,未来函数的表现形式也有好多,但归根结底,理由只有一个:我们使用了未来才能知道的信息作为现在的判断条件或者开仓条件这并非是我们根据现在的信息有效地预料了未来,而是通过bar后验的机制,偷看到了未来的信息,并且加以利用我们也通过几个例子来留心分析一下未来函数展现的理由 ①.案例一 上面这段代码是Q语言编写的一段开仓条件:假设上一根bar的收盘价高于长期均线,且当前K线收阳,也就是说这根bar的收盘价大于这根bar的开盘价, 那么以这根bar的开盘价做多这就是一个典型的未来函数问题在于,下单价格是当前K线的开盘价Open[0]所以“现在”这一时间点就是当前K线开盘的一瞬间,而判断条件中使用了当前K线的收盘价Close[0],也就是“未来”的信息这相当于我们知道了这根K线收阳之后,通过时光机再回到开盘的那个时间点举行下单,这样当然可以盈利 上图就是这个策略的后验曲线,股指年化收益率达成500%,而且收益曲线极其平滑,几乎没有回撤但分外可惜,这在实盘交易中鲜明是不成能实现的。

      由于我们在开盘时是无法知道收盘价是多少的;而等到收盘以后,虽然我们已经知道了收盘价是多少,却再也无法以开盘价成交 这是用Q语言编写的一个多头止盈的模块,当头寸价格上涨超过0.5%时,一旦从最高点回撤0.8个点即止盈平仓这段代码中也存在未来函数在历史后验中,由于使用的是bar驱动的后验机制,在这根bar执行主程序的时候,我们就已经知道Open[0],High[0],Low[0]和Close[0]的最终值但是在实盘中,只有Open[0]是在这根bar开盘的时候就固定下来的,而High[0],Low[0]和Close[0]在这根bar终止之前,都是不停变动的只有在bar终止之后,才成为固定的值,并且当新的bar到来之后立刻变成High[1],Low[1]和Close[1]上面这段代码相当于在这根bar还没有终止的时候,就已经使用了这根bar终止之后才能知道的信息作为判断条件,那么下面K线图中全体的平仓点位都接近每根bar的高点也就缺乏为奇了 然而,一旦我们实盘使用这个策略,程序会这样运行:在前面几个条件都得志的处境下,在bar内第一次展现比0.8个点更大的回落时,就会触发Close[0] = UpperBand刚好得到得志。

      而一旦得志,该条件便会固定下来,无论接下来价格如何变化,都不会变更在此过程中,我们没有引入任何未来的信息因此,这段代码中不存在任何未来函数 相反,假设我们以High[0] = UpperBand条件发生之后,等到这两个条件同时得志的时候,我们设定的开仓价格已经不复存在了而在Bar后验时,我们并没有考虑到时间的先后相当于我们在High[0] >= UpperBand的一瞬间已经知道了未来会触发Low[0] = UpperBand和Low[0] = UpperBand,然后开多仓这意味着,在后验中,我们在开空仓条件成立的时候,知道了未来开多仓的条件也会成立,所以没有开仓,并且等到开多仓条件成立的时候开了多仓这相当于将未来的信息引入了判断条件,造成后验与实盘不一致 ⑶.总结 综上所述,未来函数也是一个分外轻易导致策略的历史后验与实盘表现不一致的陷阱与偷价格相比,未来函数更加隐秘,更不轻易被人觉察,对后验真实度的影响也更大由于通过在K线上画出辅佐线的方法,结合K线上的开平仓信号,大片面偷价格的问题都可以直观地看出来而未来函数那么不同,它的展现是由于策略在设计规律上出了问题,因此无法通过查看K线直接判断,而只能通过检查代码的规律来识别。

      这个问题在对比繁杂的策略中更加轻易展现所以,当我们在看到很平滑的后验曲线之后,确定要留心检查未来函数的问题 我们举行历史后验的目的就是通过策略的后验表现,预料这个策略在实盘使用之后是否具有盈利才能假设策略中存在未来函数,后验与实盘会展现极大的偏离,我们也就无法把策略后验的表现作为对实盘表现的预料依据,使得后验彻底失去了意义 — 5 —。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.