设为首页 | 加入收藏 | 今天是2024年11月18日 星期一

聚合智慧 | 升华财富
产业智库服务平台

七禾网首页 >> 程序化交易 >> 程序化交易知识库

程序化交易模型的仿真运行

最新高手视频! 七禾网 时间:2015-03-16 09:49:57 来源:期货日报网
通过不断修正和完善,建立客观有效的程序化交易系统,实现真正的商业价值

A 信号闪烁

所谓信号闪烁,是指模型在图表上显示的买卖信号时而出现时而消失。出现这种情况,说明模型的策略在判断买卖交易的条件中使用了未来函数。

所谓未来函数,是指可能引用未来数据的函数,即引用或利用当时还没有发生的数据,对之前发出的判断进行修正的函数。具体地说,就是本周期结束后显示的指标值(包括线段和买卖提示信号),可能在发生新的数据后改变位置或者干脆消失。对于未来函数可以理解为某一变量依赖另一变量而先期变化。如变量A和变量B,B变化使得A也变化,那么A是B的函数,但如果B是稍后的变量,而A是稍早的变量,A跟着B变化,则A是B的未来函数。其中有三类函数属于未来函数:一是以之字转向为代表的ZIG类函数;二是准未来函数类;三是使用跨周期数据函数类,这是一种最为隐蔽的方法,它的危害性很大。

含有未来数据指标的基本特征是买卖信号不确定,常常是某日或某时点发出了买入或卖出信号,第二天或下一个时点如果继续下跌或上涨,则该信号消失,并在以后的时点位置又显示出来。

比如,一个策略定义为日K线收盘价大于均线时买入,反之卖出。由于日K线的收盘价在当天交易结束前表现为最新价,它随着行情的变动而变化,盘中的日收盘价以及由此计算出来的均线价格也会变动,当最新价离均线价格非常近时,就会出现盘中的日收盘价忽而高于均线价格,忽而低于均线价格,从而交易模型就会在图表上一会儿发出买进信号,一会儿买进信号消失出现卖出信号,反复交替,即出现信号闪烁现象。

信号闪烁反复的问题会对模型设计人员造成极大的困惑,模型策略中一旦使用了未来函数而出现信号闪烁,则实盘中模型会不断地开平仓。但在用历史数据测试时,只会有一次信号出现,导致实盘交易结果和测试结果会有很大差异。很多模型在测试时表现很好,真正拿到实盘上运行就让人大跌眼镜,这就是买卖信号出现反复所引起的。

要解决信号闪烁的问题可以采用两种办法:

一是用不可逆的条件来作为信号判断条件。比如,模型策略规定,一根K线的最高价高于某个固定价位时,模型发出买入信号。由于一根K线的最高价只能是不断增大的,所以某一刻开始满足条件,就会一直满足这个条件,出现的信号就不会消失,也就不会出现信号闪烁现象。

二是使正在变动的未来函数变成已经不再变动的完成函数。由于未来函数有时间周期,有些指标在一个短的周期内可能是未来函数,但在稍长的周期内就不是未来函数。例如,收盘价在一天收市前都是不确定的,所以对于一个日周期的指标在分时周期内具有未来函数特征,但是一旦收盘该指标就是定值,不会随明日及以后的行情而变动,所以该指标在大于一日的周期中就不是未来函数。

B 偷价行为

所谓偷价行为是指在开平仓的时候使用了当时已不存在的进出场条件。比如,模型策略规定,如果最高价大于某个固定价位即以开盘价买入,如此虽然信号不会闪烁,但是最高价大于某个价位时,价格已经高于开盘价一定距离了,这时用开盘价买入是做不到的。但是在用历史数据进行模型测试时,图表上是有买入信号存在的。

有一些偷价行为很隐蔽,还是以最高价大于某个固定价格买入策略为例,如果用此策略作为模型进场买入信号,看起来没有什么问题,但如果行情出现一开盘就跳空高于固定价格的情形,模型就不可能再以这个固定价格买到了。此时,模型的交易策略应改为,用开盘价与固定价格之中的最大值作为买入价格,如此就能避免偷价行为的发生。

信号闪烁与偷价行为对短线交易模型的影响是致命性的,投资者一定要对模型信号的真伪加以甄别。使用未来数据不用花费任何精力就可以轻松获得表面上非常高的成功率,但发出的买卖信号在实际操作中毫无价值,是一种交易欺骗行为,在实战中给投资者带来的惨痛损失和后果往往不堪设想。

C 检验风控表现能力,优化模型交易策略

衡量程序化交易模型最重要风险指标包括最大回撤、夏普比率等。由于历史事件与未来将要发生的行情事件,在原因上和波动程度上存在差异,所以,用实盘进行检验模型在各种复杂环境下的风控表现能力,以判断模型在一些风险指标上的波动范围是否与历史测试数据有较大偏差,如果出现偏差,则寻找原因并加以修正。

与此同时,要通过实盘运行发现模型交易策略中的缺陷和不足,并进行优化。比如,对不同的期货标的行情进行仿真运行,可以发现模型使用的交易策略在不同标的行情中的适用性。也许模型对农产品(如大豆)适用于日线交易,但在股指期货中却适用于分钟行情。再比如,模型中所用到的一些周期性指标(KD、RSI、MACD等),采用不同的时间参数得到的买卖信号效果是不同的。所以,寻找并调整交易策略中的最佳公式参数,也是对交易模型策略优化的一项重要工作。

经过一段时间的仿真运行(短则一个月,长则半年或数年),从不断发现问题到返回模型的策略设计步骤进行修改(有时候问题如果比较严重,还可能需要推翻模型,重新设计),再测试,再运行,循环往复,直至模型功能逐步稳定后,才能真正开始投入实盘交易。但即使是投入实盘交易,模型也还是会被不断地修正和完善,以建立更客观、更有效的程序化交易系统,实现真正的商业价值。

D “海龟交易法则”编制的程序化交易模型

下面以“海龟交易法则”编制成的程序化交易模型为例,展现整个程序化交易模型设计、测试、运行的全过程。

在金融界,流传着一个著名的故事。1983年,美国期货界的两个挚友——理查德·丹尼斯与威廉·埃克哈特之间就一个问题产生了分歧:伟大的期货交易者究竟是天生的,还是可以后天培养的?他们就这个问题进行了一场辩论,并为寻找答案进行了一场试验,这就是著名的“海龟交易试验”。丹尼斯和埃克哈特在1000个报名者中甄选了13个“海龟”,并用两周时间给他们传授了交易理念和法则。在随后的四年中,海龟们凭借这些交易法则取得了年均80%的收益。

二十多年后,“海龟交易法则”已经公布于众。如何将“海龟交易法则”建成一个程序化交易模型加以实际运用,以检验“海龟交易法则”是不是像传说中的那么神奇呢?

第一步归纳交易策略

首先是入市,入市是所有交易系统最重要的一个方面。“海龟交易法则”采用通道突破法入市,使用了两个有差异但彼此相关的入市系统:

系统1——以20日突破为基础的短期系统。

系统2——以55日突破为基础的长期系统。

“海龟交易法则”采用波动幅度管理资金,首先要得到20日的价位移动平均真实波动幅度,定义为N。

系统1入市信号:只要价格超越20日最高点或最低点一个单位,就买入或者卖出一个头寸单位。但是假如上一次突破是一次盈利性突破,那么系统1的当前入市信号将被忽略。

系统2入市信号:只要价格超越55日最高或最低点一个单位即入市。如果价格超越了55日高点,就买入一个头寸单位,开始做多;如果价格跌破了55日低点,就卖出一个头寸单位。所有突破都被视为有效信号,无论上一次突破是亏损性还是盈利性的。

其次是增仓。在出现突破时只建立一个单位的多头头寸,在建立头寸后以0.5N的间隔增加头寸,直到达到最大许可建仓单位数。如果市场波动很快,有可能在一天之内就增加到最大四个单位。

再次是离场。系统1采用10日突破退出法则,对多头头寸来说,在价格跌破过去10日最低点时退出;对空头头寸来说,在价格超过10日最高点时退出。总之,如果价格发生了不利于头寸的10日突破,所有头寸单位都要退出。

系统2则采用20日突破退出法则,对多头来说是20日向下突破;对空头来说是20日向上突破。只要价格发生了不利于头寸的20日突破,所有头寸单位都会退出。

最后是止损。以头寸风险为基础设置止损,任何一笔交易都不能出现2%以上的风险,所以容许风险为2%的最大止损就是价格波动2N。同时为了保证全部头寸的风险最小,如果有加仓头寸,则每加仓一次,之前建仓头寸的止损点均向加仓点位方向移动0.5N。

第二步编程建模

选取某程序化电子交易平台,将整理好思路的海龟交易策略在该平台的公式编辑器中编写程序。

第三步模型测试

假设以股指期货作为测试标的(也可以用别的期货品种作为测试标的),将上述编好程序的模型加载到股指期货指数IF000图中,并设置好相关的测试参数(见模型测试参数设置示意图)。测试用的初始资金设置为1000万元;测试数据选取股指期货从2010年4月16日挂牌至模型测试日期间的全部日线数据;手续费设置为万分之零点五;滑点设置为1跳(0.2点);启动测试按钮。

第四步效果评估

海龟交易模型对沪深300股指期货指数的交易测试结果中有几个重要的测试指标:年化收益率为39.82%,相当不错;单日最大资产回撤比率仅有3.89%;只是夏普比率偏低,仅有0.0363;总盈亏比为1.61;平均盈亏比为1.83,略显一般。说明该模型虽然是一个赚钱的模型,但还有一些值得改进之处。

第五步模型仿真运行

第六步投入实际应用

在经过一段时间的实盘仿真运行且交易比较平稳后,该模型就可以投入真正的实际应用,赚取交易利润了。
责任编辑:叶晓丹

【免责声明】本文仅代表作者本人观点,与本网站无关。本网站对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。请读者仅作参考,并请自行承担全部责任。

本网站凡是注明“来源:七禾网”的文章均为七禾网 www.7hcn.com版权所有,相关网站或媒体若要转载须经七禾网同意0571-88212938,并注明出处。若本网站相关内容涉及到其他媒体或公司的版权,请联系0571-88212938,我们将及时调整或删除。

联系我们

七禾研究中心负责人:刘健伟/翁建平
电话:0571-88212938
Email:57124514@qq.com

七禾科技中心负责人:李贺/相升澳
电话:15068166275
Email:1573338006@qq.com

七禾产业中心负责人:果圆/王婷
电话:18258198313

七禾研究员:唐正璐/李烨
电话:0571-88212938
Email:7hcn@163.com

七禾财富管理中心
电话:13732204374(微信同号)
电话:18657157586(微信同号)

七禾网

沈良宏观

七禾调研

价值投资君

七禾网APP安卓&鸿蒙

七禾网APP苹果

七禾网投顾平台

傅海棠自媒体

沈良自媒体

© 七禾网 浙ICP备09012462号-1 浙公网安备 33010802010119号 增值电信业务经营许可证[浙B2-20110481] 广播电视节目制作经营许可证[浙字第05637号]

认证联盟

技术支持 本网法律顾问 曲峰律师 余枫梧律师 广告合作 关于我们 郑重声明 业务公告

中期协“期媒投教联盟”成员 、 中期协“金融科技委员会”委员单位