Stratégie de trading RSI et retracement de Fibonacci


Date de création: 2023-12-27 16:49:52 Dernière modification: 2023-12-27 16:49:52
Copier: 3 Nombre de clics: 1189
1
Suivre
1623
Abonnés

Stratégie de trading RSI et retracement de Fibonacci

Aperçu

Le présent article décrit principalement une stratégie de négociation combinant un indice relativement faible (le RSI) et un revirement de Fibonacci. Cette stratégie calcule d’abord le revirement de Fibonacci critique en fonction de la dynamique des prix historiques sur un certain cycle, puis, combiné à l’indicateur RSI, détermine si le marché est en sur-achat et en sur-vente et émet un signal de négociation près du revirement.

Principe de stratégie

La stratégie est basée sur les principes suivants:

  1. Utilisez les données de prix d’une période donnée (par exemple, 200 lignes K) pour calculer la moyenne des prix de cette période, l’écart-type et le point de retournement critique de Fibonacci (par exemple, 0,764);

  2. Lorsque les prix sont proches d’une reprise à la hausse ou à la baisse, l’indicateur RSI est utilisé pour déterminer si la zone de reprise est en sur-achat ou en sur-vente.

  3. Si l’indicateur RSI montre un signal de survente ou de survente, un signal de survente ou de dépréciation est émis près de la position de reprise;

  4. Il est possible de définir des niveaux de stop loss et de stop-loss, et de fermer une position en cas de dépassement du prix fixé ou de déclenchement d’une condition de stop loss.

C’est le processus de base de la stratégie qui détermine le moment de la transaction.

Analyse des forces stratégiques

La stratégie combinée présente les avantages suivants par rapport à la négociation en utilisant uniquement le RSI ou Fibonacci:

  1. Le filtre à double indice réduit les faux signaux et améliore la qualité du signal.

  2. Le trading inversé à proximité d’un point de retournement est une méthode d’analyse technique plus classique.

  3. La mise en place d’un stop-loss permet de contrôler efficacement la perte maximale d’une seule transaction.

  4. Il est possible d’optimiser les paramètres, d’ajuster les paramètres de l’indicateur et de régler le réglage de la vitesse de retournement pour s’adapter à différents cycles et variétés.

Analyse stratégique des risques

Cette stratégie comporte également des risques à prendre en compte:

  1. La probabilité d’un rebond après la proximité d’un point de reprise critique n’est pas de 100% et doit être jugée en fonction des entités de prix;

  2. Le RSI à un seul cycle peut générer de faux signaux de rebond mortel, et une vérification à plusieurs cycles peut être envisagée;

  3. Les points d’arrêt sont trop laxistes, ce qui peut augmenter les pertes.

  4. Si le prix de la devise fluctue fortement, le stop-loss peut être franchi et il faut envisager d’assouplir le stop-loss.

Ces risques peuvent être maîtrisés par des méthodes telles que l’ajustement des paramètres, l’optimisation de la combinaison des indicateurs.

Orientation de l’optimisation de la stratégie

La stratégie peut être optimisée de manière significative dans les domaines suivants:

  1. L’augmentation de la vérification des indicateurs de transaction pour éviter les fausses percées à faible volume;

  2. Les indicateurs de la ceinture de Brin doivent être pris en compte pour émettre un signal lors d’une rupture de la ceinture;

  3. Construire des modèles d’apprentissage automatique ou de réseaux neuronaux pour identifier automatiquement des opportunités de trading de haute qualité;

  4. L’algorithme génétique est utilisé pour optimiser automatiquement les paramètres et ajuster les points d’arrêt de perte.

Résumer

Cet article décrit en détail une stratégie de trading quantitatif combinant le RSI et les retours de Fibonacci. Cette stratégie intègre l’analyse des doubles indicateurs et la stratégie technique classique pour améliorer la qualité des signaux de trading en maîtrisant les risques.

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

//@version=4
strategy(title="Gab Fib  + RSI", overlay=true, default_qty_type=strategy.cash, default_qty_value=100000, initial_capital=1000, currency=currency.USD, commission_type=strategy.commission.cash_per_order, commission_value=4)

// Inputs
timeFilter = year >= 2000
    // Stop Loss 
stop_loss = input(title="SL in % of Instrum. i.e 1.5%=150pips", minval=0, step=0.1, defval=1.5) /100
    // RSI Inputs
len = input(title="[RSI] Length", minval=0, step=1, defval=14)
overSold = input(title="[RSI] Over Sold %", defval=30)
overBought = input(title="[RSI] Over Bought %", defval=70)
    // Fibonacci Levels
length = input(title="[Fibonacci] Length", defval=200, minval=1)
src = input(hlc3, title="[Fibonacci] Source")
mult = input(title="[Fibonacci] Multiplier", defval=3.0, minval=0.001, maxval=50)
level = input(title="[Fibonacci] Level", defval=764)


// Calculate Fibonacci
basis = vwma(src, length)
dev = mult * stdev(src, length)
fu764= basis + (0.001*level*dev)
fu1= basis + (1*dev)
fd764= basis - (0.001*level*dev)
fd1= basis - (1*dev)

// Calculate RSI
vrsi = rsi(close, len)

// Calculate the Targets
targetUp = fd764
targetDown = fu764
    // Actual Targets
bought = strategy.position_size[0] > strategy.position_size[1]
exit_long = valuewhen(bought, targetUp, 0)
sold = strategy.position_size[0] < strategy.position_size[1]
exit_short = valuewhen(sold, targetDown, 0)

// Calculate Stop Losses
sl_long = close * (1-stop_loss)
sl_short = close * (1+stop_loss)


// Conditions to Open Trades
openLong = low < fd1 and crossover(vrsi[1], overSold)
openShort = high > fu1 and crossunder(vrsi[1], overBought)

// Conditions to Close Trades
closeLong = high > exit_long or sl_long
closeShort = low < exit_short or sl_short


//Rounding to MinTick value
roundtargetUp = round_to_mintick(targetUp)
roundtargetDown = round_to_mintick(targetDown)
roundsllong = round_to_mintick(sl_long)
roundslshort = round_to_mintick(sl_short)

// Plots
plot(basis, color=color.blue, linewidth=2, title="[Fibonacci Level] Basis")
plot(fu764, color=color.white, linewidth=1, title="[Fibonacci Level] Short Target")
plot(fu1, color=color.red, linewidth=2, title="[Fibonacci Level] Top")
plot(fd764, color=color.white, linewidth=1, title="[Fibonacci Level] Long Target")
plot(fd1, color=color.green, linewidth=2, title="[Fibonacci Level] Bottom")


// Strategy Orders
if timeFilter
    // Entry Orders
    strategy.entry(id="buy", long=true, when=openLong and high < targetUp, limit=close, alert_message="buy,"+tostring(syminfo.ticker)+",tp="+tostring(roundtargetUp)+",sl="+tostring(roundsllong))
    strategy.entry(id="sell", long=false, when=openShort and low > targetDown, limit=close,  alert_message="sell,"+tostring(syminfo.ticker)+",tp="+tostring(roundtargetDown)+",sl="+tostring(roundslshort))

    // Exit Orders
    strategy.exit(id="closelong", when=closeLong and strategy.position_size > 0, limit=exit_long, stop=sl_long, alert_message="closelong,"+tostring(syminfo.ticker))
    strategy.exit(id="closeshort", when=closeShort and strategy.position_size < 0, limit=exit_short, stop=sl_short, alert_message="closeshort,"+tostring(syminfo.ticker))