RSI Stratégie de tendance du crocodile

Auteur:ChaoZhang est là., Date: 2024-01-29 14:40:07
Les étiquettes:

img

Résumé

La stratégie de tendance de l'alligator RSI est basée sur la combinaison de l'indicateur RSI et de l'indicateur Alligator pour déterminer l'entrée et la sortie des tendances. Elle utilise trois lignes moyennes mobiles - la ligne de la mâchoire de l'alligator, la ligne des dents et la ligne des lèvres, construites par RSI de différentes périodes.

La logique de la stratégie

La stratégie de tendance de l'alligator RSI construit les trois lignes de l'indicateur de l'alligator en utilisant l'indicateur RSI.

  • Ligne de la mâchoire: ligne RSI à 5 périodes
  • Ligne de la dent: ligne RSI à 13 périodes
  • Ligne des lèvres: ligne RSI à 34 périodes

La logique du signal d'entrée est la suivante:

Signal long: lorsque la ligne des dents traverse la ligne des lèvres et que la ligne de la mâchoire est plus haute que la ligne des dents, allez long.

Signal court: lorsque la ligne des dents traverse la ligne des lèvres et que la ligne de la mâchoire est inférieure à la ligne des dents, passez court.

La stratégie fixe également les conditions de stop loss et de prise de profit:

  • Le stop loss est fixé à 10% sous le prix d'entrée
  • Le bénéfice est fixé à 90% au-dessus du prix d'entrée.

Analyse de la force

La stratégie RSI Alligator Trend présente les points forts suivants:

  1. Utiliser les lignes d'Alligator pour déterminer la tendance peut filtrer efficacement le bruit du marché et bloquer la tendance majeure
  2. La combinaison d'indicateurs RSI à plusieurs périodes évite de fausses ruptures et améliore la fiabilité du signal
  3. La fixation de conditions raisonnables de stop loss et de prise de bénéfices contribue à stabiliser les opérations stratégiques
  4. L'idée de la stratégie est claire et facile à comprendre, les paramètres sont simples, et il est facile à mettre en œuvre pour le commerce en direct
  5. Il peut aller à la fois long et court, en tenant compte des deux directions de la tendance, et a une grande souplesse

Analyse des risques

La stratégie RSI Alligator Trend comporte également les risques suivants:

  1. Les paramètres du cycle peuvent être ajustés pour réduire la probabilité de fausses éruptions.

  2. Le paramètre de stop loss peut être trop agressif, avec une forte probabilité d'un stop loss inutile.

  3. Si le marché bouge violemment, le stop loss peut ne pas jouer son rôle approprié de protection de la marge.

  4. Lorsque les positions longues et courtes changent fréquemment, la pression sur les coûts de négociation est plus grande.

Directions d'optimisation

La stratégie RSI Alligator Trend peut être optimisée dans les aspects suivants:

  1. Optimiser les paramètres de ligne Alligator pour trouver la meilleure combinaison de paramètres

  2. Optimiser la logique de la condition d'entrée, comme l'ajout d'indicateurs tels que le volume des transactions pour filtrer les signaux

  3. Optimiser les stratégies de prise de bénéfices et de stop-loss afin de les rendre plus adaptables aux conditions du marché et aux niveaux de marge

  4. Ajouter des mécanismes pour faire face aux événements extrêmes et éviter l'exposition à des conditions de marché anormales

  5. Ajouter des algorithmes de position ouverte pour contrôler la proportion de capital investi dans une seule transaction afin d'atténuer les risques

Conclusion

En général, la stratégie de tendance du RSI Alligator est une stratégie de suivi de tendance fiable et facile à utiliser. Elle utilise l'indicateur Alligator pour déterminer la direction de la tendance, combiné à l'indicateur RSI pour définir des seuils de référence, qui peuvent effectivement verrouiller la tendance et définir des points de sortie raisonnables.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// @version=3
// RSI Alligator
// Forked from Author: Reza Akhavan
// Updated by Khalid Salomão

strategy("RSI Alligator Strategy", overlay=false, pyramiding=0, default_qty_type=strategy.cash, default_qty_value=25000, initial_capital=25000, commission_type=strategy.commission.percent, commission_value=0.15, slippage=3)

// === TA LOGIC ===
overBought = input(70, minval=0, maxval=100, title="Over bought")
overSold = input(30, minval=0, maxval=100, title="Over sold")
jawPeriods = input(5, minval=1, title="Jaw Periods")
jawOffset = input(0, minval=0, title="Jaw Offset")
teethPeriods = input(13, minval=1, title="Teeth Periods")
teethOffset = input(0, minval=0, title="Teeth Offset")
lipsPeriods = input(34, minval=1, title="Lips Periods")
lipsOffset = input(0, minval=0, title="Lips Offset")

jaws = rsi(close, jawPeriods)
teeth = rsi(close, teethPeriods)
lips = rsi(close, lipsPeriods)
plot(jaws, color=green, offset=jawOffset, title="Jaw")
plot(teeth, color=red, offset=teethOffset, title="Teeth")
plot(lips, color=blue, offset=lipsOffset, title="Lips")

//
// === Signal logic ===
// 
LONG_SIGNAL_BOOLEAN  = crossover(teeth, lips) and jaws > teeth
SHORT_SIGNAL_BOOLEAN = crossunder(teeth, lips) and jaws < teeth

// === INPUT BACKTEST DATE RANGE ===
strategyType = input(defval="Long Only", options=["Long & Short", "Long Only", "Short Only"])

FromMonth = input(defval = 7, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 2017)
ToMonth   = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 2020, title = "To Year", minval = 2017)

start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        
window()  => true

// === STRATEGY BUY / SELL ENTRIES ===

// TODO: update the placeholder LONG_SIGNAL_BOOLEAN and SHORT_SIGNAL_BOOLEAN to signal
// long and short entries
buy()  => window() and LONG_SIGNAL_BOOLEAN
sell() => window() and SHORT_SIGNAL_BOOLEAN

if buy()
    if (strategyType == "Short Only")
        strategy.close("Short")
    else
        strategy.entry("Long", strategy.long, comment="Long")

if sell()
    if (strategyType == "Long Only")
        strategy.close("Long")
    else
        strategy.entry("Short", strategy.short, comment="Short")
        

// === BACKTESTING: EXIT strategy ===
sl_inp = input(10, title='Stop Loss %', type=float)/100
tp_inp = input(90, title='Take Profit %', type=float)/100

stop_level = strategy.position_avg_price * (1 - sl_inp)
take_level = strategy.position_avg_price * (1 + tp_inp)

strategy.exit("Stop Loss/Profit", "Long", stop=stop_level, limit=take_level)

Plus de