Stratégie de négociation bidirectionnelle basée sur le RSI et le STOCH RSI

Auteur:ChaoZhang est là., Date: le 12 janvier 2023
Les étiquettes:

img

Résumé

Cette stratégie combine les puissants indicateurs techniques de l'indice de force relative (RSI) et du Stoch RSI pour mettre en œuvre une stratégie de trading bidirectionnelle relativement stable et fiable.

La logique de la stratégie

Cette stratégie est principalement basée sur les indicateurs RSI et Stoch RSI. RSI est utilisé pour déterminer si le marché est suracheté ou survendu.

Premièrement, l'indice de volatilité détermine si le marché est suracheté ou survendu. Si l'indice de volatilité dépasse la ligne de surachat, le marché est considéré comme suracheté. Si l'indice de volatilité dépasse la ligne de survente, le marché est considéré comme survendu.

Deuxièmement, le Stock RSI génère des signaux de trading. Lorsque la ligne rapide traverse au-dessus de la ligne lente depuis le bas, un signal d'achat est généré. Lorsque la ligne rapide traverse au-dessous de la ligne lente depuis le haut, un signal de vente est généré.

Enfin, la stratégie n'entrera sur le marché que lorsque le RSI montre des conditions de surachat/survente et que le RSI du Stoch génère des signaux en même temps.

Analyse des avantages

La stratégie combine les avantages des deux indicateurs RSI et de Stoch RSI, en tenant compte à la fois des tendances globales du marché et des changements détaillés afin de générer des signaux de négociation plus fiables, en évitant les faux signaux inutiles.

L'indicateur de volatilité peut déterminer efficacement si le marché est suracheté ou survendu, en évitant de poursuivre les sommets et les bas.

En outre, des filtres de temps et de prix sont ajoutés pour réduire davantage la probabilité de transactions erronées et améliorer la robustesse de l'ensemble de la stratégie.

Analyse des risques

La stratégie s'appuie principalement sur l'indice de volatilité et l'indice de volatilité boursier, qui sont sensibles aux variations du marché.

Pour atténuer de tels risques, les paramètres de l'indicateur de volatilité et de l'indicateur de volatilité boursière peuvent être ajustés pour mieux s'adapter aux caractéristiques du marché et d'autres filtres peuvent être ajoutés.

Directions d'optimisation

La stratégie peut être encore optimisée dans les aspects suivants:

  1. Ajoutez un stop loss mobile pour bloquer les profits et réduire les pertes.

  2. Optimiser les paramètres RSI et Stoch RSI pour les adapter à différentes périodes et produits.

  3. Ajoutez plus de filtres comme des délais plus longs et une fréquence de trading plus faible.

  4. Incorporer d'autres indicateurs de vérification du signal pour éviter les erreurs.

  5. Optimisation des tests antérieurs pour la meilleure combinaison de paramètres.

Conclusion

La stratégie tire parti des forces de l'indicateur RSI et de l'indicateur RSI du stock pour établir un cadre de trading bidirectionnel, fournissant une génération de signal plus complète et fiable par rapport à l'utilisation d'un seul indicateur, évitant de nombreux faux signaux inutiles.


/*backtest
start: 2023-10-31 00:00:00
end: 2023-11-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version= 2
strategy("RSI+STOCHRSI v2", overlay=true)
lengthrsi = input(10)
overSold = input( 20 )
overBought = input( 70 )
price = ohlc4
vrsi = rsi(price, lengthrsi)

smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
lengthRSI = input(14, minval=1)
lengthStoch = input(14, minval=1)
src = input(close, title="RSI Source")

rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
srsilow=input(20)
srsiup=input(80)






yearfrom = input(2018)
yearuntil =input(2039)
monthfrom =input(6)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)



if (  ( crossover(d,k)) and ( (vrsi<overSold) or crossover(vrsi,overSold) )  and   year >= yearfrom and year <= yearuntil and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil) 
    strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND",  comment="BUY")
    
else
    strategy.cancel(id="BUY")


if ( ( crossunder(d,k) ) and ( (vrsi >overBought) or crossunder(vrsi,overBought) ) and   year >= yearfrom and year <= yearuntil and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil ) 

    strategy.entry("SELL", strategy.short,stop=close, oca_name="TREND",  comment="SELL")
else
    strategy.cancel(id="SELL")
    
    
    

Plus de