Cette stratégie utilise le croisement de l'indicateur RSI et de sa moyenne mobile comme signaux de trading, appartenant aux stratégies d'indicateur de dynamique communes. Son principe de base est de suivre la différence entre l'indicateur RSI et la moyenne mobile simple SMA_RSI de RSI, puis de calculer la moyenne mobile simple SMA_RSI2 de cette différence. Lorsque SMA_RSI2 franchit le seuil, passez long. Lorsque vous franchissez le seuil, fermez la position.
La stratégie utilise 3 paramètres pour calculer l'indicateur RSI et ses deux moyennes mobiles simples avec des périodes différentes. Tout d'abord, calculez l'indicateur RSI régulier avec la longueur de la période. Ensuite, calculez la longueur2 période moyenne mobile simple SMA_RSI de RSI. Enfin, calculez la différence delta entre RSI et SMA_RSI, puis calculez la longueur3 période moyenne mobile simple SMA_RSI2 de delta. Lorsque SMA_RSI2 dépasse le seuil défini par l'utilisateur, effectuez des transactions longues. Lorsque SMA_RSI2 dépasse le seuil, fermez les positions.
Ainsi, une stratégie de signal de trading basée sur le croisement des moyennes mobiles de l'indicateur RSI est formée.
La stratégie combine les avantages des indicateurs RSI et de leurs moyennes mobiles pour suivre les tendances des prix et éviter d'être induits en erreur par le bruit.
Les avantages spécifiques sont les suivants:
Cette stratégie comporte également certains risques, qui se traduisent principalement par:
Des améliorations peuvent être apportées dans les domaines suivants:
Cette stratégie est relativement simple et universelle. En augmentant la praticité de l'indicateur RSI lui-même grâce à des opérations arithmétiques delta et en utilisant le croisement pour juger, il a un bon contrôle du tirage et est une stratégie d'indicateur de dynamique très pratique.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy ("RSI&SMA", overlay=false ) startP = timestamp(input(2017, "Start Year"), input(12, "Month"), input(17, "Day"), 0, 0) end = timestamp((9999), (1), (1), 0, 0) _testPeriod() => true length = input(3, minval=1, title = "RSI period") length2 = input(21, minval=1, title = "RSI SMA-1") length3 = input(13, minval=1, title = "RSI SMA-2") threshold = input(0,step=0.5, title="Threshold") filter = input(false, title="Use filter?") up = rma (max (change (close), 0), length) down = rma (-min (change (close), 0), length) RSI = down == 0? 100: up == 0? 0: 100-100 / (1 + up / down) SMA_RSI = sma(RSI, length2) delta = RSI-SMA_RSI SMA_RSI2 = sma(delta, length3) Long = crossover(SMA_RSI2, threshold) Short = crossunder(SMA_RSI2, threshold) plot(threshold, color=color.silver) plot(SMA_RSI2, color= SMA_RSI2 > 0 ? color.blue : color.purple) //plot(SMA_RSI, color=color.green) //plot(delta, color=color.red) long_condition = Long and (filter ? close > ema(close, 200) : true) and _testPeriod() strategy.entry('BUY', strategy.long, when=long_condition) short_condition = Short strategy.close('BUY', when=short_condition)