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