Stratégie de percée à double voie basée sur l'indicateur RSI


Date de création: 2024-01-08 10:28:26 Dernière modification: 2024-01-08 10:28:26
Copier: 1 Nombre de clics: 634
1
Suivre
1617
Abonnés

Stratégie de percée à double voie basée sur l’indicateur RSI

Aperçu

Cette stratégie est connue sous le nom de stratégie de rupture à deux voies basée sur le RSI. Cette stratégie utilise la combinaison des deux voies du RSI pour juger et réaliser des achats et des ventes à bas prix. Elle est considérée comme un signal d’achat lorsque le RSI est inférieur à la trajectoire basse définie (par défaut 40) et confirme la vente si le RSI10 est inférieur au RSI14.

Principe de stratégie

La logique centrale de cette stratégie est d’utiliser le double rail de l’indicateur RSI pour juger. L’indicateur RSI est généralement défini sur 14 cycles, ce qui représente une situation de force ou de faiblesse des actions pendant près de 14 jours. La stratégie ajoute le RSI10 comme indicateur de jugement auxiliaire.

Lorsque le RSI 14 dépasse la zone 40, on pense que le cours de l’action tombe au-dessus de la zone de faiblesse, ce qui peut créer une opportunité de rebond de soutien. Si le RSI 10 est inférieur au RSI 14, cela indique que la tendance à court terme est toujours à la baisse, ce qui permet de confirmer davantage le signal baissier.

Lorsque le RSI14 dépasse la zone 70, on pense que le cours de l’action est entré dans une zone de force à court terme, et il est possible qu’il y ait une opportunité de réajustement à la baisse. Si le RSI10 est supérieur au RSI14, cela indique que la tendance à court terme continue à la hausse, ce qui permet de confirmer davantage le signal positif.

Ainsi, le jugement de la combinaison des RSI14 et RSI10 constitue la logique centrale de la stratégie à deux voies.

Avantages stratégiques

  1. L’utilisation d’une combinaison d’indicateurs RSI doubles permet de capturer plus précisément les points d’achat et de vente
  2. La mise en place d’un mécanisme de stop-loss mobile, permettant de stopper les pertes en temps opportun et de contrôler le maximum de pertes
  3. Mise en place d’un mécanisme d’arrêt de l’arrêt, permettant de se retirer après avoir atteint les objectifs de profit, pour éviter le retour de profit

Risque stratégique

  1. Les indices RSI sont sujets à de faux signaux et ne permettent pas d’éviter complètement les pertes
  2. Un arrêt de perte trop proche peut être désactivé, un risque trop élevé et difficile à contrôler
  3. Si les conditions de conduite sont anormales, comme un saut rapide dans l’air, cela entraînera des pertes correspondantes.

Pour tirer le meilleur parti de cette stratégie, il est possible d’ajuster les paramètres RSI de manière appropriée, de contrôler strictement les positions de stop loss, d’éviter des opérations trop intenses et de rechercher une rentabilité stable et durable.

Orientation de l’optimisation de la stratégie

  1. Une combinaison avec d’autres indicateurs, tels que KDJ, MACD, etc., peut être envisagée pour réaliser une vérification multi-indicateurs
  2. Les paramètres RSI peuvent être configurés pour différentes variétés afin de les rapprocher des caractéristiques de la variété
  3. Il est possible de définir un stop-loss dynamique et d’ajuster le stop-loss en temps réel en fonction d’indicateurs tels que ATR
  4. Les paramètres RSI peuvent être automatiquement optimisés par l’apprentissage automatique.

Résumer

Cette stratégie est basée sur la pensée bi-route du RSI, filtrant dans une certaine mesure certains signaux de bruit. Cependant, aucune stratégie d’indicateur unique ne peut être parfaite, l’indicateur RSI est susceptible de générer des erreurs et doit être considéré avec prudence.

Code source de la stratégie
/*backtest
start: 2023-12-31 00:00:00
end: 2024-01-07 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © DojiEmoji

//@version=4
strategy("[KL] RSI 14 + 10 Strategy",overlay=true)

backtest_timeframe_start = input(defval = timestamp("01 Jan 2015 13:30 +0000"), title = "Backtest Start Time", type = input.time)
//backtest_timeframe_end = input(defval = timestamp("19 Mar 2021 19:30 +0000"), title = "Backtest End Time", type = input.time)
TARGET_PROFIT_MODE = input(false,title="Exit when Risk:Reward met")
REWARD_RATIO = input(3,title="Risk:[Reward] (i.e. 3) for exit")
// Trailing stop loss {
TSL_ON = input(true,title="Use trailing stop loss")
var entry_price = float(0)
ATR_multi_len = 26
ATR_multi = input(2, "ATR multiplier for stop loss")
ATR_buffer = atr(ATR_multi_len) * ATR_multi
plotchar(ATR_buffer, "ATR Buffer", "", location = location.top)
risk_reward_buffer = (atr(ATR_multi_len) * ATR_multi) * REWARD_RATIO
take_profit_long = low > entry_price + risk_reward_buffer
take_profit_short = low < entry_price - risk_reward_buffer
var bar_count = 0 //number of bars since entry 
var trailing_SL_buffer = float(0)
var stop_loss_price = float(0)
stop_loss_price := max(stop_loss_price, close - trailing_SL_buffer)
// plot TSL line
trail_profit_line_color = color.green
showLine = strategy.position_size == 0
if showLine
    trail_profit_line_color := color.black
    stop_loss_price := close - trailing_SL_buffer
plot(stop_loss_price,color=trail_profit_line_color)
// }
// RSI
RSI_LOW = input(40,title="RSI entry")
RSI_HIGH = input(70,title="RSI exit")
rsi14 = rsi(close, 14)
rsi10 = rsi(close, 10)

if true// and time <= backtest_timeframe_end
    buy_condition = rsi14 <= RSI_LOW and rsi10 < rsi14
    exit_condition = rsi14 >= RSI_HIGH and rsi10 > rsi14
    //ENTRY:
    if strategy.position_size == 0 and buy_condition
        entry_price := close
        trailing_SL_buffer := ATR_buffer
        stop_loss_price := close - ATR_buffer
        strategy.entry("Long",strategy.long, comment="buy")
        bar_count := 0
    else if strategy.position_size > 0
        bar_count := bar_count + 1

    //EXIT: 
    // Case (A) hits trailing stop
    if TSL_ON and strategy.position_size > 0 and close <= stop_loss_price
        if close > entry_price
            strategy.close("Long", comment="take profit [trailing]")
            stop_loss_price := 0
        else if close <= entry_price and bar_count
            strategy.close("Long", comment="stop loss")
            stop_loss_price := 0
        bar_count := 0
    // Case (B) take targeted profit relative to risk 
    if strategy.position_size > 0 and TARGET_PROFIT_MODE
        if take_profit_long
            strategy.close("Long", comment="take profits [risk:reward]")
            stop_loss_price := 0
        bar_count := 0
    // Case (C)
    if strategy.position_size > 0 and exit_condition
        if take_profit_long
            strategy.close("Long", comment="exit[rsi]")
            stop_loss_price := 0
        bar_count := 0