区间涨幅-最小持有-止盈冷却
就是一个简单的区间涨幅,带有止盈止损功能,
该策略是一个基于动量因子的 ETF 轮动策略,核心逻辑是通过筛选特定周期内动量表现符合条件的 ETF,并结合持有时间限制、止盈规则和冷却机制进行交易决策。以下是策略逻辑的详细分析:
一、策略初始化(initialize 函数)
基准与交易规则:以沪深 300(000300.XSHG)为基准,使用真实价格交易,开启防未来函数,设置交易成本(佣金 0.02%,无税费)。
核心参数定义:
动量周期:25 天(计算过去 25 天的价格动量)。
动量阈值:仅保留动量在 0.04(4%)到 1(100%)之间的 ETF(过滤动量过低或过高的标的)。
最小持有天数:8 天(自然日),避免频繁交易。
止盈规则:涨幅达 10% 时触发止盈,止盈后对应 ETF 进入 4 天冷却期(期间不再次买入)。
全局变量:记录上次交易时间、当前 / 历史持仓 ETF、持仓成本、ETF 池(14 只宽基 / 行业 ETF)、止盈时间字典等。
定时任务:每日 14:50 运行
select函数(筛选标的),14:55 运行trade函数(执行交易)。
二、核心逻辑模块
1. 标的筛选(selection 函数)
计算动量:对每只 ETF,获取过去 25 天的收盘价,计算动量得分((当前收盘价 - 25 天前收盘价)/25 天前收盘价),过滤数据不足的 ETF。
排序与过滤:
按动量得分降序排序(优先选动量高的标的)。
过滤处于止盈冷却期的 ETF(若某 ETF 在 4 天内触发过止盈,则暂时排除)。
保留动量在 0.04~1 之间的 ETF(剔除动量过低或过高的标的)。
结果输出:返回筛选后排名前 2 的 ETF(为后续换仓提供备选)。
2. 交易标的选择(select 函数,14:50 运行)
selection的筛选结果,结合持有时间和止盈规则,确定当日是否换仓及目标标的,逻辑如下:首次开仓:若从未交易(
last_trade_time为 None),直接选取selection返回的第一个 ETF 作为目标。非首次交易:
检查是否触发止盈(当前价格较买入价涨幅≥10%):
若触发止盈:记录止盈时间,若筛选结果只有 1 只 ETF 则清仓,否则换为第 2 只 ETF。
未触发止盈:继续持有当前 ETF。
需满足 “持有天数≥8 天” 才允许调整持仓(避免短期频繁操作)。
若筛选出的首个 ETF 与当前持仓不同:直接将其设为目标标的(准备换仓)。
若筛选出的首个 ETF 与当前持仓相同:
3. 交易执行(trade 函数,14:55 运行 + rotation 函数)
select确定的目标标的,执行实际买卖操作:无目标标的(g.etf 为空):若之前有持仓,则清仓,并重置持仓记录、交易时间等参数。
有目标标的且与当前持仓不同:调用
rotation函数执行换仓:先卖出当前持仓(平仓)。
记录目标 ETF 的当前价格(用于后续止盈计算)。
用全部资金买入目标 ETF(满仓操作)。
更新持仓记录、上次交易时间等参数。
三、关键规则总结
动量驱动:核心是选择过去 25 天动量在 4%~100% 之间的 ETF,优先选排名靠前的标的。
持有约束:单只 ETF 至少持有 8 天,避免短期交易。
止盈保护:涨幅达 10% 时止盈,且止盈后 4 天内不再次买入该 ETF(避免追高)。
轮动逻辑:当筛选出的最优 ETF 与当前持仓不同,且满足持有天数要求时,立即换仓(满仓切换)。
四、策略整体流程
每日 14:50:通过
selection筛选符合条件的 ETF,再通过select结合持有时间、止盈规则确定目标标的。每日 14:55:通过
trade和rotation执行交易,若目标标的变化则换仓,若需清仓则平仓。循环上述过程,持续根据动量变化和规则调整持仓。
该策略本质是通过动量因子捕捉中期趋势,同时用持有天数、止盈和冷却期控制风险,实现 ETF 的轮动配置。

作者文章
- Backtrader 最流行的量化回测框架 2天前
- LOF基金套利教程,溢价率68% 2天前
- 通过阿里源安装python的包 3天前
- 短线、龙头、趋势(AI战法) 3天前
- 年化收益167.48%,夏普率4.90 3天前
- 1 头部券商开户:超低手续费+QMT+赠送会员 你好,次方量化提供了丰厚的开户权益:(请准备好身份证照片、银行卡号)权益1:手动交易超低手续费股票万1(包规费)ETF万0.5 (包规费)可转债万0.5(包规费)国债逆回购一折以1万本金为例,一年省出一台新iPhone。权益2:赠送次方量化...
- 2 次方量化-微信公众号 次方量化 - 服务号次方量化 - 订阅号微信企业 客服微信...
- 3 证券QMT客户端,实盘交易配置文档 QMT中创建并运行策略打开QMT客户端,登录账号密码,进入主界面,点击左边菜单【我的】,这时候界面中间区域会展示QMT中自带的策略列表,点击顶部的【新建策略】选择Python策略,点击后会打开一个空白界面,这时候将网站上的代码复制粘贴到界面...
- 4 自动交易,对接实盘QMT 由于很多朋友工作并不会用到电脑,就算在电脑面前,2点30以后,都没有时间看电脑,我们就开发了一个QMT的功能。实现自动化交易,如果你的资金量比较大,开通QMT意义大一些,资金量小,手动跟也无所谓。下面是你需要准备的一些点:【开通券商QMT】...
- 5 RSRS动量轮动策略 本篇基于光大证券研报《基于阻力支撑相对强度(RSRS)的市场择时》,给出了RSRS斜率指标择时,以及在斜率基础上的标准化指标择时策略。阻力位是指指标价格上涨时可能遇到的压力,即交易者认为卖方力量开始反超买方,从而价格难以继续上涨或从此回调下...
- 6 本轮牛市已经到头了:快跑吧! 首先看的就是M2的数据,已经走平而且开始下跌了再看看,社融数据已经拐头向下了两融余也是下降的经济依然在衰退期,在经济没有明显改善的情况下,目前股市已经处于高估阶段...
- 7 【策略】聚宽平台直接运行的ETF轮动 以下是一个可在聚宽平台直接运行的 ETF 轮动策略,采用动量因子进行选股,每月调仓一次。策略原理是选择近期表现较好的 ETF 进行持有,追求趋势延续性收益。# 克隆自聚宽文章:https://www.joinquant.com/p...
- 8 动量策略为啥有时候会失效? 动量策略失效的核心原因,是其依赖的 “过去收益趋势会延续” 这一核心假设被打破,导致 “追涨杀跌” 的逻辑不再成立。这个问题切中了策略实战的关键,毕竟没有任何策略能永远有效。动量策略的失效通常由以下三类核心因素触发:1. 市场 “regim...
- 9 3种ETF动量策略有什么区别 区间收益这种策略,比较在动量反转的时候出现回撤所有策略,你都需要关注最大回撤,策略不是你买了就可以一直赚钱的。比如这区间涨幅的策略,本月亏损8%,亏损的主要来源是,持有了黄金。当动量反转的时候前面红色的部分你都是赚钱的,后面蓝色的时候你就会...
- 10 复制的策略为什么收益和原来不一样? 比如这重新复制以后,不做任何调整,收益会变化【1】我们修改了回测框架,以前自己写的,现在用的backtrader【2】有些小的bug修复,比如涨停不能买入【3】也增加了一些功能,比如最大阈值,止损,止盈 等【4】大家就以最新的为准,以前的不...
- Backtrader 最流行的量化回测框架 2天前
- LOF基金套利教程,溢价率68% 2天前
- 通过阿里源安装python的包 3天前
- 短线、龙头、趋势(AI战法) 3天前
- 年化收益167.48%,夏普率4.90 3天前
- 次方量化官方【视频教程】 2周前 (12-15)
- 大类资产走势判断(黄金、美股、A股) 2周前 (12-12)
- 炒股每天需要关注的几个数据 2周前 (12-12)
- 允许英伟达向中国出售H200芯片,特朗普宣布分成20% 2周前 (12-10)
- 2026年经济工作【重磅解读】 2周前 (12-10)
次方量化-技术博客
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。