
La stratégie RSI de suivi de tendance est une stratégie de trading automatique d’actions qui utilise à la fois l’analyse de la tendance et l’indicateur de survente de l’indicateur de survente. Cette stratégie utilise une moyenne mobile simple pour déterminer la direction de la tendance du marché et, combinée à un indice relativement faible (RSI) pour émettre un signal de négociation, permet de juger et de suivre la tendance.
La stratégie se compose de trois volets principaux:
Détermination de la tendance: calculer la moyenne mobile simple de 200 jours pour la tendance à long terme, calculer les moyennes mobiles simples de 30 et 50 jours pour la tendance à court terme. Lorsque la moyenne mobile à court terme est traversée par la moyenne mobile à long terme comme un signal positif et une baisse comme un signal négatif, pour juger de la tendance à court terme du marché.
Le RSI supérieur à 80 est la zone de survente et inférieur à 20 est la zone de survente. Un signal de transaction est émis lorsque l’indicateur RSI baisse de la zone de survente ou augmente de la zone de survente.
Entrée et sortie: Lorsque le signal de survente est jugé, l’entrée est plus / vide si la direction du signal de jugement de la tendance est la même. Lorsque la courte et la longue moyenne mobile se croisent en or, le jugement de la tendance est inversé et la position est libérée.
Grâce à cette stratégie, il est possible d’entrer en bourse en temps opportun en cas de revirement du cours des actions, tout en filtrant une partie du bruit des transactions en fonction de la tendance, et il est relativement bon en matière de contrôle des retraits.
Cette stratégie présente les avantages suivants:
Cette stratégie comporte aussi des risques:
La stratégie peut également être optimisée dans les domaines suivants:
La stratégie de suivi de tendance des moyennes mobiles RSI est une stratégie très pratique dans l’ensemble, mais combinée à l’analyse de la tendance et à l’indicateur de survente et de survente, elle filtre dans une certaine mesure le bruit du marché et rend les signaux de négociation plus précis et plus efficaces. En optimisant continuellement les moyens et les paramètres, la stratégie peut devenir un système de trading à long terme stable et rentable.
/*backtest
start: 2022-11-16 00:00:00
end: 2023-11-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mattehalen
// INPUT per TIMEFRAME
// 5min = Legnth = 9, Source = ohlc4,MaxLoss = 1000 TrendMA = 200, ShortMA = 4, LongMA = 10
// 30min = Legnth = 7, Source = ohlc4,MaxLoss = 1000 TrendMA = 200, ShortMA = 10, LongMA = 20
strategy("Mathias & Christer Timeframe RSI", shorttitle="M&C_RSI",overlay=true, process_orders_on_close = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
len = input(9, title="Length", type=input.integer)
src = input(ohlc4, title="Source", type=input.source)
//show4h = input(true, title="show 4h", type=input.bool)
maxLoss = input(3000)
rsiCurrent = rsi(src, len)
//rsi4h = security(syminfo.ticker, "240", rsi(src, len))
rsi4h = rsi(src, len)
//--------------------------------------------------
//MA
trendMAInput = input(200, title="trendMA", type=input.integer)
shortMAInput = input(30, title="shortMA", type=input.integer)
longMAInput = input(50, title="longMA", type=input.integer)
trendMA = ema(close,trendMAInput)
shortMA = ema(close,shortMAInput)
longMA = ema(close,longMAInput)
plot(trendMA, color=color.black, linewidth=5)
plot(shortMA, color=color.red, linewidth=2)
plot(longMA, color=color.green, linewidth=2)
bgcolor(crossunder(shortMA,longMA) ? color.black : na, transp=10)
//--------------------------------------------------
//RSI
BuySignalBarssince = barssince(rsi4h[1]<rsi4h[0] and rsi4h[1]<20)
BuySignal = (rsi4h[1]<rsi4h[0] and rsi4h[1]<20 and BuySignalBarssince[1]>10)
BuySignalOut = crossunder(longMA[1],shortMA[1])
bgcolor(BuySignal ? color.green : na, transp=70)
bgcolor(BuySignalOut ? color.green : na, transp=10)
SellSignalBarssince = barssince(rsi4h[1]>rsi4h[0] and rsi4h[1]>80)
SellSignal = (rsi4h[1]>rsi4h[0] and rsi4h[1]>80 and SellSignalBarssince[1]>10)
SellSignalOut = crossunder(shortMA[1],longMA[1])
bgcolor(SellSignal ? color.red : na, transp=70)
bgcolor(SellSignalOut ? color.red : na, transp=10)
if BuySignal
strategy.close("short", comment = "Exit short")
strategy.entry("long", true)
strategy.exit("Max Loss", "long", loss = maxLoss)
if BuySignalOut
strategy.close("long", comment = "Exit Long")
if SellSignal
// Enter trade and issue exit order on max loss.
strategy.close("long", comment = "Exit Long")
strategy.entry("short", false)
strategy.exit("Max Loss", "short", loss = maxLoss)
if SellSignalOut
// Force trade exit.
strategy.close("short", comment = "Exit short")
//--------------------------------------------------
//ATR
MyAtr = atr(10)
AtrFactor = 10
mySLBuy = close[BuySignalBarssince]
mySLSell = close[SellSignalBarssince]
plotchar(BuySignal, "BuySignal", "⬆", location.belowbar, color.lime,size =size.huge )
plotchar(BuySignalOut, "BuySignalOut", "█", location.belowbar, color.lime,size =size.small)
plotchar(SellSignal, "SellSignal", "⬇", location.abovebar ,color.red,size =size.huge)
plotchar(SellSignalOut, "SellSignalOut", "█", location.abovebar, color.red,size =size.small)