个人爱好分享
055
我编写的程序:(虽然结果不行,但程序正确)
// //后为文字说明,编写模型时不用写出
MA8:=MA(CLOSE,8); //8个周期收盘价的简单移动平均
MA21:=MA(CLOSE,21);//21个周期收盘价的简单移动平均
CROSS(MA8,MA21),BK;//当MA8上穿MA21时,发出买入开仓交易指令
CROSS(MA21,MA8),SK;//当MA21上穿MA8时,发出卖出开仓交易指令
(CLOSE-MA21)100,BP;//
(MA21-CLOSE)100,SP;//
期货交易系统都能接模拟的行情。可以去那个软件的官网找到行情服务器配置的ip地址和端口就能看到模拟行情了。
[img]大家的交易困惑:
在现实的交易中,很多人都希望能建立一个能稳定盈利的交易系统,找到一个圣杯,无论是从书本中,或者 *** 中,或者别人的言传中,或者自己的臆想中, 都努力地去搭建这个系统,但很可惜的是,大部分人都并不知道判断一个交易系统好坏的标准是什么,致使自己在寻找的过程中,容易被人忽悠,也容易被自己蒙骗。 所以在2017年春节到来之际,写下这篇文章,希望能给大家指导。
----------------------------
揭秘:判断一个交易系统好坏的标准是什么?
判断一个交易系统是否好的交易系统,首先有两个条件要满足:之一,这个交易系统不能只在少数的1-2品种上能挣钱,而在其他的品种上会亏钱;第二,这个交易系统不能在某个时间内能挣钱,而在大部分时候都亏钱,而且在这个所谓的大部分时间内,你账户的回撤很大,不仅利润吐没,还会出现亏损,长期看,是无法盈利的交易系统,是亏损的。
这两个条件之所以会成为判断一个交易系统是否好坏的依据,因为任何的交易系统都能找到一个能盈利的品种,至少某个时间内能盈利的品种,例如均线系统,如果某个品种的趋势性好,走势稳妥,则某个均线就适合他;进一步来看,某个品种的趋势走势秉性,有着特定适合他的均线,即这个品种的趋势走势适合这个均线,而另外一个品种的趋势走势适合另外一条均线。
许多人都有这样的想法:“某个交易系统如果只在少数的1-2品种上能挣钱,而在其他的品种上会亏钱,那么我用这个交易系统,只做这个能挣钱的1-2个品种,不就行了嘛,我不做其他的品种,不就可以实现挣钱了嘛。”这样的想法,大部分人都会有,而且认为很有理,很在理,逻辑很充分,于是他们也就这么做了,包括做程序化交易的人,普遍有这种想法。
当然,话说回来,如果某个交易系统确实可以在少数的1-2个品种上持久地挣钱,哪怕只在一个品种上持久地挣钱,在其他的所有品种上都持久地亏钱,那么我们只在这个能挣钱的一个品种上运行交易,其他品种全部放弃,这是完全可行的,我们也是能够持续地盈利的。
但是问题的关键是:你如何知道,这个交易系统可以在这个品种上持久地挣钱?我们经常说“这个交易系统在**品种上能挣钱”,其实是将这个品种的过去一段时间,复盘和统计了一一下,发现能够盈利,如果很负责任的话,复盘的时间比较长,例如,将这个品种从上市以来的所有时间段,都运行了复盘,发现这个交易系统在这个品种是能够盈利的(比较简单的 *** 是编写程序化,对过去的历史运行了一次测试,测试结果是能盈利的),我们就相信这个交易系统就适合这个品种,在这个品种上就能盈利,于是就会下结论“这个交易系统可以在这个品种上持久地挣钱”,因为过去的所有历史复盘,都挣钱了,自然还有什么理由不相信在未来不会挣钱呢?自然就会认为这个交易系统在这个品种 上可以持久地盈利。
当然,如果这个品种上市的时间比较早,已有了十几年,已经过了几轮的牛熊,那么你用这个交易系统运行测试的话,发现是能盈利的,而且盈利很不错,每年平均收益率能在40%以上(盈利必须是显著好,如果是勉强盈利,盈利薄弱,则并不能保证未来盈利,不能说明问题),那么或许可以说,这个交易系统即使在其他品种上都亏损,而在这个品种能盈利,而且盈利不错,那么或许可以说“这个交易系统只适合这个品种,你只交易这个品种就行”。但是,如果这个品种上市的时间不长,只有四五年,甚至一两年,例如铁矿石、焦炭、焦煤等品种的上市时间都只有三四年左右,在过去的这几年中,你测试你的交易系统,发现在其中某个品种上能盈利,而且还不错,那么并不能下结论“你这个交易系统适合这个品种”,因为相对于漫长的行情岁月而言,三四年真的是比较短,并没有经过牛熊周期,三四年并不能说明多大的问题,一个品种的走势规律和秉性,是可以发生改变的,过去的行情规律适合这个品种,但是并不能保证未来这个品种的行情走势规律不变化,一旦变化,则你这个交易系统就很可能出现亏损。
一个品种的走势规律和秉性是容易发生变化的,不要说小秉性容易出现变化,就是大秉性也容易出现变化,例如,在过去几年的时间内,这个品种的秉性是趋势性好,即“行情的趋势性好、假信号少、毛刺少,走势稳妥”,则这个品种就很适合做趋势,是很好的趋势品种,普通的趋势交易系统就适合他,用普通的趋势交易系统就能挣钱;但不代表未来的趋势性秉性还是好,这个秉性是可能改变的,无序震荡、假信号多、毛刺多就可能成为他的秉性,而且持续的时间很长,能持续几年,则你沿用此前的趋势系统,就会步入长期的亏损中过,而且亏损巨大。秉性改变的品种较多,例如大豆一,大豆一在2012年之前的趋势性秉性是很好的,趋势性很强,是商品期货中成交量更大的商品之一,极其活跃,持仓量和成交量都很大,但是从2012年开始到现在2016年底,无序震荡是他的秉性,已经持续了长达五年多;再例如,PTA在2015年下半年之前,PTA的趋势性秉性就不错,用普通的趋势交易系统是可以盈利的,但是在2015年下半年后,无序震荡就成为了他的秉性,已经持续了一年半,则你用普通的趋势交易系统,亏损很可能就会很大;还有棉花在2012-2013年,无序震荡是他的秉性,但2014年开始,趋势性秉性就变得强一些,还有铜、塑料L等等。
商品秉性改变的背后是商品供需矛盾的改变,是基本面大势的改变,在供需矛盾平衡后,这个商品的趋势性就基本上不会强,基本上无序震荡就是他的秉性,而只有在供需矛盾较大的背景下,他的秉性才可能成为趋势性秉性,当然只是可能,因为一些品种即使出现供需矛盾很大,走出有趋势性的行情,那么该品种走的趋势也可能是震荡式趋势,此时普通的趋势交易系统也很可能不容易盈利,或盈利较少。所以虽然在过去的两三年,用某个普通的趋势系统,在某个趋势性较高的品种上,能盈利,那么以后只要坚持在这个品种上,还用该交易系统,你也未必能盈利,因为这个品种如果供需矛盾不大,供需平衡,则趋势的秉性就会改变,无序震荡就成为他的秉性。所以不能以为,用某个趋势系统在某个品种上,你挣钱了,未来坚持下去,你还能挣钱,也可能赚,也可能亏,因为品种的秉性是否继续延续此前,是很不确定的,以前的挣钱可能带有较大的运气成分。
上面说过,如果这个品种的上市时间已有了十几年,这个系统测试的话,能盈利而且盈利很不错,或许可以说“这个交易系统只适合这个品种,你只交易这个品种就行”。之所以说“或许可以”,而不是说“就可以”,是因为许多人在开发系统的时候,是专门针对这个品种,是先有品种,而后有针对这个品种的特殊参数的交易系统,即专门模拟这个品种的过去历史,然后不断调参数,直到出现很不错的盈利为止,这就是参数的优化问题,过分优化,未来越会失真、失效(在程序化交易中普遍存在这种问题,而且绝大部分人还意识不到他的危害性,还沾沾自喜地以为找到了针对某个品种的圣杯)。当然,如果没有去优化系统、优化参数,用系统去测试上市时间有十几年的品种,能盈利而且很不错,有很大的底气可以说“这个交易系统适合他”,但是也不能保证未来会延续,因为未来这个品种的秉性或许也会改变。
那么答案出来了,什么样的交易系统才算是好的交易系统呢?就是满足大部分品种的交易系统,不是只满足一个品种,也不是满足所有的品种,即用这个交易系统去复盘或测试的时候,参数不变,测试多数品种上市以来的所有时间,都是可以盈利的,其中有两个左右的品种,测试的业绩很好,那么这个交易系统就是非常好的系统,未来就很难失真,可以放心地使用,就算是一个聚宝盆、圣杯。
为何?因为大多数品种的走势,都已经代表着各种各样、复杂多变的秉性和规律,未来的秉性和规律很难再有新的花样;而一个交易系统的核心是交易逻辑,一个好的交易逻辑,肯定会具有普适性,不仅适合这个品种,也会适合另外一个品种,会适合多个品种,能够应对多个品种的不同的秉性和规律;当适合大多数品种的时候,就表明你的这个交易系统的交易逻辑具有普适性,能够应对复杂多变的秉性和规律,未来的秉性和规律也是能够应对的;如果这个交易系统只在一个品种上能盈利,而在其他品种上亏损,那么就说明,你这个交易逻辑是有问题的,在这个品种上能挣钱,大概率上就是巧合、偶然,或者你优化了参数,未来是非常难保证盈利的。之所以很难满足所有的品种,是因为少部分品种容易 *** 纵,成交不活跃,毛刺太多,主力逆技术分析而为,所以该交易系统就很可能不适合他。
综合上述,判断一个系统的好坏,应该是看他是否满足多品种,即适合多个品种,在长期内都可以盈利,则这样的系统,长期的稳定性才很强,才是很好的交易系统,可以说成圣杯、聚宝盆了。
在期货交易中,什么叫“过度拟合”?
举个量化的例子。你建立了一套期货交易系统,你需要进行 历史 测试。
你的交易系统中,有一个参数。什么叫参数?比如,海龟交易法则里的突破20日的更高点开仓。这个20,就是参数。
你为什么选20?你为什么不选21,34,15或者28?
这就叫参数的选择。
所谓的过度拟合,就是你用这套策略,经过 历史 回测之后发现,如果我把参数变成24的话,那么我的系统,在过去的这段走势中,收益是更高的。
所以,我就采用24。我交易系统中,所有的参数,都要选 历史 表现更好的那个。这就是过度拟合。
这样做的坏处是什么?因为它的效果是 历史 走势中更好的,但是 历史 走势更好,不代表未来依然会更好。可能你过了一年之后回来测试,发现现在更好的参数是32了。因为未来这一年的走势融入了 历史 中,改变了 历史 。
而如果你过度的拟合出了一个 历史 测试结果,比如,你发现你用100万交易螺纹钢期货的 历史 走势,你的更大回撤仅为10万,你的更大连亏次数仅为5次。于是,你基于这个优化过的数据来设计了你自己的仓位。
结果呢?未来的行情走势,这个参数忽然就不如想象中的那么好,节奏变了,导致你直接亏损到清盘线。
这就是过度优化的危害。
实际上,能走到优化参数的这一步的期货交易者,一般而言,不会爆仓,更大的风险是亏损超过预期,进而导致的一系列信心的挫败,意志的动摇而已。
很多期货交易者都会对系统进行参数的优化,但是他们往往不知道,优化到什么程度算没有过度拟合。实际上,我也不知道。
过度这个词,很明显,是一个没有范围的词。什么样叫做过度,这不是我能够说的算的。
那么,我采用了什么方式去避免过度拟合?
我采用的是,强行拔高,站在另一个维度来看待这个问题。
拟合,参数优化,说白了,都是些小细节。不同参数的背后,代表的是不同的盈亏比。比如,20日均线和50日均线,你承担的单次亏损额度,和在一波行情中的收入肯定都是有大小之分的。但是,行情走势是不确定的。
这一点很重要。既然我们都不知道未来行情会走成什么样子,那么,我们在这里纠结我选择哪个数字,有意义吗?你选21,你选15,你选45,这是不是拟合,这有没有过度拟合,是由未来的行情告诉我们的,我们没有办法走到未来,纠结这个就没有什么意义。
所谓期货交易大道至简的原因就在于,有些时候,你的想法必须要简单,简单到别人觉得太特么的粗暴了。
我站的维度,是直接看系统。
20日均线,和50日均线有区别。突破10日的高点,和突破20日高点也有区别,前者信号更多,止损次数更多,但是前者的入场位置可能某些时候有优势。
你喜欢做短一点的趋势,你接受不了大的利润回吐,那么你就选择小参数。你不喜欢经常出信号,你想要拿超大的趋势,那么你就选择大参数。
至于小参数中,是20更好,还是18,21?纠结这些,完全没有意义。
除此之外,仓位的设计,也不应该参考所谓的 历史 。有些人对策略仓位的设立,是非常的依赖其 历史 测试的。包括, 历史 更大回撤, 历史 更大连亏,平均亏损等等。可以不可以?可以。但是,如果处于绝对的安全角度,更好打个对折,再配合上赢冲输缩。
在期货交易中,因为走势的不确定性,仓位的管理,实际上也没有完美的方式。可能你按照策略 历史 回测的仓位来设计,根本一点事都没有,而且还有点偏低。但是也可能,你保守到只开一半的仓位,这个策略依然给你干清盘了。
走势的不确定性,它让一切都有可能。
一套策略,它被清盘了。它是本身有问题?那可不一定,有可能仅是因为这段时间的行情神挡杀神,佛挡杀佛,你之所以被清盘,不是逻辑的问题,是资金管理的问题。
资金管理的方式,是一个很长的话题。如果你基于对一套策略负责的角度,更好是安全垫+保守仓位+赢冲输缩。
所谓的过度拟合,其实本质就是让一个期货交易者,过分的自信了。他觉得他的策略很好,他觉得他的参数好,他觉得他的仓位好。
结果行情忽然变了节奏,把他打懵了之后走的极度流畅。这种事情说白了,根本就不可能100%解决。因为啥?
因为走势是不确定的。 你做趋势,就是不来趋势。你做震荡,趋势一直不见停止,你做日内,无数杂波…
因此,我们如何尽人事?
做好资金管理规则。账户没有收益之前,尽量保守,如果保守依然还在亏,那就继续缩仓。如果你缩仓到了只开一手,依然是停不住亏损,那么,你就只能停止开敞口,或者,只能清盘。
你确保了自己的交易逻辑没问题,你的资金管理做到了极限依然止不住亏损,那么只能说,你的运气简直背到了买了10次彩票全是一等奖……
市场让我死,我不得不死。
最后,总结一下。过度拟合这件事情,没有什么标准,也没有什么好的 *** 。它也根本就无法彻底解决。
我建议,忘记这件事情。你要从自己执行,自己的偏好的角度来设计交易系统。如果20这个参数对于你来说很合理。那么21和18,根本就没有区别,因为你不知道未来。
如果你怕过度拟合了。那么你就把资金管理规则给设计完善了。资金管理规则完善了,你拟合没拟合都无所谓。
使用同一组数据,不管用什么算法,结果相同。路途也相似
1:尽量减少参数的使用
2:同一个参数用多品种多周期测试
3:测试时间尽量用更长的时间
4:制定一个规则,比如回撤多少有代表策略目前已经失效
优化参数控制在4个以内
区分实与虚,光与暗
可以多测试不同的商品。比如你的系统是为股指设计的,可以拿去测试螺纹钢,铝,外汇。另外时间段足够长。起码要50次以上交易数。如果调整参数数值,比如两个参数,随便改改。都能正收益,就是可靠的系统
这个无解,用多策略多品种多周期做组合来规避。没有完美的策略,因为市场结构本身就一直在变。
在期货交易中,如何避免交易系统的过度拟合?
题主的烦恼李股涨可以理解,题主是学习的理论太多,交易 *** 太多,交易系统还没有确立,尚在测试阶段。李股涨建议之一主观臆断是交易系统的天敌,建立交易系统的目的就是克服主观意识,成熟的交易者凭交易系统发出的交易信号操作,无论对错均按系统信号执行;第二交易系统设置原则是简单明了,易操作,能重复操作;
可以多测试不同的商品。比如你的系统是为股指设计的,可以拿去测试螺纹钢,铝,外汇。另外时间段足够长。起码要50次以上交易数。如果调整参数数值,比如两个参数,随便改改。都能正收益,就是可靠的系统
我的经验是,减少参数的个数。比如说,两个参数的交易系统就比是10个参数的更加不容易过拟合。如果参数太多,在调整的时候就会忍不住一直调整到更好的回测结果为止,过拟合了,自己也不知道。如果参数少一些,更能拿到接近普遍规律的结果。
其实想要做好期货也没有这么的难,找到有效的 *** 和工具可以帮助交易者。
我们的策略在逻辑编程完成后,总要进行定量的数据确定,通过对 历史 数据的测试,找到适合的数据范围。
但是,往往,有很多量化者朋友喜欢拟合出个最牛 的数据组,实现高胜率低回撤高收益。这样的称为过度拟合。
我们都知道,所有的测试都是用 历史 来验证思路。数据在 历史 上表现好,在未来却不一定适用。就好像,你拿着北京的地图在上海找路,能行么?
一个好的策略,在选择数据时有这样的特征。
1.数据在合理的范畴内变化时,结果不会有性质的差别。就是说,数据组的数值在合理范围变化时,结果仍然是盈利并且回撤不大的。如果小小的变化都会造成亏损的结果,那么策略不成功。
2.不同的测试品种,不应该产生相反的结果。
不管是股票还是螺纹或者豆粕,不能通用的策略也不是成功的策略。
别搞那么复杂,越简单月有效
网站首页:期货手续费网-加1分开户(微信:527209157)
本文链接:http://52ol.cn/post/146922.html
本站福利推荐!!!
正规期货账户开户!交易所手续费加1分(+0.01元),无条件!无资金手续费要求,享受手续费加1分!期货开户微信:527209157
或扫描下方二维码添加微信
Copyright 2012-2024 期货手续费网-加1分开户 网站地图 邮箱:diyijiaoyi@qq.com 微信:527209157 湘ICP备18014167号