# ILLQStd因子

By [KeepLearning](https://paragraph.com/@keeplearning-2) · 2024-01-07

---

默认的回测参数，

('ILLQStd', True, 7, 1) 持仓1D，Pct\_change\_7过滤，0.8百分比过滤。

默认回测时间

start\_date = '2021-01-01'

end\_date = '2023-09-10'

回测结果

![](https://storage.googleapis.com/papyrus_images/f24f6d3da60eb21d222216cda464ce59240c56de20707c50ac0bb908b1cc6825.png)

\[('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百分比过滤。

![](https://storage.googleapis.com/papyrus_images/8447940349ae04b8f474782f33b9bde0d08943c5a38187dfc45b2ce687c32c63.png)

从图上可以看到，在前面大半年的时间内，策略都跑赢了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%

![](https://storage.googleapis.com/papyrus_images/5ec7d0f7cec3b9de6329efe20cb8e97b8fdd00d2ec70c0cade266642965640b9.png)

从测试结果看，持仓越久回测结果越差。

持仓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小时，看看效果如何。

![](https://storage.googleapis.com/papyrus_images/89f678002313a99731f40cc84538ccb795c9f2faf9fd0728880927a9b7bfaf20.png)

很不错，比持仓一天的提高好多。持仓6小时没问题，问题出在用6小时数据来计算因子排序不合理。那为什么用7_24小时就合理呢？照理说，用6小时数据，我每隔6小时就更新一次排序，应该更接近于小市值啊，相当于我一直持有的是小市值的币种，并且6小时更新一次。那么我用724的数据更新的话，我是用724的数据来确定币种，持仓1天。那么就需要考虑清楚的是为什么我用7_\*24的数据来确定因子比用6小时的数据更加有效？

也可以理解啊，一个因子必然有它的参数范围。不可能随变一个参数就能获得好的回测。但是从原理上分析，只要一直持有低流动性的币种，就能获得这个收益。那么就是说，我用6小时算出来的数据不是真正意义上的低流动性币种。那么是不是我用更长时间的数据算出来的因子更具有流动性低的，然后再从持仓时间看，持仓时间越短，效果越好。

那么我用14\*24试试。('ILLQStd', True, 14\*_24, 1) ('PctChange', 7_\*24) 0.8过滤，然后还是持仓6小时，回测结果变差。

![](https://storage.googleapis.com/papyrus_images/c6c12b7862c7491f14a41c089674f4cbe2f8d3729208af569f87536704d86c98.png)

再看看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%

就跑这个吧

![](https://storage.googleapis.com/papyrus_images/0ccbc92c7990af243f6a879281d5791f8f07e25b0561e0dd536c34e7d751e223.png)

分析以下中间-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百分比。跑起来！！！

---

*Originally published on [KeepLearning](https://paragraph.com/@keeplearning-2/illqstd)*
