RSI Stratégie de négociation automatisée longue courte

Auteur:ChaoZhang est là., Date: le 30 octobre 2023 17:13:24
Les étiquettes:

img

Résumé

Cette stratégie conçoit un système de trading automatisé pour long et court basé sur l'indicateur de force relative (RSI).

La logique de la stratégie

La stratégie calcule les valeurs du RSI dans la plage de 0-100 en fonction des hausses et baisses de prix dans une certaine période. Lorsque le RSI est inférieur à 30, c'est un statut de survente. Lorsque le RSI est supérieur à 70, c'est un statut de surachat. Selon cette règle, la stratégie va automatiquement long lorsque le RSI atteint la zone de survente et court lorsque le RSI atteint la zone de surachat.

En particulier, la stratégie calcule d'abord le RSI de 15 périodes. Lorsque le RSI tombe en dessous de 20, il est considéré comme survendu. À ce moment-là, lorsque le prix dépasse la moyenne mobile de 200 jours, une position longue est ouverte. Lorsque le RSI dépasse 80, il est considéré comme suracheté. À ce moment-là, une position courte est ouverte. Après avoir passé long ou court, les positions take profit et stop loss sont définies pour sortir.

En outre, la stratégie dessine des lignes de repère et des étiquettes correspondantes lorsque des signaux de prix se produisent pour rendre les signaux de trading plus intuitifs.

Les avantages de la stratégie

  • L'idée stratégique est claire et facile à comprendre et à mettre en œuvre
  • Sur la base de l'indicateur RSI, le jugement de surachat et de survente est précis
  • Commerce entièrement automatisé sans intervention manuelle
  • Prise de bénéfices et arrêt des pertes pour contrôler efficacement les risques
  • Signals de trading intuitifs et faciles à surveiller

Risques liés à la stratégie

  • L'indicateur RSI a un certain retard, peut causer un mauvais jugement
  • Les seuils fixes de surachat et de survente ne conviennent pas à tous les produits
  • Un paramètre de stop-loss incorrect peut entraîner des pertes plus importantes
  • Le trading avec la tendance majeure des marchés tendance peut entraîner des pertes

Les mesures de contrôle des risques comprennent: l'optimisation des paramètres RSI, l'ajustement des seuils de surachat et de survente en fonction des différents produits, le réglage raisonnable du stop loss, la combinaison avec des indicateurs de tendance pour éviter de négocier contre la tendance.

Directions pour l'optimisation de la stratégie

  • Optimiser les paramètres de l'indicateur de volatilité pour améliorer la précision du jugement des surachats et des survente
  • Confirmer les signaux de négociation avec d'autres indicateurs tels que KDJ, MACD, etc.
  • Optimiser le paramètre stop loss en fonction des conditions du marché
  • Ajouter un jugement de tendance pour éviter les opérations inverses
  • Résultats de l'analyse de risque
  • Développer un module de contrôle des risques pour contrôler les risques individuels et globaux

Résumé

Dans l'ensemble, il s'agit d'une stratégie de trading automatisée utilisant l'indicateur RSI pour juger des conditions de surachat et de survente. Il génère des signaux de trading lorsque l'indicateur RSI atteint des niveaux extrêmes de surachat ou de survente, et peut automatiquement effectuer des transactions longues et courtes. L'idée de stratégie est simple et claire, facile à mettre en œuvre et adaptée comme stratégie de trading automatisée de base. Mais l'indicateur RSI a un certain retard, il est donc recommandé de l'optimiser avec d'autres indicateurs pour améliorer la précision du signal. En outre, l'attention doit être accordée au contrôle des risques, à l'optimisation du mécanisme de stop loss, au développement de modules de contrôle des risques pour réduire les risques de trading. Si optimisée et vérifiée dans le trading en direct, la stratégie peut devenir un système automatisé efficace pour les transactions longues et courtes.


/*backtest
start: 2023-10-22 00:00:00
end: 2023-10-29 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("RSI Improved strategy", overlay=true)
higherTF1 = input.timeframe('15' , "Resolution", options = ['5', '15', '1H', 'D', 'W', 'M'])
dailyopen = request.security(syminfo.tickerid, higherTF1, close)

Reward = input(1600)
Risk = input(1600)

length = input( 5 )
overSold = input( 30 )
overBought = input( 70 )
EMA = input(200)
price = close

vrsi = ta.rsi(price, length)

RSIlowest =  vrsi[1] > vrsi ? true : false
RSIhighest = vrsi[1] < vrsi ? true : false

//ro = ta.crossunder(vrsi, 20)
//ru = ta.crossover(vrsi, 80)

co = ta.crossunder(vrsi, overSold)
cu = ta.crossunder(vrsi, overBought)

plot(ta.ema(close, EMA))
plot(ta.ema(close, 50), color = color.orange)

UponEMA = close > ta.ema(close, EMA) ? true : false
belowEMA = close < ta.ema(close, EMA) ? true : false
//transfer 'float' to 'int' to 'string'
r = int(vrsi)
value = str.tostring(r)

m = int(strategy.openprofit)
money = str.tostring(m)
if (not na(vrsi))
	//when price stand up on 200ema and rsi is at oversold area, open long position 
//	if (co and UponEMA)
  //      strategy.order("Rsi long", strategy.long, 1 , comment = "Rsi long")
        
    if(vrsi < 20 and RSIlowest)
        // line1 = line.new(x1=bar_index, y1=dailyopen, x2=bar_index+1, y2=dailyopen, xloc=xloc.bar_index, style=line.style_solid,extend=extend.right, color=color.aqua, width = 2)
        // line.delete(line1[1])  // remove the previous line when new bar appears
        // label1 = label.new(x=bar_index, y=dailyopen,yloc=yloc.belowbar, text = value,textcolor = color.white, color = color.green, style = label.style_label_up)
        // label.delete(label1[1])
        strategy.order("Rsi long", strategy.long, 1 , comment = "Rsi long")
        strategy.exit("exit", "Rsi long", profit = Reward, loss = Risk, comment = "Rsi long exit")
//strategy.close("Rsi short", comment = "Rsi close")

	
	

	if(vrsi > 80 and RSIhighest)
        // line2 = line.new(x1=bar_index, y1=dailyopen, x2=bar_index+1, y2=dailyopen, xloc=xloc.bar_index, style=line.style_solid,extend=extend.right, color = #e65100, width = 2)
        // line.delete(line2[1])  // remove the previous line when new bar appears
        // label2 = label.new(x=bar_index, y=dailyopen,yloc=yloc.abovebar, text = value, textcolor = color.white, color = color.red)            
        // label.delete(label2[1])
        strategy.order("Rsi short",strategy.short, 1,  comment = "Rsi short ")
        strategy.exit("exit", "Rsi short", profit = Reward,loss = Risk, comment = "Rsi short exit")
//	if(UponEMA)
//        strategy.close("Rsi short", comment = "Rsi short close")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_cross)
//plotshape(confirmPH, title="Label",offset = 1,text="Bull",style=shape.labeldown,location=location.abovebar,color=color.green,textcolor=color.green)




//when Rsi reaches overbought, draw a Horizontal Ray to close prices, similarly when it comes to oversold.(accomplished)
//detects when there is more lower/higher RSI values, adjust horizontal Ray and label to new posistion.(accomplished)

Plus de