免费帮忙策略回测

我是谁: 混迹集思录10+年老用户,受益匪浅,了解到了分级基金上折下折赚到第一桶金(无奈本金太少);后来从事IT,主要做深度学习、机器学习相关的业务 (也是因为自己做量化自学了这些);虽然不是什么大厂的开发,但是也是在千人左右的独角兽独立负责系统业务,自认为水平不至于太次;

我能做什么:我知道集思录里有很多大佬都非常有想法,比如 最近看到【DDM/DCF模型轮动实盘】这个帖子也很有启发; 但是很多人可能没有量化、回测的经验,并不知道自己的某个想法是否可行;我可以帮忙进行比较系统化的回测并贴出结果 (感谢ai的帮助,我可以很快实现一个策略的回测);

你需要做什么:直接在帖子里公开的回复自己想要测试的策略(不一定要实盘的,只是想法都可以,最好不要高频),尽可能的完整详细不要有模糊地带;私信也可以,但是私信的我会考虑收取回测费用,因为本质上是想要大家参与讨论;

FAQ:
回测是否靠谱?
回测并不是银弹,通常可以帮大家筛选掉不靠谱的策略,但是并不能找到必胜的策略;

你是否剔除了未来函数?
是的,我会严格的考虑到策略中是否引入了未来数据并剔除;但是更广义的未来参数还是存在的,比如我们现在都知道科技很牛,如果你想出了一个科技板块策略,回测效果很好,其实本质上是你先知道了未来科技会起飞,所以思考策略时需要自己注意;

支持什么市场?
主要支持a股市场的股票、基金与可转债这些;暂时不支持期货(包括金融期货)期权这些;很吃盘口与流动性的策略最好不要回测很容易失真;
发表时间 2026-07-01 11:15     来自江苏

赞同来自: 枫林随手记 ourselfgame

0

tfdetang

赞同来自:

@zhangsheng123
这个数据样本不够,2013 年到 2018 年,每一年都颇有代表性,分化,牛市,股灾,熔断,18 全年大熊,2019-2025 相对行情反而平稳一些,你需要把这几年的数据补齐才能看出极端行情的策略表现,因为你需要考虑人心理承受极限
我故意剔除了太久远的数据,更早的行情里小市值更有效;我这个策略今年的行情下就翻车了,都跌了7%多了现在,虽然策略已经切到了防守,但是防守端的黄金、红利还是跌很惨

2026-07-01 12:55 来自江苏 引用
0

zhangsheng123

赞同来自:

@tfdetang
抛砖引玉,放上一个最近回测的小市值增强策略:这个策略可以理解成:每周只调一次仓,平时不动。它把资金分成两部分:一部分买股票做进攻,另一部分买 ETF 做防守。股票部分主要买“小市值、基本面还过得去、最近几年有分红、流动性不太差”的股票;防守部分则固定配置 4 只 ETF。一、什么时候交易策略每天 09:35 会检查一次,但不是每天都调仓。只有在“本周第一个交易日”才会真正执行调仓。比如周一正常开...
这个数据样本不够,2013 年到 2018 年,每一年都颇有代表性,分化,牛市,股灾,熔断,18 全年大熊,2019-2025 相对行情反而平稳一些,你需要把这几年的数据补齐才能看出极端行情的策略表现,因为你需要考虑人心理承受极限
2026-07-01 12:44 来自广东 引用
0

coolstone

赞同来自:

我北交所新股从来就没卖过好价,早早卖掉的就大涨,不舍得卖的到收盘又大跌,有什么办法?
2026-07-01 12:31 来自上海 引用
0

符工

赞同来自:

@tfdetang
2 稍微有点模糊,可以再更详细的展开描述下嘛
比如我在月底统计了过去10个交易日的股票成交额,其中A股票成交额3000亿排第一,B股票2500亿排第二,以此类推,把前50名的股票统计出来。
然后我再看各个ETF的持仓,
比如ETF甲有100个持仓股,其中有30个持仓股和成交额前50个股重合,这30个股票占ETF的持仓比例为60%;
ETF乙有50个持仓,其中40个持仓股和成交额前50个股重合,这40个股票占ETF的持仓比例为80%;
依次统计各ETF中的持仓股与成交额前50的重合比例,选比例最高的买入轮动。
实质就是统计最近一段时间资金热炒的股票,然后买一个“含热率”最高的ETF。
2026-07-01 12:25修改 来自北京 引用
1

股精灵

赞同来自: 白金牛

自动筛选每周涨幅前10的基金,然后取排名前2%-5%的基金买入一周调仓一次,回测5年
2026-07-01 12:17 来自广东 引用
0

tfdetang

赞同来自:

@符工
1、每月末对过去10个交易日的所有股票成交额进行汇总,取成交额最高的前50个股票;
2、将这50个股票与市面上的ETF持仓进行比对,挑选出来这50个股票在成分股中占比最高的ETF,下月初买入;
3、月度轮动。
2 稍微有点模糊,可以再更详细的展开描述下嘛
2026-07-01 11:57 来自江苏 引用
0

zhangsheng123

赞同来自:

期待楼主更新
2026-07-01 11:54 来自广东 引用
3

tfdetang

赞同来自: shmilyday 鹏0818 accumulator

抛砖引玉,放上一个最近回测的小市值增强策略:

这个策略可以理解成:每周只调一次仓,平时不动。它把资金分成两部分:一部分买股票做进攻,另一部分买 ETF 做防守。股票部分主要买“小市值、基本面还过得去、最近几年有分红、流动性不太差”的股票;防守部分则固定配置 4 只 ETF。

一、什么时候交易

策略每天 09:35 会检查一次,但不是每天都调仓。

只有在“本周第一个交易日”才会真正执行调仓。比如周一正常开市,就周一 09:35 调;如果周一休市,那就周二或本周第一个开市日调。

选股和判断市场状态时,主要使用上一个交易日的数据,避免用到当天还没完全形成的数据。

二、资金怎么分配

策略有两个账户角色:

进攻仓位:买股票。
防守仓位:买 ETF。
正常市场偏强时,股票最多占 50%,ETF 占 50%。

市场偏弱时,股票只占 10%,ETF 占 90%。

也就是说,这不是一个满仓股票策略,而是一个“股票 + 防守 ETF”的组合策略。它会根据市场强弱,在 10% 股票仓位和 50% 股票仓位之间切换。

防守 ETF 有 4 只,每只在防守仓位里面各占 25%:

511010.XSHG:25%
518880.XSHG:25%
513100.XSHG:25%
511880.XSHG:25%
举个例子:

如果当前判断为强势市场,股票仓位 50%,ETF 仓位 50%,那每只 ETF 的目标仓位就是:

50% * 25% = 12.5%
如果当前判断为弱势市场,股票仓位 10%,ETF 仓位 90%,那每只 ETF 的目标仓位就是:

90% * 25% = 22.5%
三、先建立股票池

策略不是从所有 A 股里面直接选,而是先做一轮基础过滤。

它只考虑这些代码开头的股票:

000、001、002、003、300、301、600、601、603、605
这基本覆盖了主板、中小板、创业板的一部分常见股票,但不包含科创板等其他代码段。

然后继续过滤:

上市时间至少 250 天,太新的股票不要。
剔除 ST 股票。
剔除当天停牌的股票。
最近收盘价不能低于 4 元。
最近 20 个交易日平均成交额不能低于 2000 万。
这一层的意思是:先排除新股、ST、停牌、太便宜、成交太冷清的股票,留下相对正常可交易的股票。

四、再筛基本面和分红

基础股票池出来后,策略会继续看几个财务条件:

流通市值必须大于 0。
经营现金流 / 营业收入必须大于 0。
营业收入同比增长不能为负。
归母净利润同比增长不能为负。
最近几个可用年度里,至少有 1 年实施过现金分红。
这里的核心思想是:不要只买小市值,还要加一点质量过滤。公司至少要有正向经营现金流,收入和利润不能同比下滑,并且过去有过真实分红记录。

分红条件里用的是已经“实施方案”的现金分红,并且实施公告日期不能晚于当前选股日期。也就是说,策略只承认当时已经能看到、已经落地的数据。

五、最后怎么选出股票

通过上面所有过滤后,策略会按“流通市值从小到大”排序。

然后:

先取前 50 只作为候选池。
再从候选池里取前 10 只作为最终持仓股票。
所以这个策略的股票部分,本质上是:

有基本面和分红过滤的小市值策略
它不是按涨幅、动量、估值分位或者行业轮动来选股,而是主要按流通市值从小到大排序。

六、怎么判断市场强弱

策略会用一个“市场宽度”指标来决定股票仓位是 50% 还是 10%。

计算方法是:

从基础股票池里,按流通市值从小到大选出 500 只小市值股票。
查看这些股票最近 20 个交易日每天的涨跌。
每天计算:当天上涨的股票数量 / 当天有数据的股票数量。
再把最近 20 天的上涨比例取平均值。
这个平均值就是 breadth_ratio,可以理解为“小票市场最近 20 天的平均赚钱效应”。

如果这个比例小于等于 40%,说明小票整体赚钱效应比较差,策略进入防守状态:

股票仓位 = 10%
ETF 仓位 = 90%
如果这个比例大于等于 50%,说明小票整体赚钱效应比较好,策略进入进攻状态:

股票仓位 = 50%
ETF 仓位 = 50%
如果比例在 40% 到 50% 中间,策略不会立刻切换,而是保持上一次的股票仓位。这样可以减少频繁在进攻和防守之间来回切换。

七、一次调仓具体怎么做

每次周初调仓时,策略大致按这个顺序执行:

先选出本周目标股票。
计算市场宽度,决定股票仓位是 10% 还是 50%。
卖出当前持仓里不在新目标名单里的股票。
把股票仓位平均分配给可以买入的目标股票。
把剩余防守仓位按固定比例买入 4 只 ETF。
比如强势市场下,目标股票有 10 只,股票总仓位是 50%,那么每只股票大约分到:

50% / 10 = 5%
弱势市场下,目标股票有 10 只,股票总仓位是 10%,那么每只股票大约分到:

10% / 10 = 1%
如果当天没有任何可以买入的目标股票,策略会把股票仓位降为 0%,能卖的股票尽量卖掉,然后把资金全部转到 ETF 防守仓位。

八、涨跌停和停牌处理

策略不会强行交易不能交易的品种:

股票停牌,不买也不卖。
股票开盘价已经到涨停,不买。
股票开盘价已经到跌停,不卖。
ETF 停牌,就跳过这只 ETF。
所以实际持仓可能和目标仓位有一点偏差。比如某只股票跌停卖不出去,策略就会先保留它;某只目标股涨停买不进去,策略也不会追买。

九、交易成本和滑点

股票交易成本设置为:

买入佣金:0.03%
卖出佣金:0.03%
卖出印花税:0.05%
最低佣金:5 元
基金 / ETF 交易成本设置为:

买入佣金:0.02%
卖出佣金:0.02%
无印花税
最低佣金:5 元
策略还设置了 0.2% 的价格滑点,用来模拟实际成交时买卖价和回测价之间的偏差。

十、一句话总结

这个策略是一个“周频小市值质量分红策略 + 市场宽度择时 + ETF 防守仓位”的组合策略。

它平时主要从 A 股里筛出上市时间够长、不是 ST、不停牌、成交额够、价格不太低、经营现金流为正、收入利润不下滑、过去有分红的小市值股票;每周选流通市值最小的 10 只来买。

同时,它会观察小市值股票整体最近 20 天的赚钱效应:赚钱效应好,就用 50% 仓位买股票;赚钱效应差,就把股票仓位降到 10%,大部分资金放到 ETF 里防守。



策略收益
414.60%
基准收益
74.86%
年化收益
26.32%
Alpha
0.202
Beta
0.482
Sharpe
1.407
Sortino
1.777
Information Ratio
1.091
Volatility
0.159
Benchmark Volatility
0.245
胜率
0.746
日胜率
0.504
盈亏比
2.925
盈利次数
1336
亏损次数
454
最大回撤
15.158%
2026-07-01 11:59修改 来自江苏 引用
0

符工

赞同来自:

1、每月末对过去10个交易日的所有股票成交额进行汇总,取成交额最高的前50个股票;
2、将这50个股票与市面上的ETF持仓进行比对,挑选出来这50个股票在成分股中占比最高的ETF,下月初买入;
3、月度轮动。
2026-07-01 11:50 来自北京 引用

要回复问题请先登录注册

发起人

问题状态

  • 最新活动: 2026-07-01 12:55
  • 浏览: 774
  • 关注: 41