量价过滤+2种动量先后过滤(优)
一、核心前提(复现必固定)
- 运行依赖:聚宽(JQData)环境,需调用
jqdatanumpypandas库,数据接口和下单函数用聚宽原生工具。 - 基础参数(不可改):
动量计算周期:25 天
日内止损线:-3%(当日跌幅超 3% 清仓)
成交量阈值:近 7 日均量的 2 倍(超阈值排除)
RSRS 计算参数:18 天斜率周期、250 天滚动窗口(20 天子窗口)
调仓时间:每日 10:40 执行核心调仓;10:00 检测日内止损;13:30 检测成交量异常
资金来源:子账户 1(占总资金 50%),单笔最小下单 2000 元,ETF 最小买入 100 份
- 固定 ETF 池(7 只,大类资产覆盖):
代码 名称 资产类型 513520.XSHG 日经 ETF 跨境指数 513100.XSHG 纳指 100 跨境指数 513020.XSHG 港股科技 港股科技 510180.XSHG 上证 180 国内宽基 588120.XSHG 科创板 国内科技成长 159915.XSHE 创业板 国内成长 511090.XSHG 30 年国债 ETF 债券(避险)
二、核心逻辑:四轮筛选(按顺序执行,缺一不可)
1. 第一轮:基础过滤(规避短期风险)
筛选规则:
① 上市时间:无需额外过滤(代码池标的均满足上市时长要求,复现时可直接用)。
② 短期暴跌过滤:取标的过去 3 天价格(含当日最新价),计算每日跌幅(当日价 / 前一日价)。若任意一天跌幅<0.95(即跌超 5%),直接排除。【近3天,无暴跌5%】
2. 第二轮:日内止损过滤(10:00 提前执行)
计算逻辑:
当日实时涨幅 =(当前最新价 - 当日开盘价)/ 当日开盘价
筛选规则:若涨幅 ≤ -3%(即跌超 3%),直接排除该标的(哪怕后续得分高也不纳入选择)。【当天无下跌3%】
3. 第三轮:动量评分(核心筛选,和全球选基策略完全一致)
计算步骤(必须按公式复现):
① 数据准备:
取标的过去 25 天的前复权收盘价 + 当日最新价,共 26 个价格数据(记为
prices)。② 对数转换:
log_prices = np.log(prices)(把非线性的价格涨幅,转化为线性可拟合的序列)。③ 构造自变量和权重:
自变量
x:[0,1,2,...,25](共 26 个数字,对应 26 个价格时间点)。权重
w:[1, 1.04, 1.08,...,2](线性递增,近期价格权重更高,计算:np.linspace(1,2,26))。④ 加权最小二乘拟合:
用
np.polyfit(x, log_prices, 1, w=w)得到斜率slope(核心)和截距(无用,可忽略)。⑤ 计算年化收益率:
annualized_return = math.exp(slope × 250) - 1(250 为年化交易日数)。⑥ 计算拟合优度 R²(判断趋势可靠性):
残差
resid = log_prices - (slope×x + 截距)(实际值与拟合值的差距)。加权残差平方和
ss_res = np.sum(w × resid × resid)。加权总平方和
ss_tot = np.sum(w × (log_prices - np.mean(log_prices))²)。R² = 1 - ss_res/ss_tot(R² 越接近 1,价格趋势越线性,越可靠)。
⑦ 最终得分:
score = annualized_return × R²。筛选规则:只保留得分>0 的标的(得分≤0 代表无正向趋势,直接排除)。
4. 第四轮:成交量过滤(13:30 执行,分回测 / 实盘)
计算逻辑:
① 近 7 日均量:
avg_vol = 过去7天成交量之和 ÷ 7(用attribute_history获取历史成交量)。② 当日成交量:
回测场景:用前一日成交量替代(因回测无实时 1 分钟数据)。
实盘场景:用当日截至 13:30 的累计成交量(用
get_price取 1 分钟数据求和)。筛选规则:若当日成交量 > avg_vol × 2(即异常放量),直接排除该标的。【避免当日放2倍均量】
5. 第五轮:RSRS 过滤(趋势强度验证,关键风控)
核心逻辑:RSRS 斜率越大,说明标的 “低点抬高、高点也抬高” 的趋势越强,支撑越稳固。【计算rsrs动量值】
计算步骤:
① 计算 18 天 RSRS 斜率(
slope18):取过去 18 天的每日最低价和最高价,用
np.polyfit(最低价序列, 最高价序列, 1)得到斜率(斜率为正,代表低点和高点同步上升)。② 计算斜率阈值
beta(安全线):取过去 250 天的高低点数据,按 20 天为一个窗口,滚动计算斜率(每次算 20 天的高低点斜率),得到多个斜率值。
beta = 斜率均值 - 2×斜率标准差(相当于斜率的 “下限安全线”,低于则趋势过弱)。③ 计算趋势强度:
strength = (slope18 - beta) ÷ abs(beta)(大于 0 代表强于安全线)。筛选规则(满足任一即可):【rsrs动量强度和均线配合】
① strength > 0.15(趋势极强,直接通过)。
② 0.03 < strength ≤ 0.15 + 当前价 ≥ 5 日均线(趋势较强,且价格在短期均线上方)。
③ strength ≤ 0.03 + 当前价 ≥ 10 日均线(趋势一般,但价格在中期均线上方,有支撑)。
不满足以上任意一条 → 排除。
三、调仓执行逻辑(每日 10:40 触发)
1. 无合格标的 → 清仓
2. 有合格标的 → 轮动持仓(只持 1 只)
若当前持仓就是目标标的 → 不调仓(保持持仓)。
若当前持仓不是目标标的 → 先卖出原有持仓(目标金额 0),再用子账户 1 全部可用资金买入目标标的(需满足:单笔金额≥2000 元,且为 100 份的整数倍)。
3. 额外风控执行(每日固定时间)
10:00 日内止损:检查当前持仓标的,若当日跌幅≤-3%,立即清仓。
13:30 成交量异常检测:检查当前持仓标的,若当日成交量>近 7 日均量 ×2,且价格低于当日开盘价,立即清仓。
四、年度治理(固定时间执行,无需手动干预)
11 月最后一个交易日 14:50 → 清仓子账户 1 所有持仓(为 12 月再平衡做准备)。
12 月第一个交易日 09:20 → 按目标权重(子账户 1 占总资金 50%)重新分配资金,之后执行正常调仓逻辑(买入筛选出的标的)。
五、复现关键细节(避坑重点)
数据缓存:当日的
get_current_data()(实时数据)、attribute_history(历史数据)只获取一次,缓存复用(代码中_cur()_ah()函数的作用,提升复现速度)。下单函数:必须用
order_target_value_send,先按金额下单,失败后自动回退为 “100 份整数倍” 下单(避免因金额不足一手导致下单失败)。均线计算:5 日均线 / 10 日均线,用过去 5 天 / 10 天的收盘价均值计算(用
attribute_history获取数据后求平均)。

作者文章
- 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)
次方量化-技术博客
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。