# ILLQStd因子 **Published by:** [KeepLearning](https://paragraph.com/@keeplearning-2/) **Published on:** 2024-01-07 **URL:** https://paragraph.com/@keeplearning-2/illqstd ## Content 默认的回测参数, ('ILLQStd', True, 7, 1) 持仓1D,Pct_change_7过滤,0.8百分比过滤。 默认回测时间 start_date = '2021-01-01' end_date = '2023-09-10' 回测结果[('ILLQStd', True, 14, 1)]持仓1D,Pct_change_7过滤,0.8百分比过滤。 累积净值 18.5 年化收益 195.81% 最大回撤 -12.04% [('ILLQStd', True, 30, 1)]持仓1D,Pct_change_7过滤,0.8百分比过滤。 累积净值 16.54 年化收益 183.73% 最大回撤 -12.17% 对于参数ILLQStd的参数7/14/30,效果差不多。由于预测中,2024年相当于上一个牛市的2020年,回测以下2020年的数据。由于2020年2月9日之前的合约非常少,所以从20200209开始回测。 就回测20200209-20210101 [('ILLQStd', True, 7, 1)] 持仓1D,Pct_change_7过滤,0.8百分比过滤。从图上可以看到,在前面大半年的时间内,策略都跑赢了BTC和ETH,但是2020年底牛市启动,就跟不上BTC和ETH的涨幅了。不过总体资金曲线还是向上的,看着比较健康。 [('ILLQStd', True, 14, 1)]持仓1D,Pct_change_7过滤,0.8百分比过滤。 累积净值 1.81 年化收益 93.60% 最大回撤 -11.62% [('ILLQStd', True, 30, 1)]持仓1D,Pct_change_7过滤,0.8百分比过滤。 累积净值 1.81 年化收益 94.12% 最大回撤 -15.06% 这三个参数区别也不大。 选币数改为0.05试一下。 [('ILLQStd', True, 7, 1)] 持仓1D,Pct_change_7过滤,0.8百分比过滤。0.05选币 累积净值 1.89 年化收益 103.44% 最大回撤 -21.63% [('ILLQStd', True, 14, 1)] 持仓1D,Pct_change_7过滤,0.8百分比过滤。0.05选币 累积净值 1.74 年化收益 85.93% 最大回撤 -20.06% [('ILLQStd', True, 30, 1)] 持仓1D,Pct_change_7过滤,0.8百分比过滤。0.05选币 累积净值 1.19 年化收益 21.19% 最大回撤 -22.30% 对比0.1的持仓,明显的效果变差。 那么试试0.2 [('ILLQStd', True, 7, 1)] 持仓1D,Pct_change_7过滤,0.8百分比过滤。0.2选币 累积净值 1.73 年化收益 83.85% 最大回撤 -10.04% [('ILLQStd', True, 14, 1)] 持仓1D,Pct_change_7过滤,0.8百分比过滤。0.2选币 累积净值 1.95 年化收益 110.85% 最大回撤 -8.68% [('ILLQStd', True, 30, 1)] 持仓1D,Pct_change_7过滤,0.8百分比过滤。0.2选币 累积净值 2.02 年化收益 119.14% 最大回撤 -9.00% 怎么感觉选的币越多,效果越好呢。0.3试一下。 [('ILLQStd', True, 7, 1)] 持仓1D,Pct_change_7过滤,0.8百分比过滤。0.3选币 累积净值 1.76 年化收益 87.60% 最大回撤 -7.41% [('ILLQStd', True, 14, 1)] 持仓1D,Pct_change_7过滤,0.8百分比过滤。0.3选币 累积净值 1.73 年化收益 84.40% 最大回撤 -8.11% [('ILLQStd', True, 30, 1)] 持仓1D,Pct_change_7过滤,0.8百分比过滤。0.3选币 累积净值 1.9 年化收益 104.59% 最大回撤 -9.84% [('ILLQStd', True, 7, 1)] 持仓1D,Pct_change_7过滤,0.8百分比过滤。0.5选币 累积净值 1.63 年化收益 73.01% 最大回撤 -7.85% [('ILLQStd', True, 14, 1)] 持仓1D,Pct_change_7过滤,0.8百分比过滤。0.5选币 累积净值 1.6 年化收益 69.24% 最大回撤 -8.76% [('ILLQStd', True, 30, 1)] 持仓1D,Pct_change_7过滤,0.8百分比过滤。0.5选币 累积净值 1.59 年化收益 68.36% 最大回撤 -9.79% 从上面的测试可以看出,总体曲线肯定是向上的,且选的币种越多,回撤越小,但是收益也会降低。如果要跑1D的,就选[('ILLQStd', True, 14, 1)] 持仓1D,Pct_change_7过滤,0.8百分比过滤。0.2选币 这个综合来看好一些。 个人感觉持仓周期是不是一个很关键的元素?也算个参数? 下面看看持仓7d的效果, 累积净值 5.27 年化收益 85.50% 最大回撤 -18.61%从测试结果看,持仓越久回测结果越差。 持仓6H试试 ('ILLQStd', True, 6, 1) ('PctChange', 6) 0.8过滤 累积净值 1.2 年化收益 7.13% 最大回撤 -39.31% 这个结果就是说,如果根据前6小时的K线里计算ILLQStd,算出来这6根K线的流动性很差,然后我就买入它,做多它,持仓6小时,这样的回测结果很差。 结果很差有以下几方面的原因 1,6小时的K线来算因子不合理 2,持仓6小时不合理。 固定以下持仓周期参数试试,测试以下场景,因为前面测试用7天的数据来确定因子,效果不错,那么这里是小时,我给它乘以24,也就是用('ILLQStd', True, 7*24, 1) ('PctChange', 7*24) 0.8过滤,然后还是持仓6小时,看看效果如何。很不错,比持仓一天的提高好多。持仓6小时没问题,问题出在用6小时数据来计算因子排序不合理。那为什么用724小时就合理呢?照理说,用6小时数据,我每隔6小时就更新一次排序,应该更接近于小市值啊,相当于我一直持有的是小市值的币种,并且6小时更新一次。那么我用724的数据更新的话,我是用724的数据来确定币种,持仓1天。那么就需要考虑清楚的是为什么我用7*24的数据来确定因子比用6小时的数据更加有效? 也可以理解啊,一个因子必然有它的参数范围。不可能随变一个参数就能获得好的回测。但是从原理上分析,只要一直持有低流动性的币种,就能获得这个收益。那么就是说,我用6小时算出来的数据不是真正意义上的低流动性币种。那么是不是我用更长时间的数据算出来的因子更具有流动性低的,然后再从持仓时间看,持仓时间越短,效果越好。 那么我用14*24试试。('ILLQStd', True, 14*24, 1) ('PctChange', 7*24) 0.8过滤,然后还是持仓6小时,回测结果变差。再看看30*24小时试试。 时间太久,只跑了OFFSET=0的结果如下 [('ILLQStd', True, 720, 1)] 累积净值 21.39 年化收益 212.18% 最大回撤 -10.38% 和14*24的效果差不多。 再降低持仓时间试试,4小时。邢大说过,没有显著提升,不要降低持仓,持仓越久越好。 [('ILLQStd', True, 168, 1)] 持仓4小时,('PctChange', 7*24) 0.8过滤 累积净值 30.64 年化收益 256.82% 最大回撤 -13.55% [('ILLQStd', True, 336, 1)] 持仓4小时,('PctChange', 7*24) 0.8过滤 累积净值 24.7 年化收益 229.33% 最大回撤 -13.41% 跟持仓6小时相比,有点提升,但是提升效果不大。 再试试持仓一小时的 累积净值 35.07 年化收益 275.16% 最大回撤 -10.94% 再看看8小时持仓。[('ILLQStd', True, 168, 1)] 持仓4小时,('PctChange', 7*24) 0.8过滤 累积净值 23.57 年化收益 223.65% 最大回撤 -11.70% 那么从回测看,[('ILLQStd', True, 168, 1)] 持仓4小时,('PctChange', 7*24) 0.8过滤,同样是上面的条件,只是持仓时间不同,有以下的回测结果,只是offset0 对比, 持仓一小时, 累积净值 35.07 年化收益 275.16% 最大回撤 -10.94% 持仓4小时 累积净值 30.64 年化收益 256.82% 最大回撤 -13.55% 持仓6小时 累积净值 27.64 年化收益 240.44% 最大回撤 -10.75% 持仓8小时 累积净值 23.57 年化收益 223.65% 最大回撤 -11.70% 持仓1D 累积净值 17.08 年化收益 187.16% 最大回撤 -13.09% 从上面可以看出,持仓越长,回测结果越差。这个可以理解,持仓越长,相当于你对市场的反映越不敏感,也就是说你在持仓周期内,可能持有的并不是最低流动性的币。试试两小时的。 offset 0, 累积净值 34.84 年化收益 274.25% 最大回撤 -13.11% offset 1, 累积净值 31.46 年化收益 260.36% 最大回撤 -13.07% 10000W选定持仓2小时吧,跑2个offset,0.2选币,然后10000/2/2/(340*0.2)=36U,刚好。 在确定持仓2小时后,再试试其他参数。 先试试因子参数,14*24 累积净值 28.36 年化收益 246.72% 最大回撤 -11.23% 30*24 累积净值 25.92 年化收益 235.29% 最大回撤 -11.76% 从以上可以看出,因子越大,则回测越差。所以定下来因子参数为168。或者可以在168附近继续回测。 然后固定持仓2H,因子参数168,pct过滤因子参数168,过滤0.8,offset = 0,看看选币百分比是否影响。 0.1且long_nums, 累积净值 34.84 年化收益 274.25% 最大回撤 -13.11% 0.1且0.1 累积净值 36.63 年化收益 281.29% 最大回撤 -16.69% 0.2且long_nums, 累积净值 20.41 年化收益 206.80% 最大回撤 -14.67% 0.2且0.2, 累积净值 23.58 年化收益 223.72% 最大回撤 -15.66% 10个币10个币 累积净值 38.25 年化收益 287.49% 最大回撤 -13.71% 15个币15个币 累积净值 37.85 年化收益 285.97% 最大回撤 -13.11% 20个币20个币 累积净值 32.63 年化收益 265.25% 最大回撤 -14.56% 可以看到,随着选币数量的增多,收益在下降。 我这个持仓时间短,那么我是不是可以少选币啊,如果空头一个币暴涨,那么下一个小时就选不到了。应该不会爆仓吧。 那么我不妨用1H且多空都10个币怎么样? 持仓1H,参数因子168,过滤因子参数168,0.8过滤,10个币。 10个币持仓到时候看看强平的价格。 累积净值 44.8 年化收益 310.92% 最大回撤 -21.79% 就跑这个吧分析以下中间-21%回撤的情况。除了这个回撤大,其他回撤都可以接受。 线跑这个吧 再试下0.7过滤 累积净值 20.66 年化收益 208.18% 最大回撤 -23.12% 很不稳定啊,下降好多。 0.9过滤呢? 累积净值 40.92 年化收益 297.32% 最大回撤 -21.12% 选这个吧0.9过滤,因为默认代码是0.8,所以我们这里选个0.9好了。 那么实盘参数就是选币个数多空一样都是10个,总共20个币,因子参数128,过滤参数128.持仓1H,过滤0.9百分比。跑起来!!! ## Publication Information - [KeepLearning](https://paragraph.com/@keeplearning-2/): Publication homepage - [All Posts](https://paragraph.com/@keeplearning-2/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@keeplearning-2): Subscribe to updates