Stratégie de trading quantitatif avec l'indice de force relative triple

RSI SMA
Date de création: 2024-05-15 10:23:08 Dernière modification: 2024-05-15 10:23:08
Copier: 0 Nombre de clics: 841
1
Suivre
1617
Abonnés

Stratégie de trading quantitatif avec l’indice de force relative triple

Aperçu

La stratégie utilise principalement l’indice relativement faible (RSI) pour juger de l’excédent d’achat et de vente sur le marché, en combinaison avec le prix au-dessus de la moyenne mobile simple à 200 jours (SMA) comme condition de filtrage de la tendance, afin de décider d’entrer en négociation. La stratégie utilise le triple indicateur RSI pour construire ensemble les conditions d’ouverture de position.

Principe de stratégie

  1. Calculer l’indicateur RSI pour une période donnée
  2. Les conditions suivantes sont remplies pour ouvrir une position:
    • Le RSI actuel est inférieur à 35.
    • Le RSI actuel est inférieur au RSI de la première période, le RSI de la première période est inférieur au RSI des deux premières périodes et le RSI des deux premières périodes est inférieur au RSI des trois premières périodes
    • Le RSI des trois premières périodes est inférieur à 60.
    • Le cours de clôture actuel est supérieur à la SMA de 200 jours.
  3. Si les quatre conditions ci-dessus sont réunies, vous pouvez ouvrir plus
  4. Si le RSI est supérieur à 50, la position est levée.
  5. Répétez les étapes 2 à 4 pour effectuer la transaction suivante.

Avantages stratégiques

  1. En utilisant le RSI pour juger si le marché est en sur-achat ou en sur-vente, ouvrez des positions dans les zones de survente et saisissez les occasions de reprise du marché.
  2. La co-construction d’un signal d’ouverture de position avec le triple RSI réduit la probabilité d’un faux signal et améliore la fiabilité du signal
  3. Ajout d’un prix au-dessus de la moyenne journalière de 200 comme condition de tendance pour éviter de négocier dans une tendance baissière
  4. Les conditions de placement sont simples et claires, permettant de réaliser des bénéfices en temps opportun.
  5. La logique de la stratégie est claire, facile à comprendre et à mettre en œuvre

Risque stratégique

  1. L’indicateur RSI présente un retard de signal et risque de manquer le meilleur moment pour ouvrir une position
  2. Les conditions d’ouverture des positions sont relativement strictes, la fréquence des transactions est faible et il est possible de rater une partie de la transaction.
  3. Les investisseurs ont tendance à faire des prises de position fréquentes sur des titres qui risquent de ne pas être performants en cas de choc.
  4. Les stratégies ne peuvent capturer que les tendances à la hausse unilatérale et ne peuvent pas capturer les tendances à la baisse après un renversement de tendance.

Orientation de l’optimisation de la stratégie

  1. On peut envisager d’ajouter un stop mobile ou un stop fixe pour contrôler le risque d’une seule transaction.
  2. L’étude de la combinaison du RSI avec d’autres indicateurs auxiliaires pour améliorer la fiabilité et la rapidité des signaux d’ouverture de position
  3. Optimiser les conditions d’ouverture des positions pour augmenter la fréquence des transactions tout en garantissant la fiabilité du signal
  4. Introduction de la gestion des positions, qui permet de modifier les positions en fonction de la force et de la volatilité des tendances du marché
  5. Considérer la combinaison de la courte et de la moyenne ligne et développer des versions de stratégie adaptées aux différentes conditions du marché

Résumer

La stratégie utilise le triple RSI pour construire des conditions d’ouverture de position, en combinant les prix au-dessus de la moyenne à long terme comme filtre de tendance, afin de capturer les tendances de revers de vente excessive. La logique de la stratégie est simple et facile à mettre en œuvre et à optimiser. Cependant, la stratégie présente également des risques et des insuffisances tels que le retard de signal, la faible fréquence des transactions et la capacité de capturer uniquement des tendances unilatérales.

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

//@version=5
//@author Honestcowboy
//
strategy("Triple RSI [Honestcowboy]" )

  
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
// ---------> User Inputs <----------- >>
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>

rsiLengthInput = input.int(5, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(close, "Source", group="RSI Settings")

// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
// ---------> VARIABLE CALCULATIONS <----------- >>
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>

up = ta.rma(math.max(ta.change(rsiSourceInput), 0), rsiLengthInput)
down = ta.rma(-math.min(ta.change(rsiSourceInput), 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))

// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
// ---------> CONDITIONALS <----------- >>
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>

rule1   = rsi<35
rule2   = rsi<rsi[1] and rsi[1]<rsi[2] and rsi[2]<rsi[3]
rule3   = rsi[3]<60
rule4   = close>ta.sma(close, 200)

longCondition = rule1 and rule2 and rule3 and rule4
closeCondition = rsi>50

// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
// ---------> GRAPHICAL DISPLAY <----------- >>
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>

hline(30, title="Long Condition Line")
hline(50, title="Exit Condition Line")
plot(rsi)
plotshape(longCondition ? rsi-3 : na, title="Long Condition", style=shape.triangleup, color=color.lime, location=location.absolute)
plotshape(closeCondition and rsi[1]<50? rsi+3 : na, title="Exit Condition", style=shape.triangledown, color=#e60000, location=location.absolute)

// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
// ---------> AUTOMATION AND BACKTESTING <----------- >>
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>

if longCondition and strategy.position_size==0
    strategy.entry("LONG", strategy.long)
if closeCondition
    strategy.close("LONG")