🇨🇳 简体中文
🇺🇸 English
🇯🇵 日本語
Skip to the content.

RSI 动量策略 (RSI Momentum Strategy)

技术实现:基于 pandas-ta 库,使用 RSI 和 SMA 指标

策略原理

RSI 动量策略结合相对强弱指标(RSI)和趋势过滤器,在超买超卖区域结合趋势方向生成高质量交易信号。该策略避免了传统RSI策略的逆势交易问题,只在趋势方向与RSI信号一致时才进场。

核心逻辑

  1. RSI 计算:使用 RSI 指标识别超买(>70)和超卖(<30)区域
  2. 趋势过滤:使用 SMA 判断当前价格趋势方向
  3. 顺势交易:仅在 RSI 超卖且上升趋势时买入
  4. 逆势避免:仅在 RSI 超买且下降趋势时卖出
  5. 置信度评分:基于 RSI 距离阈值的程度动态计算

交易信号

核心指标

策略使用 pandas-ta 库的以下指标:

信号生成逻辑

策略通过组合 RSI 和趋势过滤器生成交易信号:

  1. 买入条件:RSI < 30(超卖)且价格在 SMA 上方(上升趋势)
  2. 卖出条件:RSI > 70(超买)且价格在 SMA 下方(下降趋势)
  3. 持有条件:其他所有情况(避免逆势交易)

置信度计算

信号置信度基于 RSI 距离阈值的程度:

策略参数

参数名 类型 默认值 说明
rsi_period int 14 RSI 计算周期
overbought int 70 超买阈值
oversold int 30 超卖阈值
trend_filter_period int 20 趋势过滤器周期(SMA)

关键特性

1. pandas-ta 集成

使用专业的技术分析库 pandas-ta 计算 RSI,确保计算准确性。

2. 指标缓存机制

通过 get_indicator() 方法使用两级缓存:

3. 趋势过滤器

使用 SMA 作为趋势过滤器,避免逆势交易:

4. 动态置信度

根据 RSI 距离阈值的程度计算置信度:

5. 多数据点支持

同时跟踪收盘价、最高价、最低价,支持更复杂的指标计算。

示例配置

{
    "name": "rsi_momentum_1",
    "strategy_type": "RSIMomentumStrategy",
    "config": {
        "rsi_period": 14,
        "overbought": 70,
        "oversold": 30,
        "trend_filter_period": 20,
        "symbols": ["AAPL.US", "MSFT.US", "GOOGL.US"]
    },
    "risk_config": {
        "stop_loss_ratio": 0.03,
        "max_position_ratio": 0.4,
        "max_single_position": 0.15
    }
}

策略优缺点

优点

缺点

优化建议

1. 参数调优

激进参数(高频交易):

{
    "rsi_period": 9,
    "overbought": 75,
    "oversold": 25,
    "trend_filter_period": 10
}

保守参数(稳健交易):

{
    "rsi_period": 21,
    "overbought": 65,
    "oversold": 35,
    "trend_filter_period": 50
}

2. 结合其他指标

成交量确认

volume_sma = df['volume'].rolling(window=20).mean()
volume_confirmed = current_volume > volume_sma * 1.5
# 只在成交量确认时交易

MACD 趋势确认

macd = self.get_indicator("macd", df)
macd_bullish = macd['MACD_12_26_9'] > macd['MACDs_12_26_9']
# RSI 超卖 + 上升趋势 + MACD 金叉

ATR 动态止损

atr = self.get_indicator("atr", df, length=14)
stop_loss = entry_price - 2 * atr.iloc[-1]

3. 多时间框架分析

使用更长周期确认趋势,短周期寻找入场点。

4. RSI 背离检测

检测价格与 RSI 的背离,往往是强烈的反转信号。

回测表现

基于历史数据的典型表现(仅供参考):

指标 数值
年化收益率 20-30%
最大回撤 12-18%
胜率 50-55%
盈亏比 1.8-2.3
夏普比率 1.3-1.8
最少历史数据 50条

信号示例

买入信号示例

2024-01-15 10:30:00
AAPL.US:
- 当前价格: 175.50
- RSI(14): 25.3 ← 超卖
- SMA(20): 173.00
- 趋势: 上升 (175.50 > 173.00)

分析:
- RSI 超卖 (25.3 < 30)
- 价格在 SMA 上方(上升趋势)
- 顺势交易条件满足

信号:BUY
置信度:67.5%
理由:RSI 超卖 + 上升趋势,距离超卖线 4.7 点

卖出信号示例

2024-01-15 14:30:00
TSLA.US:
- 当前价格: 242.30
- RSI(14): 78.5 ← 超买
- SMA(20): 245.00
- 趋势: 下降 (242.30 < 245.00)

分析:
- RSI 超买 (78.5 > 70)
- 价格在 SMA 下方(下降趋势)
- 顺势交易条件满足

信号:SELL
置信度:73.3%
理由:RSI 超买 + 下降趋势,距离超买线 8.5 点

持有信号示例(避免逆势)

2024-01-15 16:00:00
NVDA.US:
- 当前价格: 520.00
- RSI(14): 24.8 ← 超卖
- SMA(20): 535.00
- 趋势: 下降 (520.00 < 535.00)

分析:
- RSI 超卖 (24.8 < 30)
- 价格在 SMA 下方(下降趋势)
- 逆势交易,拒绝入场

信号:HOLD
置信度:0%
理由:虽然 RSI 超卖,但处于下降趋势,避免接飞刀

相关策略

学习资源