Stratégie de rupture de gamme RSI

Auteur:ChaoZhang est là., Date: 2023-10-17 17h14 et 09 min
Les étiquettes:

img

Résumé

Cette stratégie surveille l'éclatement de l'indicateur RSI dans différentes gammes pour mettre en œuvre l'achat bas et la vente élevée.

La logique de la stratégie

  1. Définir la période RSI à 14

  2. Définir les plages de signaux d'achat RSI:

    • Variété 1: RSI <= 27
    • Variété 2: RSI <= 18
  3. Définir les plages de signaux de vente RSI:

    • Résultats de l'évaluation de la valeur ajoutée
    • Résultats de l'évaluation de la valeur ajoutée
  4. Quand le RSI entre dans la fourchette d'achat, allez long:

    • Si le RSI entre dans la fourchette 1 (inférieur à 27), passez long 1 lot
    • Si le RSI entre dans la fourchette 2 (inférieure à 18), procéder à une prolongation supplémentaire de 1 lot
  5. Lorsque le RSI entre dans la fourchette de vente, passez à la vente courte:

    • Si le RSI entre dans la fourchette 1 (supérieur à 68), acheter 1 lot
    • Si le RSI entre dans la fourchette 2 (supérieur à 80), acheter 1 lot supplémentaire
  6. Fixer le profit à 2500 pips et le stop loss à 5000 pips

  7. Position fermée lorsque le RSI sort de la plage de signaux

Analyse des avantages

  1. L'option double fourchette permet de mieux identifier les conditions de surachat et de survente, évitant ainsi de manquer des opportunités d'inversion

  2. L'adoption d'un profit fixe et d'un stop-loss en pips empêche de trop suivre les tendances

  3. Le RSI est un oscillateur mature pour identifier les niveaux de surachat et de survente avec des avantages par rapport aux autres indicateurs

  4. Avec un réglage approprié des paramètres, cette stratégie peut effectivement capturer les points d'inversion de tendance et générer des rendements excédentaires

Analyse des risques

  1. Une divergence de l'indice de volatilité peut se produire et entraîner des pertes consécutives d'une position courte soutenue

  2. Les bénéfices fixes et les arrêts de perte peuvent ne pas correspondre à la volatilité du marché, ne pas pouvoir réaliser de bénéfices ou s'arrêter prématurément.

  3. Un mauvais réglage de la fourchette peut entraîner des transactions manquantes ou des transactions fréquemment non rentables

  4. Cette stratégie repose beaucoup sur l'optimisation des paramètres basée sur les backtests.

Directions d'optimisation

  1. Efficacité des essais de l'indice de résistance à la corrosion avec différentes durées de période

  2. Optimiser les valeurs de gamme d'achat et de vente pour s'adapter aux caractéristiques des différents produits

  3. Dynamique de la recherche prendre des bénéfices et arrêter les pertes pour améliorer la rentabilité et la raisonnabilité

  4. Envisager de combiner d'autres indicateurs pour les transactions collectives afin d'améliorer la robustesse

  5. Explorer les techniques d'apprentissage automatique pour optimiser automatiquement les plages de paramètres pour la robustesse

Conclusion

Cette stratégie est basée sur les principes de surachat et de survente du RSI. En adoptant des plages de négociation doubles, il utilise efficacement l'indicateur RSI, capturant les extrêmes du marché avec une stabilité décente. Cependant, il a une certaine dépendance aux paramètres et a besoin d'optimisation sur tous les produits. Si elle est correctement ajustée, cette stratégie peut produire de bons rendements excédentaires. En résumé, il s'agit d'une stratégie de trading simple mais efficace utilisant un indicateur mature, qui vaut la peine d'être recherchée pour des améliorations et fournissant des informations pour le trading quantitatif.


/*backtest
start: 2023-09-16 00:00:00
end: 2023-10-16 00:00:00
period: 1h
basePeriod: 15m
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/
// © Rawadabdo

// Ramy's Algorithm

//@version=5
strategy("BTC/USD - RSI", overlay=false, initial_capital = 5000)

// User input
length = input(title = "Length", defval=14, tooltip="RSI period")

first_buy_level = input(title = "Buy Level 1", defval=27, tooltip="Level where 1st buy triggers")
second_buy_level = input(title = "Buy Level 2", defval=18, tooltip="Level where 2nd buy triggers")

first_sell_level = input(title = "Sell Level 1", defval=68, tooltip="Level where 1st sell triggers")
second_sell_level = input(title = "Sell Level 2", defval=80, tooltip="Level where 2nd sell triggers")

takeProfit= input(title="target Pips", defval=2500, tooltip="Fixed pip stop loss distance")
stopLoss = input(title="Stop Pips", defval=5000, tooltip="Fixed pip stop loss distance")

lot = input(title = "Lot Size", defval = 1, tooltip="Trading Lot size")

// Get RSI
vrsi = ta.rsi(close, length)

// Entry Conditions
long1 = (vrsi <= first_buy_level and vrsi>second_buy_level)
long2 = (vrsi <= second_buy_level)

short1= (vrsi >= first_sell_level and vrsi<second_sell_level)
short2= (vrsi >= second_sell_level)


// Entry Orders
// Buy Orders
if (long1 and strategy.position_size == 0)
    strategy.entry("Long", strategy.long, qty=lot, comment="Buy")
    if (long2 and  strategy.position_size == 0)
        strategy.entry("Long", strategy.long, qty=lot, comment="Buy")

// Short Orders
if (short1 and strategy.position_size == 0)
    strategy.entry("Short", strategy.short,qty=lot, comment="Sell")
    if (short2 and strategy.position_size == 0)
        strategy.entry("Short", strategy.short,qty=lot, comment="Sell")
    
// Exit our trade if our stop loss or take profit is hit
strategy.exit(id="Long Exit", from_entry="Long",qty = lot, profit=takeProfit, loss=stopLoss)
strategy.exit(id="Short Exit", from_entry="Short", qty = lot, profit=takeProfit, loss=stopLoss)

// plot data to the chart
hline(first_sell_level, "Overbought Zone", color=color.red, linestyle=hline.style_dashed, linewidth = 2)
hline(second_sell_level, "Overbought Zone", color=color.green, linestyle=hline.style_dashed, linewidth = 2)
hline(first_buy_level, "Oversold Zone", color=color.red, linestyle=hline.style_dashed, linewidth = 2)
hline(second_buy_level, "Oversold Zone", color=color.green, linestyle=hline.style_dashed, linewidth = 2)
plot (vrsi, title = "RSI", color = color.blue, linewidth=2)





Plus de