Estrategia de trading automático de posiciones largas y cortas con RSI


Fecha de creación: 2023-10-30 17:13:24 Última modificación: 2023-10-30 17:13:24
Copiar: 2 Número de Visitas: 768
1
Seguir
1617
Seguidores

Estrategia de trading automático de posiciones largas y cortas con RSI

Descripción general

La estrategia se basa en el indicador de la fuerza relativa (RSI) para diseñar un sistema de comercio automático de más de la brecha. Se puede emitir automáticamente una señal de más de la brecha para el comercio automático cuando el RSI llega a la zona de sobrecompra y sobreventa.

Principio de estrategia

La estrategia obtiene un valor de RSI en el rango de 0-100 calculando las subidas y bajadas de las acciones en un período determinado. Cuando el RSI está por debajo de 30 es un estado de sobreventa, y cuando está por encima de 70 es un estado de sobreventa. De acuerdo con esta regla, la estrategia se vende automáticamente cuando el RSI llega a la zona de sobreventa y se vende automáticamente cuando llega a la zona de sobreventa.

En concreto, la estrategia primero calcula el valor del RSI de 15 ciclos. Cuando el RSI cae por debajo de 20, se considera que está en un estado de sobreventa, y luego se hace una entrada adicional cuando se rompe la línea de la media móvil de 200 días. Cuando el RSI sube más de 80, se considera que está en un estado de sobreventa, y luego se hace una entrada en blanco.

Además, la estrategia también traza líneas y etiquetas relevantes cuando ocurren señales de precios, lo que hace que las señales de negociación sean más intuitivas.

Ventajas estratégicas

  • La estrategia es clara, sencilla y fácil de entender.
  • El indicador RSI es el indicador más preciso de sobrecompra y sobreventa
  • Las transacciones son totalmente automáticas y no requieren intervención humana.
  • Configuración de un bloqueo de pérdidas para controlar el riesgo de manera efectiva
  • Las señales de comercio son intuitivas y fáciles de controlar.

Riesgo estratégico

  • El RSI es un indicador de retraso que puede conducir a errores de juicio
  • El límite fijo de sobreventa no se aplica a todas las variedades
  • La configuración inadecuada de los puntos de parada puede causar grandes pérdidas
  • Los mercados en tendencia pueden perder más de lo que se puede hacer en el mercado de tendencia

Las medidas de control de riesgo incluyen: optimización de los parámetros del RSI, ajuste de los umbrales de sobreventa y sobreventa para adaptarse a las diferentes variedades, configuración razonable de los puntos de parada y, en combinación con los indicadores de tendencia, evita el comercio en contra.

Dirección de optimización de la estrategia

  • Optimización de los parámetros del RSI para mejorar la precisión de los juicios sobre sobrecompra y sobreventa
  • En combinación con otros indicadores confirma la señal de negociación, como KDJ, MACD, etc.
  • Optimización de los puntos de parada según las condiciones del mercado
  • Aumentar el conocimiento de las tendencias y evitar las operaciones de contratiempo
  • Establecimiento de una curva de derechos y intereses para rastrear el stop loss
  • Desarrollo de módulos de control de viento para controlar el riesgo individual y global

Resumir

La estrategia general es una estrategia de negociación automática que utiliza el indicador RSI para determinar sobrecompra y sobreventa. Emite una señal de negociación cuando el RSI alcanza la zona extrema de sobrecompra y sobreventa y puede realizar operaciones de compra y venta automáticamente. El concepto de la estrategia es simple, claro y fácil de implementar, y se adapta como estrategia básica para el comercio automático.

Código Fuente de la Estrategia
/*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)