## 第一骗 偷未来
- **不设置set_option("avoid_future_data", True)**
- **常见骗人策略类型: 所有策略**
这个实在是太常见了, 回测在盘中甚至开盘就获取收盘时的未来的信息进而做出决策, 还有超前引用财务数据、基金净值数据、因子性能数据、行业数据、模式数据等等. 收益逆天高, 回撤逆天小. 聚宽有大量机器人和新人爱发这种策略骗人骗自己.
**聚宽一直以来都有一个极其讨厌的设定: 股票名称不是当日名称, 而是当前名称. 这导致今天被st的股票, 几年前的名字也会突然全部st. 这使得很多策略在st之前就把将来会st的股票过滤掉了.** 聚宽真正的st状态获取选项是 get_extras('is_st', ..... , 但很不幸至今社区里流传的绝大部分策略仍然在用股票名假装自己是在过滤st st* 和退市股. 实际是在获取未来信息, 这种偷未来信息的办法无法轻易屏蔽掉.
要小心单纯avoid_future_data也不能完全屏蔽回测里的未来函数. 比如上面提到的名称包含未来的st问题. 所以拿到陌生策略一定要仔细看代码, 发给ai询问可能存在的未来函数, 以及自己跑一段时间模拟盘看看结果和回测是否相符.
## 第二骗 偷行业
- **故意选择几个过去几年上涨的行业和品种etf进行回测**
- **常见骗人策略类型: 各种ETF轮动策略**
这其实也是偷未来的一类变种, 只是周期长很多. 故意把策略限定在几个过去长得比较好的几个品种和行业里. 比如黄金etf, 纳斯达克etf, 2021年之前限定贵州茅台, 等等. 因为底层有限的几个标的过去都是一直涨, 所以策略本身其实根本无所谓好坏. 但问题是10年前你并不知道未来10年这些行业会涨势最好. 这就好像我穿越到10年前告诉自己btc会涨破10万美元. 那我肯定满仓买币. 可问题是, 今天是2025年, 2035年btc还会涨吗? 我不知道啊.
## 第三骗 偷滑点
- **故意**set_slippage(FixedSlippage(0.02))
- **常见骗人策略类型: 银行盘口套利策略, 小市值低价策略**
这条也极其泛滥, 大量人故意把滑点成本**固定为总共 0.02元**, 而不是贴合实盘正常的占比千分之二或更高. **set_slippage(PriceRelatedSlippage(0.002),type='stock')**
银行盘口套利等策略经常有人故意不写滑点, 让回测总能1000.55买, 1000.56卖赚一丁点钱. 实盘只有亏爆.
还有看到"双低"因子(市值低, 股价低)的策略也要立刻打起12万分的警惕. 市值低意味着盘口挂单很少, 股价低意味着买一卖一价差百分比大. 下单金额稍微一大, 就不得不把好几档买卖挂单全部吃光. 必然引起大幅滑点.
一定要牢记: 价格越低, 尤其是2元甚至低于2元的股票, 买卖时, 仅仅买一卖一的价差就能产生很大滑点.
市值越小, 从卖五到买五之间挂单金额就大概率越小, 导致一点点钱都会吃光所有价格上的挂单, 产生很大滑点.
除了滑点外, 佣金手续费也是问题, 很多人会故意忽略掉或者设置极小值.
**另外一个常见的偷滑点方式就是故意设置9:30买卖**. 聚宽的bar数据是虚拟合成的, 不是真撮合. 这导致9:30的成交价格和交易量一般都不真实存在, 真正这个时间点下单滑点极大. 大量假策略把回测交易时间改到9:35收益率迅速就消失了.
## 第四骗 偷局部
- **故意只放一小段时间表现特别好的回测**
- **常见骗人策略类型: 所有策略**
这种骗人策略也好常见, 很多人策略并没有稳定回报, 于是就只放一小段策略回测, 刚好那一段表现逆天好. 其他时段表现平平甚至一塌糊涂. 一旦看见那些回测时间比较短的策略就要警惕.
## 第五骗 偷成交
- **不设置set_option('order_volume_ratio', 0.02) 和 set_option('match_with_order_book', True)**
- **常见骗人策略类型: ETF价差套利策略**
正常情况下, 经验性的来说, 单个交易者成交量占当日总量达到2%起就开始影响价格了, 会显著增加滑点成本. 很多人不设置这个过滤, 导致自己下单量都超过当天总成交量了而不自知. 这在ETF价差套利, ETF溢价率套利策略里极其常见.
另外一个问题就是实时或延迟模拟盘不开盘口撮合, 结果它总是能在拟合的虚拟K线最高点卖出, 最低点买入. 这导致很多人发的聚宽模拟盘也不可信.
## 第六骗 偷撮合
- **故意设置set_option("match_by_signal", True) **
- **常见骗人策略类型: 涨停板打板策略**
直接忽略停牌股/涨停跌停股/ST股/退市股交易限制强制撮合成交. 比较少见但社区里确实出现过, 有叼毛偷偷开这个设置让自己打板策略总能排到买入. 实盘自然是亏出屎来.
聚宽遇到退市股时, 会在退市最后一天把对应仓位金额全部取出. 但现实里退市股根本卖不掉, 你直接就全部去了老三版几乎等于归零了.
总之都是实盘根本不可能成交的股票, 在回测里强行给撮合了.
## 第七骗 过拟合
- **过度回测精细调参 **
- **常见骗人策略类型: 参数/因子数量很多的策略**
即便有人没有犯以上所有错误, 他写策略也有可能陷入过拟合而不自知. 这在有大量参数或大量因子的复杂策略里非常常见.
**社区里被多人反复修改过的策略要小心, 每个人都改了一点点, 最终出来就是过拟合.(合成谬误)
持股个位数以下的策略要特别小心. 尤其是那些只有2股3股的.
**
机器学习强化学习等算法生产的策略几乎必然过拟合, 要再经过去拟合步骤才能使用.
自写策略时, 首先要确认使用的每个因子都有说得通的经济学解释, 或者至少有个假设. 确保各个因子间的经济学解释不互相冲突.
调参前, 最好单独测试每个因子是否有单调性, 是否有正回报. 然后所有因子等比看看有无单调性, 有无正回报. 再进行调参.
时间序列上的择时, 如果数量足够多, 有统计学可信度最好. 数量较少的话最好能有个经济学解释或假设.
调参最好使用大时间区间避免局部过拟合, 比如从2010年起回测15年, 就远好过针对1年调参.
----
偷策略. 这个不计入骗人序列里, 但也很恶劣. 社区里有些人拿了别人写的好策略, 稍微改几个字符, 把作者名字抹掉就乱发. 非常不尊重其他人的努力和贡献.
----
还有更多骗术欢迎大家补充.
----
2025年5月9日 修复了研究代码. 添加了回测时间短问题. 修改了股价滑点问题.
2025年5月10日 感谢大家的补充, 又添加了几个典型案例.
2025年6月1日 补充了几个小点.
工商目前7元,固定滑点0.02约千3的滑点成本,不是比另外一个要高么;几年前就4元的时候,固定滑点甚至千4,肯定只高不低的。目前我问过交易算法的滑点一般在万2-3左右吧
2025-05-08
只回测10-20笔,截取最好成绩放出来,拉长测成绩就很拉胯
2025-05-08
好像把您的判断部分放在策略后面运行测试根本没用,永远显示“2019-01-01 00:00:00 - INFO -
===== 回测设置检查结果 =====
2019-01-01 00:00:00 - INFO - ⚠️ 警告:使用了固定的滑点金额,这可能不符合实际情况
2019-01-01 00:00:00 - INFO - ⚠️ 警告:开启了 match_by_signal=True,这可能导致虚假撮合, 例如涨停板强制买入”
2025-05-09
贴了代码运行显示不太对,不知道哪里出了问题?
2019-01-01 00:00:00 - INFO - ⚠️ 警告:使用了固定的滑点金额,这可能不符合实际情况
2019-01-01 00:00:00 - INFO - ⚠️ 警告:开启了 match_by_signal=True,这可能导致虚假撮合, 例如涨停板强制买入”
2025-05-09
@YANGDH 谢谢. 我上传了修复后的代码. match_by_signal 一直报错只好先全部移除了
2025-05-09
还有很多骗子,拿别人策略,啥都不改,就自己加点描述,改回撤周期,就发出来
2025-05-09
@归零韭菜 好像不管怎么改,都显示以下内容:“警告:使用了固定的滑点金额,这可能不符合实际情况, 建议使用千分之二滑点 set_slippage(PriceRelatedSlippage(0.002))”
2025-05-09
@苦学 我没招了, 你看看怎么修复吧 改来改去好像都不对
2025-05-09
直接看回测结果,夏普太高(大于5),年化太高,回测周期太短(小于1年),曲线过于平滑,有这些问题的看都懒得看
2025-05-09
偷流动性:忽略停牌股/ST股/退市股的影响
常见策略类型:小市值因子策略
例如:回测中买入次日涨停的小盘股,但未剔除停牌股票(如乐视网)。实盘中停牌期间无法卖出,复牌后连续跌停造成巨额亏损。
偷费率:故意不设置或调低手续费/印花税
常见策略类型:高频交易策略
聚宽默认股票佣金为万分之三,但有人设置为0.0001甚至0。例如做可转债套利的策略,真实手续费应是免5且低至万0.5,但回测中按股票费率计算,导致实盘盈利被手续费吞噬。
过拟合:多人克隆同一个策略进行“优化”
常见策略类型:小市值策略
现在的小市值策略收益让我越来越咋舌,让你点进去一看就会越看越不对劲,时间上的择时、股价的过滤、市值的范围、特定的计算参数、特定的限制期间,无数的“后人”在“前人”在基础上添砖加瓦,很容易调出收益率更好的策略,这也是聚宽被克隆最多的策略之一,但在我这里真的就只有三个字“过拟合”,因为很多东西没有理论支撑,或者说你这种理论是先画了箭再射靶
2025-05-09