量化研究 | 利用相对强度跑赢市场

松鼠Quant
2025-05-30

图片
量化策略开发,高质量社群,交易思路分享等相关内容

工具推荐

· 参数筛选工具

·Ai帮你编写策略

· 订单流图表

· 加入2025俱乐部

· Ai投研助手课程


『正文』

ˇ

相对强弱能够反映出两只证券之间的相互关系。几乎在所有技术分析软件里,相对强弱(RS)指标都是最常见的那一类,它的计算方式就是拿一种证券的价格去除以另一种证券的价格,通常分子是股票,分母则是市场指数,像标准普尔 500 指数就是常见的分母。不过,算出来的那个数值本身意义不大,导致对它的解读会显得有些主观,而且股票之间的相对强弱比较往往也比较难有明确结论。


在本文中,我来给大家介绍 RSMK 指标,这个指标是在传统的 RS 指标基础上发展而来的,主要是针对传统 RS 指标难以区分相对强弱期这一关键问题进行了改进。接着,我还会用一个简单的启发式模型,把它的表现和传统的 RS 指标以及买入并持有的被动投资策略做个对比。我也会和大家聊聊交易者怎样借助相对强弱这个概念去制定出能赚钱的交易策略。

接下来,咱们就把重点放在相对优势的应用上。

相对优势在市场间分析方面用得还不是很多。其实,RS 指标可以帮助我们更好地理解市场间的关系,比如股票和债券之间、黄金和美元指数之间的关系。要是你对这方面感兴趣,可以去看我的书《市场间交易策略》(文末 “更多阅读” 里有相关信息)。

大家要注意,RS 指标和 Wilder 的相对强弱指标(RSI)可不是一回事儿。RSI 是衡量证券价格相对于自身的一个指标,而相对强弱(RS)是衡量证券相对于其他证券的表现情况。在大多数平台上都有 RS 指标,一般就叫比较相对强弱。

不少技术分析师都意识到了相对强弱概念挺实用的,而且也都各自对这个领域展开了研究。 这里面比较有名的有 George Chestnutt、Sedge Coppock、Robert A. Levy 和 James O'Shaughnessy。乔治 - 切斯特努特(部分著作在文末 “延伸阅读” 里能见到)总结出:到底是买入领涨的强势股,还是去寻找那些 “落后于市场 ”的股票,盼着它能赶上来?根据对成千上万次情况的统计,答案很明确,很多时候,还是买领头羊,把落后者放一边更好。在市场上,就像生活中很多阶段一样,往往是 “强者愈强,弱者愈弱”。

一、核心公式:

RSMK = EMA [ log(P_A/P_B) - log(P_A/P_B)[n] , m ] × 100


其中:

P_A:合约A价格

P_B:合约B价格

n:回溯周期(默认90天)

m:EMA平滑周期(默认3天)

二、与传统RS指标对比

图片

三、指标应用方法

1. 品种选择原则

高相关性品种:相关系数>0.7(如黄金/白银、豆油/棕榈油)

同产业链品种:螺纹钢/铁矿石、原油/PTA

跨期套利:同一品种不同月份合约

2.信号解读

图片


3. 参数设置建议

图片


策略规则

图片

参数优化方向

图片

四、策略可研发方向

1.三重过滤机制

趋势过滤器:50/200日均线

波动率过滤器:VIX<35

相关性过滤器:60日corr>0.6

2.动态退出策略

回撤止损:RSMK从峰值回落15%

时间止损:持仓超180天强制平仓

跨市场联动:美元指数突破关键位

五、策略优势与局限

优势:

市场中性:对冲系统性风险

趋势敏感:较传统RS信号提前2-5天

规则客观:消除主观判断偏差

跨市场适用:商品/股指/利率市场均有效

局限及应对:

图片

正如作者强调:“没有万能指标,但RSMK为理解相对强弱提供了革命性工具”

策略代码

指标:
































Params    Numeric Length(90);       // 长度参数    Numeric EMALength(3);     // EMA长度参数
Vars    Series<Numeric> StockPrice;   // 数据1的收盘价    Series<Numeric> ReferencePrice; // 数据2的收盘价    Series<Numeric> LogVal;      // 对数值    Series<Numeric> RSMK;        // RSMK指标
Events    OnBar(ArrayRef<Integer> indexs){        // 获取数据1和数据2的收盘价        StockPrice = data1.close;        ReferencePrice = data0.close; // 指数或者参照的品种        // 计算对数值        If(StockPrice > 0 And ReferencePrice > 0)        {            LogVal = Ln(StockPrice / ReferencePrice);        }
        // 计算RSMK指标        RSMK = XAverage(LogVal - LogVal[Length], EMALength) * 100;
        // 绘制RSMK指标        PlotNumeric("ZeroLine", 0, 0,white);        PlotAuto("RSMK", RSMK,0,Yellow,Enum_Bar,Enum_Solid);}

策略:

图片
图片

图片
文件包:
图片

防迷路


           图片

微   信|小松鼠-松鼠Quant

微信号|viquant01

本期源码RSMK》

加入2025量化俱乐部


分享