搜档网
当前位置:搜档网 › 程序化交易日内模型的编写与实盘验证

程序化交易日内模型的编写与实盘验证

本人致力于程序化交易日内模型的编写与实盘验证,几乎到了废寝忘食的地步,前后编写的模型数以万计。目前为止,最好的实盘成绩是50天300%左右的单手收益率。300%的单手日内收益算不算多?日内的理论收益的极限是多少?究竟有没有日内交易的极限?我想在此发表一下个人见解。毕竟学无止境,强中更有强中手。希望能得到同道中人的参考意见和建议,以改善自己的模型;同时,自己在这方面的经验也乐意和大家分享。
首先,从期货品种选择方面讲,日内波动越大,模型的理论收益就越大。我的经验是,橡胶和白糖的波动是比较大的,从选择编写的品种方面,应该以这两个品种为首选。
其次,从时间级别考虑,1分钟的模型肯定优于其它级别的模型。当然,秒级别的模型又会比1分钟的要强。但级别越小,程序化模型成功的可能性会越小。因为其中会受到信号闪烁和滑点的限制,波动的波幅过小,在能否成交和够不够手续费的问题上需要考虑,所以级别不能无限制的缩小。另外文华的秒周期只有当天的数据,限制了秒周期模型的编写与测试。所以本人认为目前最好的就是1分钟级别的模型。

以橡胶为例,因为是日内交易,会受到时间的限制。橡胶一天1分钟的K线只有215根,如果1根K线平均涨幅为一元,单边市场的振幅也只有215元,也就是1%。1手的当天利润就是1000元左右。50天理论上可以达到5万元,极限利润就是400%多一点。这个平均每根K线涨幅为一点,当然包括盘整里面的K线数。如果是趋势行情,有时单根K线可以达200元,极端的行情甚至超过1000元。这些特殊的行情不在探讨之列。经过长期观察,橡胶平均一天的振幅也就1%左右。有时看似涨跌会有2%,3%,甚至停板,但跳空的缺口日内没有办法吃到。有时会上下几个来回,振幅可观(可超过200元),但排除了低于50元振幅的行情(低于50元的波动行情除非最低最高价买卖,否则很难吃到),也是所剩无几。所以日内50天超过500%的收益应该算是极限了。用户IP: 来自:
能经受住实盘考验的好的模型有下面几个要求:一不会有未来函数,二不能有信号闪烁,三起码要有一个以上的滑点设置以便在实盘中使用追价功能以提高成交率。所以能经受住实盘考验的日内模型,收益率会有很多限制,与测试结果有很大的差别。可以说50天(8000根K线)单手收益率能超出500%极限值的,实战性就会有很大的怀疑。测试中超过500%甚至1000%的模型也会有出现,但它们肯定不是用了未来函数,就是通过频繁交易,或者在实盘中有信号闪烁的问题。用了未来函数,信号的出现会滞后于行情,实盘中是不会

成交的,但可以统计在事后的测试结果里,所以用了未来函数的模型测试结果很好但不能实盘。有信号闪烁的模型,实盘中会不断的开平仓,事后测试只算了一次,所以实盘和测试会有很大的差距,不能根据测试结果来判定实盘结果。有一个点以上的滑点,可以在测试时把对价计算在内,也就是滑点误差因素已经考虑进去,扣除了滑点误差后的测试结果比较接近实盘,同时在实盘中启用追价功能,提高了成交的几率,模型才更能接近实战。所以在日内这么小的波幅的前提下还要解决以上三个问题,剩下的利润空间就更少了。这就是日内模型收益率难以突破的难点所在。
回月球人:我是用别人的钱试的,就好比创投公司,投资时风险巨大,但成功后收益也越大。我不明白这么多人对是不是真金白银这么敏感,其实在好的模型和过硬的心态面前,真金白银和模拟资金没有任何区别。当你把钱不看成钱的时候,你的心态关就算过了。对于这一观点,用过全自动化交易的人应该会有同感。
偶尔1天2天的完全有可能,但散户不可能连续每天有这么多的收益率。一天300%的收益有2种可能,一种是特殊行情造就,如涨停后又跌停又涨停这样反复几次,还有一种可能是通过频繁交易,也就是所谓的闪单交易,有些交易单甚至快到百万分之一秒,这个在国外也有过,美国已经明令禁止。国内还没有这方面的限制,有期货公司也正在试图开发这方面的软件。这要求很高,括编程、硬件、通讯速度和数据获取等等方面,投入巨大,散户很难在这种模式中获利。你见到的300%收益可能是通过手动的,否则真的令人怀疑。
我也不要你相信啊。对你来说,怀疑一切比相信一切更容易。相信是一种资产,而怀疑是一种负债。你这种态度也许可以赚一点钱,但要成为大师级人物,也许要一辈子了。呵呵

喜欢短线的人,比较认同日内自动化的操作模式,而喜欢长线的人,对自动化交易并不感冒。
对于期货而言,按照持仓过夜与否来分类,可以分为短线持仓和长线持仓,短线一般是指日内交易,长线一般是指留仓隔夜。当然还有其他的一些分类方法,比如按时间周期来划分等等。
这两种持仓方式,都有人赚钱有人亏钱。赚钱与否,不在乎是否持仓隔夜。但一般而言,持仓隔夜的利润会比较多一些,当然承受的风险也比较大。日内交易风险相对较小,但利润也比较微薄。
自动化交易一般适用于日内交易的比较多一些,当然也有自动化持仓隔夜的,相对来说就比较少了。
对于自动化交易的看法,社会上无疑会分为2类:反感和拥护。一看他们的态度,大致可以知道

他们操作的方式。
日内自动化交易模型能否赚钱?这是很多人的疑问。其中不但有长线持仓的人,也有一些日内操作的人。上面的帖子说过,日内自动化之所以比较难,是因为日内相对波动幅度比较少,另外还要克服信号闪烁,滑点,成交等诸多困难,所以在日内模型中能够稳定赚钱的,并不多见。
为此,自称能够自动化日内赚钱的模型一出现,就遭到很多人的质疑。甚至有人不分青红皂白的说是骗子。他们的经历和直觉告诉他们,日内赚钱的自动化模型是没有的,一旦出现,就是想骗钱的幌子罢了。
在此,我想谈一谈自己的看法。
新的事物出现,肯定有其出现的原因,一旦存在,也有其必然存在的理由。对此,我们不应一概的否认或视而不见。人性的不完美性,造就了自动化诞生的空间,市场的不可预测性,成就了自动化存在的理由。
自动化交易有其诞生的土壤,甚至有人预言会成为未来的主流。认识它,研究它,而不是排斥它,应是我们的正确态度。至于如何才能编写能够赚钱的日内模型,在以后的贴子中会有逐步的介绍。请大家分一份小小的心关注后面的贴子。用户IP: 来自:
今天的天胶走势是自动化模型发挥最好的时候。像昨天的几乎以盘整为主的走势类型是自动化频繁交易模型的死穴。如何完美的结合趋势和盘整,是自动化模型必需要先解决的问题。这些有关技术层面的东西,往往是钻进技术指标来研究自动化模型的人的牵绊。跳开这些烟雾,你就会从中得到解脱。首先,能够保证日内赚钱的模型,要求不能够有太多的交易次数。以1天5次交易为例,5次交易,如果一次手续费是10元,5次手续费是50元。这还不是主要的,关键是,每增加一次交易,如果买进时增加1个滑点,平仓时也是一个滑点,那么一次就10点的损失,10点对于橡胶就是50元,5次就是250元,滑点加手续费就去了300元。50天就不见了1手资金15000元。如果你只拿1手橡胶的资金入市,50天后平均每天交易的滑点和手续费就让你血本无归,更别说你开仓方向错误造成的损失那部分了。所以要想在日内模型中获利,减少交易次数是一个努力的方向。我说的这一点可能期货公司不高兴,其实从长远来说,只要客户不死,就是他们长期赚钱的工具。长期来说对他们也是好的。用户IP: 来自: 日内模型相对于非日内模型而已,相对简单实用,因为没有隔夜,所以风险可控,资金使用率可以放得大一些。而对于比较复杂的资金管理和顺势加仓减仓的那些做法,也可以省略。唯一的风险就是在快速波动的时候,有仓位平不掉的风险。但这种风险是所有期货人都会遇到的,

包括手动、隔夜、长线等等,所以这个问题不是日内自动化所特有的问题,相反在这种行情之下,电脑自动平仓肯定比手动反应快,也显示出它的优势。

如何克服信号闪烁
好的程序化模型,是期货人赚钱的秘密武器,所以很多的技巧性问题,也很少有人拿出来与人分享。编写人员各自为战,技术不能提高,加上提供自动化编写模型的软件平台也有这样或那样的问题,所以自动化交易在推出的这几年,也难有什么像样的突破。文华作为自动化模型的领先者,开始时给参与的人一个模拟的平台,每周有模拟比赛,对推广自动化交易无疑起到积极的作用。但过早的对模拟平台进行收费以及取消每周的模型交易比赛,无疑有点过河拆桥,自掘坟墓。好了,话归正题。
信号闪烁问题的出现,是由于引用函数的不确定性引起的,也属于未来函数属性所引起的。因为在当前K线没有走完的时候,你引用了收盘价、均价等等这些函数,还没有最后确定,盘中由于价格的波动,刚符合了条件,后来价格变化了,又变成不符合条件了。所以刚出现的信号消失了。这种信号闪烁反复的问题,对自动化编写人员极大的困惑,很多模型在测试时表现很好,真正拿到实盘就大跌眼镜,就是因为信号反复引起的。对于引用的价格,一般有下面几种:开盘价、最高价、最低价、均价、最新价和收盘价。这些常见的被引用的价格,一般有如下特性:1、开盘价:具有唯一性,最稳定。引用该价格信号没有变动。2、最高最低价:具有正向稳定,反向不稳定的特性。正向引用价格没有变动,反向引用价格有变动。3、均价:均价包括很多种均价,如一般平均,移动平均,加权平均,高低价平均,开收价平均等等,引用这些价格由于数据变化,不管是正向引用还是反向引用,都会引起闪烁不定。4、收盘价和最新价。收盘价在K线走完以后具有唯一性,没有走完之前等同于最新价。这个价格变动的范围最大,引起信号反复的可能性最大。
知道了引起信号闪烁的原因,就容易找到解决的办法。一是把上面提到的可能引起价格变动的函数改成不会变动的函数,如均价改成开盘价、最高最低价;二是在k线走完以后才发出买卖信号,使正在变动的函数变成已经完成的函数,如收盘价改成上一K线的收盘价,均价该成上一根K线的均价等等。
进行了以上的改动,有些模型从不能实盘马上就可以进行实盘,有些模型则不能,原因是通过了以上的改动,原来测试盈利的模型就变成了亏损模型,这样再去实盘就没有意义了。如何解决这个问题?将是下一讲的内容。
看到有人跟帖以后继续下

面的内容。

确实不错!
但有一点美中不足的之处:首先:楼主系统测试的时间貌似有些短,一般模型测试,波段不少于5年,日内不少于1.5年,1分钟不少于半年才比较合理,比如:我们的铜测试了10年以上的数据,胶测试了13年以上的数据,这样才能把最极端的行情充分考虑进去

其次:楼主没有说测试和实盘的仓位,同样的系统,仓位不同,结果会完全不同,仓位过重的话,很容易取得暴利,但一年中只要出现一次极端行情,前面的努力便统统白费!



一般波段不少于5年,日内不少于1.5年,1分钟不少于半年?等这个时间过了,黄花菜都凉了!实盘测试的作用不是找多长时间内才出现极端行情,实盘测试的作用主要看静态的测试与动态行情间的差异值然后进行参数调整,比如测试价格和实盘真正开平仓价格相差多少,得出结果后调整追价参数。模型赚不赚钱,其实静态的测试就可以看出八九不离十。下面我还要谈到《如何理读测试结果》。
至于测试仓位问题,还是固定1手最能说明问题。仓位不同,只是绝对值有差异,但资金收益率是没有影响的,比如15000元做1手橡胶,150000做10手橡胶的收益率是一样的,但它们收益绝对值不同,并不影响收益率是一样的。我们这里只讨论1手的收益率,至于是否会爆仓的问题,是另外一个要讨论的问题,这里可以简单说下:资金投入比例可以根据测试记录的资金最大回撤来考虑投入资金的比例。比如你有100万,能忍受的最大资金回撤率是5%,就是5万。在特殊极端行情(出信号没有成交,反方向亏到停板价)的时候,也就是资金损失50%的情况下,那么你最多可以投入10万,也就是你总资金的10%。我个人觉得,短线只适宜于小资金。至于大资金,还要考虑资金的分批进场,资金管理策略等等。是完全不同的一个范畴。

模型编写经验分享:1\如何过滤调整当中的信号:趋势类的模型,遇到调整行情往往会大亏,如果趋势类的入场点位不好,比如用比较大周期的均线交叉点位进场,在日内模型中,往往得到的利润比较少,更经受不起几次的盘整亏损.所以过滤盘整中的信号就显得十分重要.过滤得过程中如果把握不好,往往会把真正的信号给过滤掉了.可以说过滤盘整信号是趋势类模型编写的核心.由于大部分的模型都属于趋势类的,因此可以说过滤盘整信号是程序化模型编写的核心技术.2\
要想过滤调整信号,首先对调整行情做一个定义.何谓调整:我觉得<缠中说禅>对此的定义比较好,就是:只有一个中枢的走势行情叫盘整.换言之就是:高点比高点低,低点比低点高或者高点比高点高,低点比低点低的走势类型.定义了调整

相关主题