我是过度拟合了吗?

最近一直在做策略的回测,经常发现一个有趣的现象:一个策略调试好之后再加入一个因子,有时候新加入的因子权重非常低,但是策略整体收益却还是有比较明显的改善,有时候回撤还会减少。
比如某策略使用A、B两个因子,权重分别赋予50和50,选择策略排名前10的按周轮动,年化收益测出来是20%,最大回撤10%;后面再加入一个因子C,权重赋予仅为1,结果整个策略的收益提升到25%,最大回撤降低到8%。
这样我理解是不是有过度拟合的嫌疑?因为新加入的因子权重非常低,新策略相比老策略其实选出的券只是边缘位置的一些发生了很小的变化,结果导致的收益率差异感觉应该是一种偶然。不知道我这种判断是否准确,请各位大佬指教。
发表时间 2023-07-27 14:12     来自广东

赞同来自: evilcong8 zhuzi51

3

Duckruck

赞同来自: 模型先生 Ake90 scott

@scott
小市值策略的容量有限,只适合小资金。如果上大资金,难免产生较大的滑点。
无脑小盘轮动策略的容量其实还可以,分散的股数比较多的话,换手率并不高

而且因为往往是冲高放量乃至封涨停时卖,不用担心卖不出

买入时虽然缩量,但往往不会一下子就拉,可以慢慢买
2023-08-03 08:43 来自澳大利亚 引用
0

scott

赞同来自:

@模型先生
实盘要20%以上年化,那么10年以上的数据,回测收益达到40%以上,除了小市值外,其它策略好像很难达到啊
小市值策略的容量有限,只适合小资金。如果上大资金,难免产生较大的滑点。
2023-08-02 21:05 来自四川 引用
0

Duckruck

赞同来自:

@模型先生
实盘要20%以上年化,那么10年以上的数据,回测收益达到40%以上,除了小市值外,其它策略好像很难达到啊
所以说不是小市值的策略都没有必要炒
2023-08-02 19:53 来自澳大利亚 引用
0

Assnile

赞同来自:

你为什么不怀疑回测的准确性
2023-08-02 19:11 来自安徽 引用
0

模型先生

赞同来自:

@Duckruck
回测成立的未必成立,但回测失败的肯定没用至少可以排除显而易见的垃圾如果防止过拟合的工作做的够好,可以期望样本外有样本内一半性能,不然可能越拟合越差
实盘要20%以上年化,那么10年以上的数据,回测收益达到40%以上,除了小市值外,其它策略好像很难达到啊
2023-08-02 17:22 来自福建 引用
0

Duckruck

赞同来自:

@TimothyJ
补充:
在sp500 covered call etf推出方global X的网站上,也有对动态滚动行权价(rolling plan)的研究(非常粗糙,但说明他们也认识到了滚动行权价可以改善收益特征和优化回撤),https://www.globalxetfs.com/the-case-for-a-systematic-options-rolling-plan/
你真要做空波动率可以看下用期权复制方差互换,据说可以相比简单的期权策略提高收益风险比
2023-08-02 16:11 来自澳大利亚 引用
0

coobydean

赞同来自:

各位是怎么回测呢,要的什么软件吗,还是编程。
2023-08-02 15:27 来自江苏 引用
1

Duckruck

赞同来自: xineric

@TimothyJ
第一, 你说的对
第二,你说的对,这是因为最早的50期权上市时间是2015年3月
第三,我检查过交易成本了,没问题,这是个低频策略,平均每年开平仓次数56次,这个问题不大
第四,BMX指数我了解过,采用的是平值备兑,且月度固定日换仓。这种模式在50上也测试过了,的确没有很强的增强表现。所以我没有用bmx的编制方法呀。我更改了换仓规则,并根据波动率选择了行权价。论坛里也有美国市场利用波动率调整持仓的...
第一,交易成本你算了滑点吗?还是只算了各种费用?

第二,不是没有很多增强,是会削弱

我找得到的最早的有公开业绩是备兑策略基金是gateway fund A class,通过Lasso筛选出合适的因子后残余下的阿尔法也是负数



第三,SPY在2013年7月到2023年6月年化是13%,并没有20%

标普500在同期偏度为-0.46,并没有右偏

第四,调整买卖价,止损或各种规则回测或许可以盈利,但很容易过拟合,就像炸掉的那些波动率对冲基金或玩波动率的对冲基金那样
2023-08-02 15:03 来自澳大利亚 引用
0

TimothyJ

赞同来自:

@Duckruck
第一,分红你这里没有算入
第二,长期表现基本上没算进备兑很吃亏的14牛市,只算了个牛尾巴
第三,当然国内衍生品历史太短没办法,但这个平台还有低估交易成本的问题
第四,我是用美国有回报数据的covered call产品算alpha,都是很高的负值:
标普500
纳斯达克100
根据SG的波动性交易指数,主要就是做空波动性的对冲基金的平均扣费后回报相当凄惨,十几年下来只有14.4%。对,不是年化14....
补充:
在sp500 covered call etf推出方global X的网站上,也有对动态滚动行权价(rolling plan)的研究(非常粗糙,但说明他们也认识到了滚动行权价可以改善收益特征和优化回撤),https://www.globalxetfs.com/the-case-for-a-systematic-options-rolling-plan/
2023-08-02 14:40 来自上海 引用
0

TimothyJ

赞同来自:

@Duckruck
第一,分红你这里没有算入
第二,长期表现基本上没算进备兑很吃亏的14牛市,只算了个牛尾巴
第三,当然国内衍生品历史太短没办法,但这个平台还有低估交易成本的问题
第四,我是用美国有回报数据的covered call产品算alpha,都是很高的负值:
标普500
纳斯达克100
根据SG的波动性交易指数,主要就是做空波动性的对冲基金的平均扣费后回报相当凄惨,十几年下来只有14.4%。对,不是年化14....
第一, 你说的对
第二,你说的对,这是因为最早的50期权上市时间是2015年3月
第三,我检查过交易成本了,没问题,这是个低频策略,平均每年开平仓次数56次,这个问题不大
第四,BMX指数我了解过,采用的是平值备兑,且月度固定日换仓。这种模式在50上也测试过了,的确没有很强的增强表现。所以我没有用bmx的编制方法呀。我更改了换仓规则,并根据波动率选择了行权价。论坛里也有美国市场利用波动率调整持仓的策略(思路有不同)https://www.jisilu.cn/question/444778

另外补充一点是,在bmx的介绍中,也提到了,当基准指数年化20%时表现不佳。其实是因为spx的收益率分布右偏(也就是长牛),这个右偏在期权定价中没有体现,对于卖购来说不利。但目前的A股还没有出现这种右偏。
2023-08-02 14:31 来自上海 引用
0

渡心

赞同来自:

炒股我还要学python编程,实在是太难了。
2023-08-01 20:36 来自浙江 引用
0

fjc118

赞同来自:

@freesinger
因子分箱的时候可以是几百个股票,但最后实际操作也买不了那么多吧?
对的,哪怕最终股票池主观选10个也行,他在做多因子有效性测试,没大样本就拿不出可信的结论。因子越多,样本就需要越大才可靠,3因子10个票要是靠穷举几乎可以拟合出任何结论了,而对未来没用
2023-08-01 20:15修改 来自上海 引用
1

Duckruck

赞同来自: xineric

@TimothyJ
上证50上市以来的备兑策略,也是iv/4档位开仓,也有持续的alpha。只不过15年大牛大熊的时候没有指数表现的好。但也比指数表现的差很多
第一,分红你这里没有算入

第二,长期表现基本上没算进备兑很吃亏的14牛市,只算了个牛尾巴

第三,当然国内衍生品历史太短没办法,但这个平台还有低估交易成本的问题



第四,我是用美国有回报数据的covered call产品算alpha,都是很高的负值:

标普500



纳斯达克100



根据SG的波动性交易指数,主要就是做空波动性的对冲基金的平均扣费后回报相当凄惨,十几年下来只有14.4%。对,不是年化14.4%,是加起来14.4%,还不如存银行



这个指数2020年6月后还不公布了,可能是因为2020年3月炸了一大批做空波动率的基金,剩下的基金已经没有构成指数的意义了

当然,有些波动性基金指数还可以,但他们2020年3月并未出现负回报,甚至有些指数在2018年波动性爆炸的年份出现正回报。也就是说,要么他们有严重的偏差,要么他们并不是(一直)做空波动性的
2023-08-01 15:23修改 来自澳大利亚 引用
0

TimothyJ

赞同来自:

@Duckruck
你算下长期做空波动率策略相比标的本身的阿尔法就知道了,隐波实波差普遍不足以弥补尾部风险
上证50上市以来的备兑策略,也是iv/4档位开仓,也有持续的alpha。只不过15年大牛大熊的时候没有指数表现的好。但也比指数表现的差很多
2023-08-01 12:32 来自上海 引用
0

TimothyJ

赞同来自:

@Duckruck
你算下长期做空波动率策略相比标的本身的阿尔法就知道了,隐波实波差普遍不足以弥补尾部风险
沪深300期权上市以来的备兑策略,选用iv/4档位的虚值期权。持续的alpha可以做到的呀,除了快速上涨的时候会涨不过
2023-08-01 12:28 来自上海 引用
1

Duckruck

赞同来自: zengqlleo

@TimothyJ
做空波动率会亏的这个结论是怎么出来的?
你算下长期做空波动率策略相比标的本身的阿尔法就知道了,隐波实波差普遍不足以弥补尾部风险
2023-08-01 10:50 来自澳大利亚 引用
0

TimothyJ

赞同来自:

@Duckruck
备兑也属于做空波动率,做空波动率会亏的,你这个思路从一开始就错了
做空波动率会亏的这个结论是怎么出来的?
2023-08-01 10:04 来自上海 引用
0

Duckruck

赞同来自:

@TimothyJ
我最近也遇到了很奇怪的事。我回测不同档位(0%/2.5%/3.75%/5%)备兑期权的时候。沪深300一切正常,但是上证50的结果里3.75%表现明显劣于2.5%和5%。我想备兑策略已经够简单纯粹了吧,难道也是过拟合??
备兑也属于做空波动率,做空波动率会亏的,你这个思路从一开始就错了
2023-07-31 19:14 来自澳大利亚 引用
0

李季峰

赞同来自:

明显就是过拟合了,放弃吧
2023-07-31 16:35 来自福建 引用
2

Duckruck

赞同来自: Azurite sothin

@freesinger
因子分箱的时候可以是几百个股票,但最后实际操作也买不了那么多吧?
能确定单调性和稳健性,再来缩小持股数追求收益
2023-07-31 15:50 来自澳大利亚 引用
0

TimothyJ

赞同来自:

我最近也遇到了很奇怪的事。我回测不同档位(0%/2.5%/3.75%/5%)备兑期权的时候。沪深300一切正常,但是上证50的结果里3.75%表现明显劣于2.5%和5%。我想备兑策略已经够简单纯粹了吧,难道也是过拟合??
2023-07-31 14:10 来自上海 引用
0

freesinger

赞同来自:

@超牛投资
首先要确认因子有效性,5000个股票,分组做单调性分析,一组就几百个,然后多因子,这样怎么也要几十上百个股票才能得出可能有效的结论。
然后周期的选择,股票池的选择,步长的选择,成交合理性的分析,样本外的测试要得出相对稳定的结论10个远远不够,基础不牢固结论再好也没意义
否则5000股选10个,3或者4因子,结论大概率就是随机拟合的
因子分箱的时候可以是几百个股票,但最后实际操作也买不了那么多吧?
2023-07-31 13:52 来自广东 引用
0

haidanger

赞同来自:

一点点变化就大幅度变动肯定拟合了。量化的本质都是在存量数据找规律,和以前的金叉死叉没任何不同,叫量化和叫量子一样,都是脑门贴金好看而已。
2023-07-31 11:51 来自浙江 引用
0

freesinger

赞同来自:

@shshchen
把贡献收益最大的10%的品种(或是交易)拿掉看看,如果整体收益一落千丈,那就是过度拟合。
拿掉以后的表现会比较贴合未来实盘的实际表现。
大部分策略去掉贡献收益最大的10%的交易收益应该都不行吧?除非是那种高频交易,大部分单子都能赚但都赚的不多
2023-07-31 11:10 来自广东 引用
0

fjc118

赞同来自:

@freesinger
最后选入的是10只,已经不算少了吧?
首先要确认因子有效性,5000个股票,分组做单调性分析,一组就几百个,然后多因子,这样怎么也要几十上百个股票才能得出可能有效的结论。
然后周期的选择,股票池的选择,步长的选择,成交合理性的分析,样本外的测试要得出相对稳定的结论10个远远不够,基础不牢固结论再好也没意义
否则5000股选10个,3或者4因子,结论大概率就是随机拟合的
2023-07-30 14:30修改 来自上海 引用
1

shshchen

赞同来自: 我只想搞钱

把贡献收益最大的10%的品种(或是交易)拿掉看看,如果整体收益一落千丈,那就是过度拟合。
拿掉以后的表现会比较贴合未来实盘的实际表现。
2023-07-29 14:23 来自上海 引用
11

Simond

赞同来自: shiro1234 闲菜 TomGoogleBaidu nonononoyes lwcdxx Loadstarr hx279 影约 maxyang 甯尔 量化投资先锋更多 »

@吉吉木
一直不知道回测有什么意义。。。
回测的意义就在于验证想法:对的未必对,错的一定错。经过大量的回测,你会发现没有任何一种静态的量化策略可以跨品种跨市场长期有效,包括价值投资。这样你就能够深刻理解到金融市场是混沌系统,具有自适应性,没有普适性的圣杯存在,每一次决策都要具体问题具体分析。面对未来的不确定性,没有人是神,只有装神弄鬼的神棍。
2023-07-29 11:56 来自四川 引用
1

量化投资先锋

赞同来自: xineric

我不懂为什么总有人不作回归分析,就敢去轮动。

获取所谓超额收益,实际只是巧合,迟早都会轮到坑里去。
2023-07-28 19:42 来自陕西 引用
2

Simond

赞同来自: 灵活的蓝胖子 量化投资先锋

是的,表明你这个回测结果对参数过敏感。以前MT4里面的回测会生成一个横纵坐标为参数的收益率矩阵,像你这种情况可以看到收益率图像颜色是很杂乱的,好的回测结果应该是一大片连续渐变的颜色区域,这样才有一定的健壮性。回测这里面坑太多:无处不在的未来函数;参数过敏感;参数太多;同维参数;时间和品种外推测试不足;很多无法成交的情形;政策的变化(比如很早以前挂单是有费用的,而且很贵,如果是高频交易的策略的话就要考虑这个)。即使考虑了所有这些因素,曾经也跑出了好的策略,但是仍然不敢大仓位上实盘,因为并不能够提供足够的逻辑性来支撑(如果逻辑真的很强的话,不会太依赖回测结果的)。
2023-07-28 18:02 来自四川 引用
1

millrater

赞同来自: sothin

把因子C换成随机项回测检验看看
如果C是随机项的情况下原先AB+随机C的情况会产生较大变化的话,那确实危险
2023-07-28 16:48 来自浙江 引用
0

freesinger

赞同来自:

@超牛投资
增加数量,10个股票明显过少了,看随着数量增加,收益变化情况,切换周期,把周五改其他日期看看
然后估计你会得出结论的
最后选入的是10只,已经不算少了吧?
2023-07-28 13:38 来自广东 引用
0

freesinger

赞同来自:

@容嬷嬷
因子越多容错率越低。
打分因子4个,排除因子(如排除ST之类的)2个应该不算多吧?
2023-07-28 13:04 来自广东 引用
0

freesinger

赞同来自:

@背着行囊去远方
多换几个起始日期再试试。
把持仓品种拉出来看看,是不是撞到了某个/某几个涨的好的。
这个应该影响不大,因为本来就是按日轮动的
2023-07-28 13:02 来自广东 引用
0

freesinger

赞同来自:

@huxj2015
钢中加入很少的金刚石,强度数倍提高,也许那因子相当于................
我也有这样想过,但也不敢确定加的很少的到底是金刚石,还是渣渣;或者过去是金刚石,以后会成渣渣
2023-07-28 12:51 来自广东 引用
0

freesinger

赞同来自:

@阿鲁哥
首先,建议你弄个train/val/test sets,然后才有可能谈论overfitting
请教一下这个怎么弄?不太懂编程啊
2023-07-28 12:49 来自广东 引用
1

吉吉木

赞同来自: rzchen

感觉就像有人捧着心爱的小说读完,反反复复看,对里面的主角爱不释手,痴痴呆呆,然后把自己代入,继续过下去,。。。
也许炒股本来就是盲人摸象吧,各自摸各自的那块运气和财气
2023-07-28 06:46 来自上海 引用
0

Duckruck

赞同来自:

@吉吉木
一直不知道回测有什么意义。。。
回测成立的未必成立,但回测失败的肯定没用

至少可以排除显而易见的垃圾

如果防止过拟合的工作做的够好,可以期望样本外有样本内一半性能,不然可能越拟合越差
2023-07-28 03:04 来自澳大利亚 引用
0

阿鲁哥 - 95后学生

赞同来自:

首先,建议你弄个train/val/test sets,然后才有可能谈论overfitting
2023-07-27 21:54修改 来自浙江 引用
0

fjc118

赞同来自:

增加数量,10个股票明显过少了,看随着数量增加,收益变化情况,切换周期,把周五改其他日期看看
然后估计你会得出结论的
2023-07-27 20:27 来自上海 引用
0

容嬷嬷

赞同来自:

因子越多容错率越低。
2023-07-27 20:09 来自山东 引用
2

韭菜投资学 - 微信公众号:韭菜投资学

赞同来自: nonononoyes Duckruck

说明本来的策略不够稳定,微小因素即会产生大干扰,好的结果很可能是过拟合
2023-07-27 20:06 来自北京 引用
0

吉吉木

赞同来自:

一直不知道回测有什么意义。。。
2023-07-27 20:02 来自上海 引用
0

sulf666

赞同来自:

我测过前两年年化80%-100%的,今年就只有10%了,市场不是一成不变的
2023-07-27 19:22 来自浙江 引用
2

guzhongyuan

赞同来自: 影约

有可能是你原来有大亏的几笔交易因为新因子减少了损失。策略方面建议把加入前和加入后,最赚钱和最亏钱的几笔交易拿出来对比分析
2023-07-27 18:26 来自上海 引用
1

huxj2015

赞同来自: 春秋战国

钢中加入很少的金刚石,强度数倍提高,也许那因子相当于................
2023-07-27 17:49 来自四川 引用
3

scott

赞同来自: 春秋战国 sulf666 xineric

应该是找到药引子了,没这个药引子,整付药效果不好。
2023-07-27 17:13 来自四川 引用
1

xcgdgp

赞同来自: sulf666

如果你这合拟方法有效,也就轮不到你赚钱了
2023-07-27 16:50 来自河北 引用
0

背着行囊去远方

赞同来自:

多换几个起始日期再试试。
把持仓品种拉出来看看,是不是撞到了某个/某几个涨的好的。
2023-07-27 16:21 来自江苏 引用
3

crblfy

赞同来自: walf001 newbison sulf666

因子越多越容易过拟合
2023-07-27 15:49 来自浙江 引用
7

Duckruck

赞同来自: wazz nonononoyes newbison dfcvv sulf666 Ake90 看看不回更多 »

是的

建议等权测试,除非有强烈依据不调参,而不是调参希望能瞎猫撞上死耗子

其次建议日轮动+买入卖出阈值不同,可以提高策略效果

再者不建议用回撤衡量策略,因为回撤很容易受过拟合影响,建议用夏普比率
2023-07-27 15:00修改 来自澳大利亚 引用
12

与时间为友

赞同来自: newsu Loadstarr nonononoyes evilcong8 大7终成 junzhi33 趋势交易者 walf001 明园 sulf666 seancai110 影约更多 »

很多策略之所以看起来类似结果差很多仅仅是因为建仓的时机有差别罢了。当你往策略里加入了越多越多条件单的时候,其实你是潜意识里将这些年发生过的市场里有利因素有选择性的加入罢了,而这些有利因素在未来很大可能会变成不利因素。越简单的策略其实越有效,这个效指的不是赚钱,而是回归平均值。
2023-07-27 14:46 来自福建 引用
3

急先锋

赞同来自: 量化投资先锋 sulf666 xineric

硬追求漂亮的回测数据,一定会过拟合。可以试着加入一些随机因素
2023-07-27 14:36 来自北京 引用

要回复问题请先登录注册

发起人

问题状态

  • 最新活动: 2023-08-03 08:43
  • 浏览: 22131
  • 关注: 57