Stratégie de trading extrême Triple RSI


Date de création: 2023-11-02 14:34:21 Dernière modification: 2023-11-02 14:34:21
Copier: 0 Nombre de clics: 1089
1
Suivre
1617
Abonnés

Stratégie de trading extrême Triple RSI

Aperçu

Cette stratégie consiste à observer simultanément trois indicateurs RSI de différentes périodes pour déterminer si le marché a atteint la zone de limite où il est possible d’être sur-acheté et sur-vendu, ce qui émet des signaux d’achat et de vente. La principale façon de déterminer la tendance du marché est d’observer une combinaison d’indicateurs de différentes périodes.

Principe de stratégie

La stratégie utilise simultanément les indices RSI de 2 cycles, 7 cycles et 14 cycles. Un signal de transaction est émis lorsque trois indices RSI affichent simultanément un signal de survente ou de survente.

Plus précisément, lorsque le RSI à 2 cycles est inférieur à 10, le RSI à 7 cycles est inférieur à 20, le RSI à 14 cycles est inférieur à 30, le marché est considéré comme étant en survente et émet un signal de vente. Lorsque le RSI à 2 cycles est supérieur à 90, le RSI à 7 cycles est supérieur à 80, le RSI à 14 cycles est supérieur à 70, le marché est considéré comme étant en survente et émet un signal de vente.

Le code utilise des paramètres d’exactitude pour modifier le seuil de jugement de survente et de survente du RSI, en supposant que 3, plus la valeur est petite, plus le jugement de survente et de survente est strict. ❚strategy.long et strategy.short sont utilisés pour contrôler si la direction correspondante est négociée.

Lorsque le signal d’achat ou de vente est émis, si le prix est inversé et dépasse le prix d’ouverture du jour, il est nécessaire de niveler la position actuelle et d’exécuter un stop-loss suivi de la tendance.

Analyse des avantages

  • En combinant des indicateurs RSI à plusieurs périodes, on peut mieux évaluer les conditions de survente et de survente du marché et filtrer les faux signaux.

  • Les conditions de détermination de l’offre et de la demande peuvent être ajustées en fonction de la sensibilité du marché.

  • La mise en place d’un suivi des pertes au cours de l’ouverture permet d’arrêter les pertes en temps opportun et de bloquer les bénéfices.

Analyse des risques

  • L’indicateur RSI est sujet à des déviations, et n’est pas très efficace pour évaluer les changements de tendance du marché.

  • Les paramètres de l’indicateur RSI doivent être ajustés en fonction de l’évolution de la tendance à la volatilité, sans quoi il risque de s’arrêter fréquemment.

  • Le triple RSI est moins souvent déclenché simultanément, ce qui peut vous faire rater de meilleures opportunités de trading.

  • Il est recommandé d’ajuster les paramètres du jugement sur les surachats et les survente et de tester l’efficacité des données sur différents marchés.

Direction d’optimisation

  • On peut envisager d’ajouter d’autres indicateurs pour la confirmation, comme la ligne de Brin, le KDJ, etc., afin d’éviter que le RSI ne s’écarte.

  • Les paramètres du RSI peuvent être optimisés automatiquement en fonction de différents types de situations.

  • D’autres conditions d’arrêt de perte peuvent être testées, telles que l’arrêt ATR.

  • Des conditions peuvent être ajoutées pour filtrer les périodes de transactions afin d’éviter des périodes inappropriées.

Résumer

Cette stratégie consiste à combiner les indicateurs RSI à plusieurs périodes pour déterminer les zones de survente et de survente, et à mettre en œuvre le suivi de la tendance. L’avantage est d’améliorer l’exactitude du jugement et de stopper les pertes en temps opportun.

Code source de la stratégie
/*backtest
start: 2023-10-25 00:00:00
end: 2023-10-28 10:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = "Noro's Triple RSI Top/Bottom", shorttitle = "3RSI Top/Bottom", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
accuracy = input(3, defval = 3, minval = 1, maxval = 10, title = "accuracy")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")


//RSI-2
fastup = rma(max(change(close), 0), 2)
fastdown = rma(-min(change(close), 0), 2)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//RSI-7
middleup = rma(max(change(close), 0), 7)
middledown = rma(-min(change(close), 0), 7)
middlersi = middledown == 0 ? 100 : middleup == 0 ? 0 : 100 - (100 / (1 + middleup / middledown))

//RSI-14
slowup = rma(max(change(close), 0), 14)
slowdown = rma(-min(change(close), 0), 14)
slowrsi = slowdown == 0 ? 100 : slowup == 0 ? 0 : 100 - (100 / (1 + slowup / slowdown))

//Signals
acc = 10 - accuracy
up = fastrsi < (5 + acc) and middlersi < (10 + acc * 2) and slowrsi < (15 + acc * 3)
dn = fastrsi > (95 - acc) and middlersi > (90 - acc * 2) and slowrsi > (85 - acc * 3)
exit = (strategy.position_size > 0 and close > open) or (strategy.position_size > 0 and close > open)

//Trading
if up
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("Bottom", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn
    if strategy.position_size > 0
        strategy.close_all()
        
    strategy.entry("Top", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()