我是谁: 混迹集思录10+年老用户,受益匪浅,了解到了分级基金上折下折赚到第一桶金(无奈本金太少);后来从事IT,主要做深度学习、机器学习相关的业务 (也是因为自己做量化自学了这些);虽然不是什么大厂的开发,但是也是在千人左右的独角兽独立负责系统业务,自认为水平不至于太次;
我能做什么:我知道集思录里有很多大佬都非常有想法,比如 最近看到【DDM/DCF模型轮动实盘】这个帖子也很有启发; 但是很多人可能没有量化、回测的经验,并不知道自己的某个想法是否可行;我可以帮忙进行比较系统化的回测并贴出结果 (感谢ai的帮助,我可以很快实现一个策略的回测);
你需要做什么:直接在帖子里公开的回复自己想要测试的策略(不一定要实盘的,只是想法都可以,最好不要高频),尽可能的完整详细不要有模糊地带;私信也可以,但是私信的我会考虑收取回测费用,因为本质上是想要大家参与讨论;
FAQ:
回测是否靠谱?
回测并不是银弹,通常可以帮大家筛选掉不靠谱的策略,但是并不能找到必胜的策略;
你是否剔除了未来函数?
是的,我会严格的考虑到策略中是否引入了未来数据并剔除;但是更广义的未来参数还是存在的,比如我们现在都知道科技很牛,如果你想出了一个科技板块策略,回测效果很好,其实本质上是你先知道了未来科技会起飞,所以思考策略时需要自己注意;
支持什么市场?
主要支持a股市场的股票、基金与可转债这些;暂时不支持期货(包括金融期货)期权这些;很吃盘口与流动性的策略最好不要回测很容易失真;
我能做什么:我知道集思录里有很多大佬都非常有想法,比如 最近看到【DDM/DCF模型轮动实盘】这个帖子也很有启发; 但是很多人可能没有量化、回测的经验,并不知道自己的某个想法是否可行;我可以帮忙进行比较系统化的回测并贴出结果 (感谢ai的帮助,我可以很快实现一个策略的回测);
你需要做什么:直接在帖子里公开的回复自己想要测试的策略(不一定要实盘的,只是想法都可以,最好不要高频),尽可能的完整详细不要有模糊地带;私信也可以,但是私信的我会考虑收取回测费用,因为本质上是想要大家参与讨论;
FAQ:
回测是否靠谱?
回测并不是银弹,通常可以帮大家筛选掉不靠谱的策略,但是并不能找到必胜的策略;
你是否剔除了未来函数?
是的,我会严格的考虑到策略中是否引入了未来数据并剔除;但是更广义的未来参数还是存在的,比如我们现在都知道科技很牛,如果你想出了一个科技板块策略,回测效果很好,其实本质上是你先知道了未来科技会起飞,所以思考策略时需要自己注意;
支持什么市场?
主要支持a股市场的股票、基金与可转债这些;暂时不支持期货(包括金融期货)期权这些;很吃盘口与流动性的策略最好不要回测很容易失真;
0
@zhangsheng123
这个数据样本不够,2013 年到 2018 年,每一年都颇有代表性,分化,牛市,股灾,熔断,18 全年大熊,2019-2025 相对行情反而平稳一些,你需要把这几年的数据补齐才能看出极端行情的策略表现,因为你需要考虑人心理承受极限我故意剔除了太久远的数据,更早的行情里小市值更有效;我这个策略今年的行情下就翻车了,都跌了7%多了现在,虽然策略已经切到了防守,但是防守端的黄金、红利还是跌很惨
0
@tfdetang
抛砖引玉,放上一个最近回测的小市值增强策略:这个策略可以理解成:每周只调一次仓,平时不动。它把资金分成两部分:一部分买股票做进攻,另一部分买 ETF 做防守。股票部分主要买“小市值、基本面还过得去、最近几年有分红、流动性不太差”的股票;防守部分则固定配置 4 只 ETF。一、什么时候交易策略每天 09:35 会检查一次,但不是每天都调仓。只有在“本周第一个交易日”才会真正执行调仓。比如周一正常开...这个数据样本不够,2013 年到 2018 年,每一年都颇有代表性,分化,牛市,股灾,熔断,18 全年大熊,2019-2025 相对行情反而平稳一些,你需要把这几年的数据补齐才能看出极端行情的策略表现,因为你需要考虑人心理承受极限
0
@tfdetang
然后我再看各个ETF的持仓,
比如ETF甲有100个持仓股,其中有30个持仓股和成交额前50个股重合,这30个股票占ETF的持仓比例为60%;
ETF乙有50个持仓,其中40个持仓股和成交额前50个股重合,这40个股票占ETF的持仓比例为80%;
依次统计各ETF中的持仓股与成交额前50的重合比例,选比例最高的买入轮动。
实质就是统计最近一段时间资金热炒的股票,然后买一个“含热率”最高的ETF。
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。
3
赞同来自: 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%
这个策略可以理解成:每周只调一次仓,平时不动。它把资金分成两部分:一部分买股票做进攻,另一部分买 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%
Edge
Chrome
Firefox


京公网安备 11010802031449号