Algorithme de stratégie de rupture de la gamme RSI


Date de création: 2023-10-17 17:14:09 Dernière modification: 2023-10-17 17:14:09
Copier: 0 Nombre de clics: 759
1
Suivre
1617
Abonnés

Algorithme de stratégie de rupture de la gamme RSI

Aperçu

Cette stratégie a pour objectif de réaliser des transactions à bas prix et à haut prix en surveillant la rupture de l’indicateur RSI dans différentes zones. L’achat est effectué lorsque le RSI est dans la zone basse et la vente lorsque le RSI est dans la zone haute, ce qui entraîne une opération inversée lorsque le RSI est surchargé.

Principe de stratégie

  1. RSI est réglé sur 14 cycles

  2. Pour définir la plage RSI du signal d’achat:

    • Le RSI est inférieur ou égal à 27.
    • Le RSI est inférieur ou égal à 18.
  3. RSI pour les signaux de vente:

    • Le RSI >= 68 est le RSI le plus bas.
    • Le RSI >= 80 est le RSI le plus bas.
  4. Lorsque le RSI entre dans la fourchette de l’offre, faites une entrée supplémentaire:

    • Si le RSI entre dans la zone 1 (inférieur à 27), faites 1 main de plus.
    • Si le RSI entre dans la zone 2 (inférieur à 18), faites 1 main supplémentaire
  5. Le RSI entre dans la fourchette de vente, et le short entre dans celle de vente:

    • Si le RSI est dans la zone 1 (plus de 68), faites 1 main.
    • Si le RSI entre dans la zone 2 (plus de 80), un coup de moins supplémentaire est effectué.
  6. Chaque fois que vous ouvrez une position, fixez un stop-loss de 2500 et un stop-loss de 5000.

  7. Le RSI a quitté la zone de signaux et a éliminé les positions correspondantes.

Analyse des avantages

  1. Le réglage de la double zone permet à la stratégie de mieux détecter les sur-achats et les sur-ventes et d’éviter de rater des occasions de reprise

  2. Le stop loss est fixé à un certain nombre de points, ce qui ne l’empêche pas d’aller trop loin.

  3. Le RSI est un indicateur de jugement de sur-achat et de sur-vente plus mature et plus avantageux que d’autres

  4. Les paramètres de cette stratégie, lorsqu’ils sont raisonnablement configurés, permettent de capturer efficacement les points de retournement de tendance et d’obtenir des gains supplémentaires.

Analyse des risques

  1. Le RSI peut avoir des défaillances sur le marché, ce qui peut entraîner des pertes de cours persistantes.

  2. Les paramètres des points de stop-loss fixes peuvent ne pas correspondre à la volatilité du marché, ne pas permettre de réaliser de bénéfices ou d’arrêter prématurément les pertes

  3. Un espacement déraisonnable peut entraîner des opportunités manquées ou des pertes fréquentes

  4. Cette stratégie repose davantage sur l’optimisation des paramètres et nécessite une attention particulière aux cycles de test et au contrôle des points de glissement.

Direction d’optimisation

  1. L’effet de l’indicateur RSI peut être testé sur des cycles de différentes longueurs

  2. Les valeurs peuvent être optimisées pour les intervalles d’achat et de vente afin de mieux s’adapter aux caractéristiques des différentes variétés

  3. Des méthodes d’arrêt dynamiques peuvent être étudiées pour rendre l’arrêt plus efficace et plus raisonnable.

  4. La possibilité d’une négociation combinée avec d’autres indicateurs pour améliorer la stabilité du système

  5. Des méthodes d’apprentissage automatique permettant d’optimiser automatiquement les paramètres d’intervalle peuvent être explorées pour rendre les stratégies plus robustes

Résumer

Cette stratégie est basée sur le principe de jugement de sur-achat et de survente de l’indicateur RSI. En mettant en place des intervalles bi-achat et vente pour tirer parti de l’indicateur RSI, tout en conservant une certaine stabilité, il est possible de capturer efficacement le phénomène de sur-achat et de survente du marché.

Code source de la stratégie
/*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)