Stratégie de percée à deux voies RSI

Auteur:ChaoZhang est là., Date: 2024-01-08 10:28:26 Le projet de loi est en cours d'adoption.
Les étiquettes:

img

Résumé

La stratégie est appelée RSI Dual-track Breakthrough Strategy. Elle utilise les deux pistes de l'indicateur RSI pour le jugement afin d'atteindre l'objectif d'acheter bas et de vendre haut. Lorsque l'indicateur RSI tombe en dessous de la piste inférieure définie (défault 40), il est considéré comme un signal d'achat. À ce moment, si RSI10 est inférieur à RSI14, il confirme davantage l'achat; lorsque l'indicateur RSI monte au-dessus de la piste supérieure définie (défault 70), il est considéré comme un signal de vente. À ce moment, si RSI10 est supérieur à RSI14, il confirme davantage la vente.

Principe de stratégie

La logique de base de cette stratégie est d'utiliser les deux pistes de l'indicateur RSI pour le jugement.

Lorsque le RSI14 dépasse la barre des 40, on pense que le prix de l'action a franchi le côté faible et qu'il peut y avoir une chance de rebond de support. À ce moment, si le RSI10 est inférieur au RSI14, cela signifie que la tendance à court terme est toujours à la baisse, ce qui peut confirmer davantage le signal de vente. Ainsi, lorsque RSI14 <= 40 et RSI10 est atteint, un signal d'achat est généré.

Lorsque le RSI14 dépasse la barre des 70, on pense que le prix de l'action est entré dans une zone forte à court terme et qu'il peut y avoir une chance d'ajustement de recul.

L'évaluation combinée de l'indice RSI14 et de l'indice RSI10 constitue donc la logique de base de la stratégie à deux voies.

Les avantages de la stratégie

  1. Le jugement combiné d'indicateurs RSI doubles peut capturer plus précisément les signaux de trading
  2. L'adoption d'un mécanisme de stop loss mobile peut réduire la perte en temps opportun et contrôler le tirage maximum
  3. La mise en place du mécanisme de sortie de prise de profit permet de sortir lorsque le bénéfice cible est atteint, en évitant le retracement du profit

Risques liés à la stratégie

  1. L'indicateur RSI est enclin à générer de faux signaux et les pertes ne peuvent pas être complètement évitées
  2. Si le point stop-loss est placé trop près, il peut être retiré rapidement, s'il est placé trop haut, il est difficile de contrôler les risques
  3. Dans des conditions de marché anormales comme le déficit, il peut également entraîner des pertes.

Pour tirer pleinement parti de cette stratégie, les paramètres du RSI peuvent être ajustés correctement, la position stop loss doit être strictement contrôlée, éviter les opérations trop fréquentes et poursuivre une rentabilité constante.

Directions de l'optimisation de la stratégie

  1. Envisager d'intégrer d'autres indicateurs pour la validation des combinaisons, tels que KDJ, MACD, etc.
  2. Définir les paramètres de l'indice de résistance, respectivement, en fonction des caractéristiques des différents produits
  3. Définir la perte d'arrêt dynamique basée sur des indicateurs tels que ATR pour ajuster la position d'arrêt en temps opportun
  4. Optimiser automatiquement les paramètres RSI grâce à des techniques d'apprentissage automatique

Résumé

Cette stratégie fait un jugement basé sur l'idée de double piste de RSI et filtre certains signaux bruyants dans une certaine mesure. Mais aucune stratégie d'indicateur unique ne peut être parfaite, l'indicateur RSI est sujet à la tromperie et doit être considéré avec prudence. Cette stratégie intègre des mécanismes de stop loss et de prise de profit pour contrôler les risques, ce qui est essentiel. Des optimisations futures pourraient être poursuivies pour rendre les paramètres de stratégie et les méthodes de stop loss plus intelligents et dynamiques.


/*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


Plus de