Stratégie de trading automatisée RSI Long-Short


Date de création: 2023-10-30 17:13:24 Dernière modification: 2023-10-30 17:13:24
Copier: 2 Nombre de clics: 768
1
Suivre
1617
Abonnés

Stratégie de trading automatisée RSI Long-Short

Aperçu

La stratégie est basée sur un indicateur de force relative (RSI) et a pour but de concevoir un système de trading automatique plus ouvert. Il peut émettre automatiquement un signal de plus ou moins ouvert pour le trading automatique lorsque le RSI atteint une zone de survente.

Principe de stratégie

La stratégie obtient une valeur RSI de 0 à 100 en calculant les hausses et les baisses d’une action sur un certain cycle. Lorsque le RSI est inférieur à 30, il est en survente et supérieur à 70, il est en survente. Selon cette règle, le RSI est automatiquement en hausse lorsqu’il atteint la zone de survente et est automatiquement en baisse lorsqu’il atteint la zone de survente.

En particulier, la stratégie commence par calculer la valeur du RSI sur 15 cycles. Lorsque le RSI descend en dessous de 20, il est considéré comme étant en survente.

En outre, la stratégie consiste à tracer des lignes et des étiquettes correspondantes à chaque signal de prix, ce qui rend le signal de transaction plus intuitif.

Avantages stratégiques

  • La stratégie est claire, simple et facile à comprendre.
  • Les indices RSI permettent d’évaluer avec précision les surachats et les survente
  • Les transactions sont entièrement automatisées, sans intervention humaine.
  • Réglage de l’arrêt de la perte de stockage et contrôle efficace des risques
  • Les signaux de trading sont intuitifs et faciles à suivre

Risque stratégique

  • L’indicateur RSI présente un certain retard qui peut entraîner des erreurs de jugement
  • Le seuil fixe de survente ne s’applique pas à toutes les variétés
  • Une mauvaise configuration du point d’arrêt peut entraîner des pertes plus importantes
  • Le risque de dépréciation en cours d’expansion

Les mesures de contrôle des risques comprennent: optimiser les paramètres du RSI, ajuster les seuils de survente et de survente pour les différentes variétés, définir un point de rupture raisonnable, combiner les indicateurs de tendance pour éviter les transactions négatives.

Orientation de l’optimisation de la stratégie

  • Optimiser les paramètres du RSI afin d’améliorer la précision des jugements sur les surachats et les survente
  • Signal de confirmation de transaction combiné avec d’autres indicateurs, tels que KDJ, MACD, etc.
  • Optimiser les paramètres de stop loss en fonction des conditions du marché
  • L’augmentation du jugement des tendances et l’évitement des opérations de contre-courant
  • Définition de la courbe des intérêts
  • Développer des modules de contrôle du vent pour contrôler les risques individuels et globaux

Résumer

Cette stratégie est une stratégie de trading automatique qui utilise l’indicateur RSI pour juger de l’achat et de la vente excessive. Elle émet un signal de négociation lorsque le RSI atteint la zone extrême de l’achat et de la vente excessive. L’idée de la stratégie est simple, claire et facile à mettre en œuvre.

Code source de la stratégie
/*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)