Stratégie de trading de tendance adaptative combinant les bandes de Bollinger et le RSI

RSI BB MACD
Date de création: 2024-11-12 11:35:58 Dernière modification: 2024-11-12 11:35:58
Copier: 0 Nombre de clics: 565
1
Suivre
1617
Abonnés

Stratégie de trading de tendance adaptative combinant les bandes de Bollinger et le RSI

Aperçu

La stratégie est un système de suivi de tendance combinant plusieurs indicateurs techniques, et une combinaison de trois indicateurs classiques, le Brinband, le RSI et le MACD, pour saisir les opportunités de négociation pendant les phases de turbulences et de changements de tendance du marché. La stratégie utilise une approche pyramidale d’hypothèque pour gérer le risque grâce à un contrôle strict de l’intervalle de négociation.

Principe de stratégie

La logique de base de la stratégie repose sur la confirmation de trois signaux:

  1. L’indicateur RSI est utilisé pour identifier les zones de survente et de survente, RSI < 45 étant considéré comme une survente et RSI > 55 comme une survente
  2. Déterminer la position des prix par le canal de la ceinture de Brin, générant un signal lorsque les prix approchent ou franchissent la ceinture de Brin pour descendre
  3. Utilisez le MACD Gold Fork Dead Fork comme confirmation de tendance et ouvrez une position après avoir résonné avec le RSI et les signaux de la bande de Brent La stratégie prévoit également un intervalle de négociation minimal (environ 15 cycles) afin d’éviter les transactions excessives et une gestion de portefeuille pyramidale.

Avantages stratégiques

  1. Vérification croisée de multiples indicateurs techniques pour réduire considérablement les faux signaux
  2. Le mécanisme pyramidale d’hypothèque améliore l’efficacité de l’utilisation des fonds
  3. La mise en place d’intervalles de négociation minimaux et un contrôle efficace de la fréquence des transactions
  4. Les paramètres de l’indicateur sont réglables et ont une grande adaptabilité
  5. Disposant d’un mécanisme de liquidation automatique pour contrôler le risque

Risque stratégique

  1. Plusieurs indicateurs peuvent entraîner un décalage du signal
  2. Des échanges fréquents dans un marché en crise
  3. La hausse pyramidale pourrait entraîner de lourdes pertes si la tendance est inversée
  4. Les seuils RSI fixes peuvent ne pas être adaptés à toutes les conditions du marché

Orientation de l’optimisation de la stratégie

  1. Introduction d’une marge RSI adaptative, qui est dynamiquement ajustée en fonction de la volatilité du marché
  2. Ajouter un indicateur de volume comme confirmation auxiliaire
  3. Algorithmes de gestion de position optimisés pour les placements pyramidaux
  4. L’ajout d’un mécanisme de prévention des pertes plus flexible
  5. Prise en compte des caractéristiques cycliques du marché et ajustement dynamique des intervalles de négociation

Résumer

La stratégie vise à obtenir des gains stables tout en maîtrisant les risques grâce à la coordination de multiples indicateurs techniques. Bien qu’il y ait un certain retard, la stratégie affiche une meilleure adaptabilité et stabilité grâce à une optimisation raisonnable des paramètres et à un mécanisme de gestion des risques.

Code source de la stratégie
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("[ETH] Optimized Trend Strategy", shorttitle="Lorenzo-SuperScalping", overlay=true, pyramiding=3, initial_capital=100000, currency=currency.USD)

// === Input Parameters === //
trade_size = input.float(1.0, title="Trade Size (ETH)")
rsi_length = input.int(14, minval=1, title="RSI Length")
bb_length = input.int(20, minval=1, title="Bollinger Bands Length")
bb_mult = input.float(2.0, title="Bollinger Bands Multiplier")
macd_fast = input.int(12, minval=1, title="MACD Fast Length")
macd_slow = input.int(26, minval=1, title="MACD Slow Length")
macd_signal = input.int(9, minval=1, title="MACD Signal Length")

// === Indicators === //
// RSI
rsi = ta.rsi(close, rsi_length)

// Bollinger Bands
basis = ta.sma(close, bb_length)
dev = ta.stdev(close, bb_length) * bb_mult
upper_band = basis + dev
lower_band = basis - dev
plot(basis, color=color.blue, title="BB Basis")
plot(upper_band, color=color.red, title="BB Upper")
plot(lower_band, color=color.green, title="BB Lower")

// MACD
[macd_line, signal_line, _] = ta.macd(close, macd_fast, macd_slow, macd_signal)
macd_cross_up = ta.crossover(macd_line, signal_line)
macd_cross_down = ta.crossunder(macd_line, signal_line)

// === Signal Control Variables === //
var bool last_signal_buy = na
var int last_trade_bar = na

// === Buy Signal Condition === //
// - RSI below 45
// - Price near or below the lower Bollinger Band
// - MACD crossover
buy_signal = (rsi < 45 and close < lower_band * 1.02 and macd_cross_up)

// === Sell Signal Condition === //
// - RSI above 55
// - Price near or above the upper Bollinger Band
// - MACD crossunder
sell_signal = (rsi > 55 and close > upper_band * 0.98 and macd_cross_down)

// Ensure enough bars between trades
min_bars_between_trades = input.int(15, title="Minimum Bars Between Trades")
time_elapsed = na(last_trade_bar) or (bar_index - last_trade_bar) >= min_bars_between_trades

// === Execute Trades with Conditions === //
can_buy = buy_signal and (na(last_signal_buy) or not last_signal_buy) and time_elapsed
can_sell = sell_signal and (not na(last_signal_buy) and last_signal_buy) and time_elapsed

if (can_buy)
    // Close any existing short position before opening a long
    if strategy.position_size < 0
        strategy.close("Short")

    strategy.entry("Long", strategy.long, qty=trade_size)
    last_signal_buy := true
    last_trade_bar := bar_index

if (can_sell)
    // Close any existing long position and open a short position
    if strategy.position_size > 0
        strategy.close("Long")

    strategy.entry("Short", strategy.short, qty=trade_size)
    last_signal_buy := false
    last_trade_bar := bar_index

// === Plot Buy and Sell Signals === //
plotshape(series=can_buy, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=can_sell, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")

// === RSI Levels for Visualization === //
hline(45, "RSI Buy Level", color=color.green, linewidth=1, linestyle=hline.style_dotted)
hline(55, "RSI Sell Level", color=color.red, linewidth=1, linestyle=hline.style_dotted)

// Plot the RSI for reference
plot(rsi, title="RSI", color=color.purple)