日志技术分享
首先,你要有一套明确可量化的期货交易策略
然后,要把这个交易策略写成程序
其次,用程序化交易软件(比如TB)进行历史回测,优化参数(警惕过度优化风险)并模拟运行
最后,用程序化交易软件自动交易,你盯盘就好,不要干涉,如果出现问题,及时修正
说高端点就是为了个大数据,这样能根据历史推算成功率。
说白了,恕我直言那就是骗自己,没卵用的东西。不同的行情不同的策略,不同的逻辑。你交易策略历史胜率80%都没卵用,可能这10次里面8成功都是在牛市背景下,另外2次失败是熊市背景下,等到你用的时候是熊市了对不起失败了那就是100%了,80%胜率?不存在的!
这种东西就是最傻了,除非真坚持用个10几20年去轮回一波牛熊,不然这胜率根本没用没有说服力
从本质上看,我们都是一样的,是一个动态的、发展的却又不断平衡的整体,用孤立单纯的历史去预测未来,无异于刻舟求剑、缘木求鱼。
刚入行的时候,像很多人一样,我对一切都很新奇,特别是技术分析。我买来很多书学习,在构建系统的时候,必不可少的步骤是进行历史数据回测,而不久之后我就发现了问题:历史数据回测往往是不可靠的。具体来说:一是历史数据回测胜率和实际胜率之间的相关性不可捉摸;二是回测胜率高且稳定的系统在实战中会出现不可预测的回撤,甚至是大幅回撤。
我一直不明白是哪里出现了问题,于是疯狂修补升级自己的系统,自学各种技术理论,购入更多的数据,甚至动用神经 *** 算法,最终却没有任何改进,直到我遇见了貘先生。貘先生是网名,他的真实职业是国内前沿物理实验室的研究员,“如果仅凭历史数据,价格是不可预测的。”他这样说道。我却不服气,张嘴想要反驳,他却拿出了一幅图给我看。
看到上面这幅图你觉得哪一面正对着你?你可能会先看到下面的长方形,接着又觉得不对,侧面似乎也凸出了。其实这是一个矛盾的空间,但作为观察者我们有权决定如何观察它,我们用自己的观察解决了其中的矛盾与悖论,这是构建确定性世界观的基础。事实上,创造这个立方体的是我们自己,如果没有我们的观察立场,它们只不过是几根毫无意义的横竖线罢了。
下面来看看技术分析,以波浪理论为例,这个理论无法证伪,因为如果根据波浪理论预测错了,是你的浪数数错了,而不是理论本身问题,100个人有100种数法,你用自己的观察给每一朵浪赋予了意义。然而,事件的发生并非预定,而是某种“中间层现实”,基于物质实相与精神实相之间,称之为“现实”的历史取决于我们所做的选择,即便有时候根本没有意识到自己刚刚做了选择,这种无意识导致了我们心中的幻象:对机械唯物实相的幻象。
让我们换一个思路,有人觉得不用在意一日三餐,可以用营养补充剂,但反过来想,营养补充剂的类型只限于人类目前发现的种类,而食物中到底蕴藏了多少种人类需要的营养,没有定论,也许是1万种,也许是1亿种,也许更多。如果按照这个逻辑,发现了100种就补充100种,以为这就是全面,无疑是可笑的。
历史数据就像发现的营养素,由于其他未知的关系种类太过庞杂,留存的数据相当于小数点之后的多少位,所以在计算中被忽略不计了。更进一步来看,在未来,虽然那些未被发现的因素可能会起作用,让我们的系统产生巨大偏离,这是技术分析的前提,但这个前提本身就不够牢固。
这让我想起了每年都会遇到的“黑天鹅”事件,百年不遇,甚至千年不遇的偶然,已经在我不长的交易经历中遇到过多次了。当我们依据历史数据得出模型后下单,就不仅仅只是观察了,而是切实进入了这个系统,改变了其中某些变量,系统另外一处必然会出现相应的反应。换言之,这些因素本身就改变了实相。虽然我们还不能确定两者之间的隐含变量,但这必然使系统产生了变化,因为我们入场的那一刻,世界已经不是原来的世界了。
那么价格的本质是什么呢?
是能量。我们用自己的生命换取金钱,投入市场,输入了能量,交换着能量,最后形成了价格。从本质上看,我们都是一样的,是一个动态的、发展的却又不断平衡的整体,用孤立单纯的历史去预测未来,无异于刻舟求剑、缘木求鱼。
那么为何事后回看,仿佛价格是可以预测的呢?
因为此时此刻我们回头,会将观察者的作用极小化,而与观察事物分离,客观真实的世界就浮现出来了。可是我们永远无法站在客观真实的视角,去看当时的自己,甚至此刻的自己。
你通过TB编写你的交易策略,把你的策略设定为公式应用,然后编译成功后,在你想测试的品种界面上调出该公式应用,然后点击测试,你就可以看到相应的回测报告了。
在期货交易中,什么叫“过度拟合”?
举个量化的例子。你建立了一套期货交易系统,你需要进行 历史 测试。
你的交易系统中,有一个参数。什么叫参数?比如,海龟交易法则里的突破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.不同的测试品种,不应该产生相反的结果。
不管是股票还是螺纹或者豆粕,不能通用的策略也不是成功的策略。
别搞那么复杂,越简单月有效
首先你要提出一个自己的策略,一般来说就是一些规则的判断了,然后根据这些规则产生出signal,就是交易信号。 发出了交易信号,就要根据信号进行持仓或者平仓操作。你要建立一个向量记录你每天的资产净值,或者说资产序列,其中的PL 就是跟你持仓的股票的价格变化来决定的。。。
说白了 就是个模拟
网站首页:最新期货开户网
期货开户微信:527 209 157
本文链接:http://jienve.com/post/43376.html
Copyright 2010-2024 最新期货开户网 网站地图 微信:527 209 157 湘ICP备18014167号