次方量化 全球宏观 每月宏观 公众号 股票开户

斜率*R平方的轮动

lindercube 2个月前 (10-24) 阅读数 199 #帮助文档

在动量轮动策略中,将斜率(Slope)与 R 平方(R-Squared)的乘积作为综合评分,是一种高效的量化筛选方法。这种评分机制的核心逻辑是:用斜率衡量趋势强度,用 R 平方验证趋势稳定性,两者相乘形成‘质量动量’指标,优先选择‘涨得快且稳’的资产。以下从实现原理、参数优化、实证效果和风险控制四个维度展开分析:

d452a867e0047b3d6759caacddfb66b7_CmQUOWEdDI6EDR8eAAAAALANDuU769125580_v=0QuX_IBr&t=CmQUOWEdDI4..jpg

【1】评分机制的数学原理与实现

1. 斜率与 R 平方的协同逻辑

  • 斜率(Slope)

    :通过线性回归计算价格趋势的 “速度”,反映动量强度。例如,某资产过去 20 日价格拟合为 Y = 10 + 0.8X,斜率 0.8 表示每日平均上涨 0.8 元,趋势强劲。
  • R 平方(R-Squared)

    :衡量价格走势与趋势线的贴合程度,取值 0-1。若 R 平方 = 0.75,说明 75% 的价格波动可由趋势线解释,趋势稳定性高。
  • 乘积评分(Score)

    Score = Slope × R²。例如,斜率 0.8 且 R 平方 0.75 的资产得分为 0.6,而斜率 1.0 但 R 平方 0.3 的资产得分仅为 0.3,后者因趋势不稳定被排除。

2. 标准化处理避免量纲偏差

直接相乘可能受资产价格绝对值影响(如高价股斜率数值天然更大)。因此,需对价格序列进行归一化。

【2】实现方式逻辑

策略参数采用下面的一些ETF列表,周期使用25天

# 策略参数
class StrategyParams:
    def __init__(self):
        self.etf_pool = {
            '518880': '黄金ETF',   # 黄金ETF(大宗商品)
            '513100': '纳指100',   # 纳指100(海外资产)
            '513030': '德国ETF',   # 德国
            '513090': '港股ETF',   # 港股
            '159915': '创业板100', # 创业板100(成长股,科技股,中小盘)
            '510180': '上证180',   # 上证180(价值股,蓝筹股,中大盘)
        }
        self.m_days = 25  # 动量参考天数
        self.target_num = 1  # 持有标的数量
        self.start_date = datetime(2020, 1, 1)  # 回测开始日期
        self.end_date = datetime.now()  # 回测结束日期
        self.min_transaction_amount = 100  # 最小交易金额,避免小额交易


  • 回测出来的结果如下图,



在第三方量化平台实现以后的效果也是差不多的曲线

图片


【3】次方量化平台实现方式

虽然我们本地已经调试出了年化70%的策略,不过还是把一个行业ETF去掉了,保留了66%的收益率,等下发布到前端。


图片


参数配置如下,由于这个策略的收益率和回撤并没有比简单的动量有多少上涨,而且这里的最少持有天数是1天,对于下次可能调仓时间无法预估,虽然很少1天就调仓的记录。

图片


【4】操作教程

选择ETF池子,不要选择多了,意义不大。


图片


设置参数,后台配置的时候,选择斜率就是了。


图片


回测结果,最上面的策略原理和逻辑是简化的版本,不过大概意思是这个意思。我们自己实现的比这个复杂很多。为了策略的保密性,没有公开全部实现逻辑。


图片



分享到:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门
标签列表